Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] Annotation of /trunk/gadget/doublevector.cc
[mareframe] / trunk / gadget / doublevector.cc Repository:
ViewVC logotype

Annotation of /trunk/gadget/doublevector.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 11 - (view) (download)

1 : agomez 1 #include "doublevector.h"
2 :     #include "gadget.h"
3 :    
4 :     DoubleVector::DoubleVector(int sz) {
5 :     size = (sz > 0 ? sz : 0);
6 :     if (size > 0)
7 :     v = new double[size];
8 :     else
9 :     v = 0;
10 :     }
11 :    
12 :     DoubleVector::DoubleVector(int sz, double value) {
13 :     size = (sz > 0 ? sz : 0);
14 :     int i;
15 :     if (size > 0) {
16 :     v = new double[size];
17 :     for (i = 0; i < size; i++)
18 :     v[i] = value;
19 :     } else
20 :     v = 0;
21 :     }
22 :    
23 :     DoubleVector::DoubleVector(const DoubleVector& initial) {
24 :     size = initial.size;
25 :     int i;
26 :     if (size > 0) {
27 :     v = new double[size];
28 :     for (i = 0; i < size; i++)
29 :     v[i] = initial.v[i];
30 :     } else
31 :     v = 0;
32 :     }
33 :    
34 :     DoubleVector::~DoubleVector() {
35 :     if (v != 0) {
36 :     delete[] v;
37 :     v = 0;
38 :     }
39 :     }
40 :    
41 : ulcessvp 11 void DoubleVector::Initialize(int sz, double value) {
42 :     size = (sz > 0 ? sz : 0);
43 :     int i;
44 :     if (size > 0) {
45 :     v = new double[size];
46 :     for (i = 0; i < size; i++)
47 :     v[i] = value;
48 :     } else
49 :     v = 0;
50 :     }
51 :    
52 : agomez 1 void DoubleVector::resize(int addsize, double value) {
53 :     if (addsize <= 0)
54 :     return;
55 :    
56 :     int i;
57 :     if (v == 0) {
58 :     size = addsize;
59 :     v = new double[size];
60 :     for (i = 0; i < size; i++)
61 :     v[i] = value;
62 :    
63 :     } else if (addsize > 0) {
64 :     double* vnew = new double[size + addsize];
65 :     for (i = 0; i < size; i++)
66 :     vnew[i] = v[i];
67 :     for (i = size; i < size + addsize; i++)
68 :     vnew[i] = value;
69 :     delete[] v;
70 :     v = vnew;
71 :     size += addsize;
72 :     }
73 :     }
74 :    
75 :     void DoubleVector::Delete(int pos) {
76 :     int i;
77 :     if (size > 1) {
78 :     double* vnew = new double[size - 1];
79 :     for (i = 0; i < pos; i++)
80 :     vnew[i] = v[i];
81 :     for (i = pos; i < size - 1; i++)
82 :     vnew[i] = v[i + 1];
83 :     delete[] v;
84 :     v = vnew;
85 :     size--;
86 :     } else {
87 :     delete[] v;
88 :     v = 0;
89 :     size = 0;
90 :     }
91 :     }
92 :    
93 :     void DoubleVector::Reset() {
94 :     if (size > 0) {
95 :     delete[] v;
96 :     v = 0;
97 :     size = 0;
98 :     }
99 :     }
100 :    
101 :     void DoubleVector::setToZero() {
102 :     int i;
103 :     for (i = 0; i < size; i++)
104 :     v[i] = 0.0;
105 :     }
106 :    
107 :     double DoubleVector::operator * (const DoubleVector& d) const {
108 :     double result = 0.0;
109 :     int i;
110 :     if (size == d.size)
111 :     for (i = 0; i < size; i++)
112 :     result += (d[i] * v[i]);
113 :     return result;
114 :     }
115 :    
116 :     DoubleVector& DoubleVector::operator = (const DoubleVector& d) {
117 :     int i;
118 :     if (size == d.size) {
119 :     for (i = 0; i < size; i++)
120 :     v[i] = d[i];
121 :     return *this;
122 :     }
123 :     if (v != 0) {
124 :     delete[] v;
125 :     v = 0;
126 :     }
127 :     size = d.size;
128 :     if (size > 0) {
129 :     v = new double[size];
130 :     for (i = 0; i < size; i++)
131 :     v[i] = d.v[i];
132 :     } else
133 :     v = 0;
134 :     return *this;
135 :     }

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge