Carmen Code
 All Classes Files Functions Variables Macros Pages
Public Member Functions | Public Attributes | List of all members
Vector Class Reference

Standard class for every vector in Carmen. More...

#include <Vector.h>

Public Member Functions

 Vector ()
 Generates a 1D vector equal to zero. More...
 
 Vector (const int n)
 Generates a vector of dimension n, each component being equal to zero. More...
 
 Vector (const real x, const real y)
 Generates the 2D vector (x,y). More...
 
 Vector (const real x, const real y, const real z)
 Generates the 3D vector (x,y,z). More...
 
 Vector (const Vector &V)
 .Generates a copy of the vector V. More...
 
 ~Vector ()
 Destructor of Vector Class. More...
 
void setValue (const int n, const real a)
 Sets the component n to value a. More...
 
void setZero ()
 Sets all the components to zero. More...
 
void setDimension (const int n)
 Sets the dimension of the vector to n and reset values to zero. More...
 
real value (const int n) const
 Returns the value of the component n. More...
 
int dimension () const
 Returns the dimension of the vector. More...
 
bool operator== (const Vector &V) const
 Compares the current vector to a vector V and returns true if they are equal. More...
 
void operator= (const Vector &V)
 Set the current vector to the dimension and the value of V. More...
 
void operator+= (const Vector &V)
 Adds V to the current vector. More...
 
Vector operator+ (const Vector &V) const
 Returns the addition of the current vector and V. More...
 
void operator-= (const Vector &V)
 Subtracts V to the current vector. More...
 
Vector operator- (const Vector &V) const
 Returns the difference between the current vector and V. More...
 
Vector operator- () const
 Returns the opposite of the current vector. More...
 
void operator*= (const real a)
 Multiplies the current vector by a real a. More...
 
Vector operator* (const real a) const
 Returns the product of the current vector and a real a. More...
 
void operator/= (const real a)
 Divides the current vector by a real a. More...
 
Vector operator/ (const real a) const
 Returns the division of the current vector by a real a. More...
 
real operator* (const Vector &V) const
 Returns the dot product of the current vector and V. More...
 
Vector operator| (const Vector &V) const
 Returns the term-by-term product of the current vector and V. More...
 
Vector operator^ (const Vector &V) const
 Returns the vectorial product of the current vector and V. More...
 
bool isNaN () const
 Returns true if one of the components of the current vector is not a number. More...
 

Public Attributes

int Columns
 
real U [9]
 

Detailed Description

Standard class for every vector in Carmen.

It contains the following data:

Constructor & Destructor Documentation

Vector::Vector ( )

Generates a 1D vector equal to zero.

Example :

#include "Vector.h"

Vector V;

37 {
38  Columns = 1;
39  *U = 0.;
40 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
Vector::Vector ( const int  n)

Generates a vector of dimension n, each component being equal to zero.

Example :

#include "Vector.h"

Vector V(4);

Parameters
n

46 {
47  Columns = n;
48 
49  // If the size of the vector is 0, do not allocate memory
50  if (Columns == 0) return;
51 
52  if (Columns==9) {
53  *U=0.;
54  *(U+1)=0.;
55  *(U+2)=0.;
56  *(U+3)=0.;
57  *(U+4)=0.;
58  *(U+5)=0.;
59  *(U+6)=0.;
60  *(U+7)=0.;
61  *(U+8)=0.;
62  }
63  else if (Columns==8) {
64  *U=0.;
65  *(U+1)=0.;
66  *(U+2)=0.;
67  *(U+3)=0.;
68  *(U+4)=0.;
69  *(U+5)=0.;
70  *(U+6)=0.;
71  *(U+7)=0.;
72  }
73  else if (Columns==7) {
74  *U=0.;
75  *(U+1)=0.;
76  *(U+2)=0.;
77  *(U+3)=0.;
78  *(U+4)=0.;
79  *(U+5)=0.;
80  *(U+6)=0.;
81  }
82  else if (Columns==6) {
83  *U=0.;
84  *(U+1)=0.;
85  *(U+2)=0.;
86  *(U+3)=0.;
87  *(U+4)=0.;
88  *(U+5)=0.;
89  }
90  else if (Columns==5) {
91  *U=0.;
92  *(U+1)=0.;
93  *(U+2)=0.;
94  *(U+3)=0.;
95  *(U+4)=0.;
96  }
97  else if (Columns==4) {
98  *U=0.;
99  *(U+1)=0.;
100  *(U+2)=0.;
101  *(U+3)=0.;
102  }
103  else if (Columns==3) {
104  *U=0.;
105  *(U+1)=0.;
106  *(U+2)=0.;
107  }
108  else if (Columns==2) {
109  *U=0.;
110  *(U+1)=0.;
111  }
112  else if (Columns==1) {
113  *U=0.;
114  }
115 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
Vector::Vector ( const real  x,
const real  y 
)

Generates the 2D vector (x,y).

Example :

#include "Vector.h"

Vector V(0.,1.);

Parameters
xReal value
yReal value

121 {
122  Columns = 2;
123  *U = x;
124  *(U+1) = y;
125 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
Vector::Vector ( const real  x,
const real  y,
const real  z 
)

Generates the 3D vector (x,y,z).

Example :

#include "Vector.h"

Vector V(0.,1.,0.);

Parameters
xReal value
yReal value
zReal value

131 {
132  Columns = 3;
133  *U = x;
134  *(U+1) = y;
135  *(U+2) = z;
136 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
Vector::Vector ( const Vector V)

.Generates a copy of the vector V.

Example :

#include "Vector.h"

Vector V(0.,1.,0.);
Vector W(V);

Parameters
VVector

142 {
143  Columns = V.dimension();
144  if (Columns==9) {
145  *U = V.value(1);
146  *(U+1) = V.value(2);
147  *(U+2) = V.value(3);
148  *(U+3) = V.value(4);
149  *(U+4) = V.value(5);
150  *(U+5) = V.value(6);
151  *(U+6) = V.value(7);
152  *(U+7) = V.value(8);
153  *(U+8) = V.value(9);
154  }
155  else if (Columns==8) {
156  *U = V.value(1);
157  *(U+1) = V.value(2);
158  *(U+2) = V.value(3);
159  *(U+3) = V.value(4);
160  *(U+4) = V.value(5);
161  *(U+5) = V.value(6);
162  *(U+6) = V.value(7);
163  *(U+7) = V.value(8);
164  }
165  else if (Columns==7) {
166  *U = V.value(1);
167  *(U+1) = V.value(2);
168  *(U+2) = V.value(3);
169  *(U+3) = V.value(4);
170  *(U+4) = V.value(5);
171  *(U+5) = V.value(6);
172  *(U+6) = V.value(7);
173  }
174  else if (Columns==6) {
175  *U = V.value(1);
176  *(U+1) = V.value(2);
177  *(U+2) = V.value(3);
178  *(U+3) = V.value(4);
179  *(U+4) = V.value(5);
180  *(U+5) = V.value(6);
181  }
182  else if (Columns==5) {
183  *U = V.value(1);
184  *(U+1) = V.value(2);
185  *(U+2) = V.value(3);
186  *(U+3) = V.value(4);
187  *(U+4) = V.value(5);
188  }
189  else if (Columns==4) {
190  *U = V.value(1);
191  *(U+1) = V.value(2);
192  *(U+2) = V.value(3);
193  *(U+3) = V.value(4);
194  }
195  else if (Columns==3) {
196  *U = V.value(1);
197  *(U+1) = V.value(2);
198  *(U+2) = V.value(3);
199  }
200  else if (Columns==2) {
201  *U = V.value(1);
202  *(U+1) = V.value(2);
203  }
204  else if (Columns==1) {
205  *U = V.value(1);
206  }
207 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector::~Vector ( )

Destructor of Vector Class.

Deallocate memory of the vector.

217 {
218  // If the size of the vector is equal to zero, do not deallocate memory
219  if (Columns == 0) return;
220 }
int Columns
Definition: Vector.h:446

Member Function Documentation

int Vector::dimension ( ) const
inline

Returns the dimension of the vector.

Returns
int
536 {
537  return Columns;
538 }
int Columns
Definition: Vector.h:446

Here is the caller graph for this function:

bool Vector::isNaN ( ) const

Returns true if one of the components of the current vector is not a number.

Returns
bool
1438 {
1439  int n;
1440 
1441  for (n = 1; n <= Columns; n++)
1442 
1443 //On some machines should be math::isnan
1444 #if defined SP_SMP
1445  if (::isnan(value(n)) )
1446 #else
1447  if ( isnan(value(n)) )
1448 #endif
1449  return true;
1450 
1451  return false;
1452 }
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator* ( const real  a) const

Returns the product of the current vector and a real a.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W;
real x = 2.;
...
W = V*x;

The operation W = x*V can also be done. See operator*(const real a, const Vector& V).

Parameters
aReal value
Returns
Vector

1032 {
1033  Vector result(Columns);
1034 
1035  if (Columns==9) {
1036  result.setValue(1, value(1) *a);
1037  result.setValue(2, value(2) *a);
1038  result.setValue(3, value(3) *a);
1039  result.setValue(4, value(4) *a);
1040  result.setValue(5, value(5) *a);
1041  result.setValue(6, value(6) *a);
1042  result.setValue(7, value(7) *a);
1043  result.setValue(8, value(8) *a);
1044  result.setValue(9, value(9) *a);
1045  }
1046  else if (Columns==8) {
1047  result.setValue(1, value(1) *a);
1048  result.setValue(2, value(2) *a);
1049  result.setValue(3, value(3) *a);
1050  result.setValue(4, value(4) *a);
1051  result.setValue(5, value(5) *a);
1052  result.setValue(6, value(6) *a);
1053  result.setValue(7, value(7) *a);
1054  result.setValue(8, value(8) *a);
1055  }
1056  else if (Columns==7) {
1057  result.setValue(1, value(1) *a);
1058  result.setValue(2, value(2) *a);
1059  result.setValue(3, value(3) *a);
1060  result.setValue(4, value(4) *a);
1061  result.setValue(5, value(5) *a);
1062  result.setValue(6, value(6) *a);
1063  result.setValue(7, value(7) *a);
1064  }
1065  else if (Columns==6) {
1066  result.setValue(1, value(1) *a);
1067  result.setValue(2, value(2) *a);
1068  result.setValue(3, value(3) *a);
1069  result.setValue(4, value(4) *a);
1070  result.setValue(5, value(5) *a);
1071  result.setValue(6, value(6) *a);
1072  }
1073  else if (Columns==5) {
1074  result.setValue(1, value(1) *a);
1075  result.setValue(2, value(2) *a);
1076  result.setValue(3, value(3) *a);
1077  result.setValue(4, value(4) *a);
1078  result.setValue(5, value(5) *a);
1079  }
1080  else if (Columns==4) {
1081  result.setValue(1, value(1) *a);
1082  result.setValue(2, value(2) *a);
1083  result.setValue(3, value(3) *a);
1084  result.setValue(4, value(4) *a);
1085  }
1086  else if (Columns==3) {
1087  result.setValue(1, value(1) *a);
1088  result.setValue(2, value(2) *a);
1089  result.setValue(3, value(3) *a);
1090  }
1091  else if (Columns==2) {
1092  result.setValue(1, value(1) *a);
1093  result.setValue(2, value(2) *a);
1094  }
1095  else if (Columns==1) {
1096  result.setValue(1, value(1) *a);
1097  }
1098  return result;
1099 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
real Vector::operator* ( const Vector V) const

Returns the dot product of the current vector and V.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W(1., 2., 1.);
real x;
...
x = V*W;

Parameters
VVector
Returns
real

1280 {
1281  real result = 0.;
1282 
1283 #ifdef DEBUG
1284  if ( Columns != V.dimension())
1285  {
1286  cout << "Vector.cpp: In method `real Vector::operator*(Vector&)':\n";
1287  cout << "Vector.cpp: vectors have different dimensions\n";
1288  cout << "carmen: *** [Vector.o] Execution error\n";
1289  cout << "carmen: abort execution.\n";
1290  exit(1);
1291  }
1292 #endif
1293 
1294  if (Columns==9) {
1295  result += *U * V.value(1);
1296  result += *(U+1) * V.value(2);
1297  result += *(U+2) * V.value(3);
1298  result += *(U+3) * V.value(4);
1299  result += *(U+4) * V.value(5);
1300  result += *(U+5) * V.value(6);
1301  result += *(U+6) * V.value(7);
1302  result += *(U+7) * V.value(8);
1303  result += *(U+8) * V.value(9);
1304  }
1305  else if (Columns==8) {
1306  result += *U * V.value(1);
1307  result += *(U+1) * V.value(2);
1308  result += *(U+2) * V.value(3);
1309  result += *(U+3) * V.value(4);
1310  result += *(U+4) * V.value(5);
1311  result += *(U+5) * V.value(6);
1312  result += *(U+6) * V.value(7);
1313  result += *(U+7) * V.value(8);
1314  }
1315  else if (Columns==7) {
1316  result += *U * V.value(1);
1317  result += *(U+1) * V.value(2);
1318  result += *(U+2) * V.value(3);
1319  result += *(U+3) * V.value(4);
1320  result += *(U+4) * V.value(5);
1321  result += *(U+5) * V.value(6);
1322  result += *(U+6) * V.value(7);
1323  }
1324  else if (Columns==6) {
1325  result += *U * V.value(1);
1326  result += *(U+1) * V.value(2);
1327  result += *(U+2) * V.value(3);
1328  result += *(U+3) * V.value(4);
1329  result += *(U+4) * V.value(5);
1330  result += *(U+5) * V.value(6);
1331  }
1332  else if (Columns==5) {
1333  result += *U * V.value(1);
1334  result += *(U+1) * V.value(2);
1335  result += *(U+2) * V.value(3);
1336  result += *(U+3) * V.value(4);
1337  result += *(U+4) * V.value(5);
1338  }
1339  else if (Columns==4) {
1340  result += *U * V.value(1);
1341  result += *(U+1) * V.value(2);
1342  result += *(U+2) * V.value(3);
1343  result += *(U+3) * V.value(4);
1344  }
1345  else if (Columns==3) {
1346  result += *U * V.value(1);
1347  result += *(U+1) * V.value(2);
1348  result += *(U+2) * V.value(3);
1349  }
1350  else if (Columns==2) {
1351  result += *U * V.value(1);
1352  result += *(U+1) * V.value(2);
1353  }
1354  else if (Columns==1) {
1355  result += *U * V.value(1);
1356  }
1357 
1358  return result;
1359 
1360 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
#define real
Definition: PreProcessor.h:31
void Vector::operator*= ( const real  a)

Multiplies the current vector by a real a.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
real x = 2.;
...
V *= x;

Parameters
aReal value
Returns
void

962 {
963  if (Columns==9) {
964  *U *= a;
965  *(U+1) *= a;
966  *(U+2) *= a;
967  *(U+3) *= a;
968  *(U+4) *= a;
969  *(U+5) *= a;
970  *(U+6) *= a;
971  *(U+7) *= a;
972  *(U+8) *= a;
973  }
974  else if (Columns==8) {
975  *U *= a;
976  *(U+1) *= a;
977  *(U+2) *= a;
978  *(U+3) *= a;
979  *(U+4) *= a;
980  *(U+5) *= a;
981  *(U+6) *= a;
982  *(U+7) *= a;
983  }
984  else if (Columns==7) {
985  *U *= a;
986  *(U+1) *= a;
987  *(U+2) *= a;
988  *(U+3) *= a;
989  *(U+4) *= a;
990  *(U+5) *= a;
991  *(U+6) *= a;
992  }
993  else if (Columns==6) {
994  *U *= a;
995  *(U+1) *= a;
996  *(U+2) *= a;
997  *(U+3) *= a;
998  *(U+4) *= a;
999  *(U+5) *= a;
1000  }
1001  else if (Columns==5) {
1002  *U *= a;
1003  *(U+1) *= a;
1004  *(U+2) *= a;
1005  *(U+3) *= a;
1006  *(U+4) *= a;
1007  }
1008  else if (Columns==4) {
1009  *U *= a;
1010  *(U+1) *= a;
1011  *(U+2) *= a;
1012  *(U+3) *= a;
1013  }
1014  else if (Columns==3) {
1015  *U *= a;
1016  *(U+1) *= a;
1017  *(U+2) *= a;
1018  }
1019  else if (Columns==2) {
1020  *U *= a;
1021  *(U+1) *= a;
1022  }
1023  else if (Columns==1) {
1024  *U *= a;
1025  }
1026 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
Vector Vector::operator+ ( const Vector V) const

Returns the addition of the current vector and V.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W(0.,-1.,2.);
Vector U;
...
U = V + W;

Parameters
VVector
Returns
Vector

625 {
626  Vector result(Columns);
627 
628 #ifdef DEBUG
629  if ( Columns != V.dimension())
630  {
631  cout << "Vector.cpp: In method `Vector& Vector::operator+(Vector&)':\n";
632  cout << "Vector.cpp: vectors have different dimensions\n";
633  cout << "carmen: *** [Vector.o] Execution error\n";
634  cout << "carmen: abort execution.\n";
635  exit(1);
636  }
637 #endif
638 
639  if (Columns==9) {
640  result.setValue(1, value(1) + V.value(1));
641  result.setValue(2, value(2) + V.value(2));
642  result.setValue(3, value(3) + V.value(3));
643  result.setValue(4, value(4) + V.value(4));
644  result.setValue(5, value(5) + V.value(5));
645  result.setValue(6, value(6) + V.value(6));
646  result.setValue(7, value(7) + V.value(7));
647  result.setValue(8, value(8) + V.value(8));
648  result.setValue(9, value(9) + V.value(9));
649  }
650  else if (Columns==8) {
651  result.setValue(1, value(1) + V.value(1));
652  result.setValue(2, value(2) + V.value(2));
653  result.setValue(3, value(3) + V.value(3));
654  result.setValue(4, value(4) + V.value(4));
655  result.setValue(5, value(5) + V.value(5));
656  result.setValue(6, value(6) + V.value(6));
657  result.setValue(7, value(7) + V.value(7));
658  result.setValue(8, value(8) + V.value(8));
659  }
660  else if (Columns==7) {
661  result.setValue(1, value(1) + V.value(1));
662  result.setValue(2, value(2) + V.value(2));
663  result.setValue(3, value(3) + V.value(3));
664  result.setValue(4, value(4) + V.value(4));
665  result.setValue(5, value(5) + V.value(5));
666  result.setValue(6, value(6) + V.value(6));
667  result.setValue(7, value(7) + V.value(7));
668  }
669  else if (Columns==6) {
670  result.setValue(1, value(1) + V.value(1));
671  result.setValue(2, value(2) + V.value(2));
672  result.setValue(3, value(3) + V.value(3));
673  result.setValue(4, value(4) + V.value(4));
674  result.setValue(5, value(5) + V.value(5));
675  result.setValue(6, value(6) + V.value(6));
676  }
677  else if (Columns==5) {
678  result.setValue(1, value(1) + V.value(1));
679  result.setValue(2, value(2) + V.value(2));
680  result.setValue(3, value(3) + V.value(3));
681  result.setValue(4, value(4) + V.value(4));
682  result.setValue(5, value(5) + V.value(5));
683  }
684  else if (Columns==4) {
685  result.setValue(1, value(1) + V.value(1));
686  result.setValue(2, value(2) + V.value(2));
687  result.setValue(3, value(3) + V.value(3));
688  result.setValue(4, value(4) + V.value(4));
689  }
690  else if (Columns==3) {
691  result.setValue(1, value(1) + V.value(1));
692  result.setValue(2, value(2) + V.value(2));
693  result.setValue(3, value(3) + V.value(3));
694  }
695  else if (Columns==2) {
696  result.setValue(1, value(1) + V.value(1));
697  result.setValue(2, value(2) + V.value(2));
698  }
699  else if (Columns==1) {
700  result.setValue(1, value(1) + V.value(1));
701  }
702  return result;
703 
704 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
void Vector::operator+= ( const Vector V)

Adds V to the current vector.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W(0.,-1.,2.);
...
W += V;

Parameters
VVector
Returns
void

542 {
543 #ifdef DEBUG
544  if ( Columns != V.dimension())
545  {
546  cout << "Vector.cpp: In method `void Vector::operator+=(Vector&)':\n";
547  cout << "Vector.cpp: vectors have different dimensions\n";
548  cout << "carmen: *** [Vector.o] Execution error\n";
549  cout << "carmen: abort execution.\n";
550  exit(1);
551  }
552 #endif
553 
554  if (Columns==9) {
555  *U += V.value(1);
556  *(U+1) += V.value(2);
557  *(U+2) += V.value(3);
558  *(U+3) += V.value(4);
559  *(U+4) += V.value(5);
560  *(U+5) += V.value(6);
561  *(U+6) += V.value(7);
562  *(U+7) += V.value(8);
563  *(U+8) += V.value(9);
564  }
565  else if (Columns==8) {
566  *U += V.value(1);
567  *(U+1) += V.value(2);
568  *(U+2) += V.value(3);
569  *(U+3) += V.value(4);
570  *(U+4) += V.value(5);
571  *(U+5) += V.value(6);
572  *(U+6) += V.value(7);
573  *(U+7) += V.value(8);
574  }
575  else if (Columns==7) {
576  *U += V.value(1);
577  *(U+1) += V.value(2);
578  *(U+2) += V.value(3);
579  *(U+3) += V.value(4);
580  *(U+4) += V.value(5);
581  *(U+5) += V.value(6);
582  *(U+6) += V.value(7);
583  }
584  else if (Columns==6) {
585  *U += V.value(1);
586  *(U+1) += V.value(2);
587  *(U+2) += V.value(3);
588  *(U+3) += V.value(4);
589  *(U+4) += V.value(5);
590  *(U+5) += V.value(6);
591  }
592  else if (Columns==5) {
593  *U += V.value(1);
594  *(U+1) += V.value(2);
595  *(U+2) += V.value(3);
596  *(U+3) += V.value(4);
597  *(U+4) += V.value(5);
598  }
599  else if (Columns==4) {
600  *U += V.value(1);
601  *(U+1) += V.value(2);
602  *(U+2) += V.value(3);
603  *(U+3) += V.value(4);
604  }
605  else if (Columns==3) {
606  *U += V.value(1);
607  *(U+1) += V.value(2);
608  *(U+2) += V.value(3);
609  }
610  else if (Columns==2) {
611  *U += V.value(1);
612  *(U+1) += V.value(2);
613  }
614  else if (Columns==1) {
615  *U += V.value(1);
616  }
617 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator- ( const Vector V) const

Returns the difference between the current vector and V.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W(0.,-1.,2.);
Vector U;
...
U = V - W;

Parameters
VVector
Returns
Vector

798 {
799  Vector result(Columns);
800 
801 #ifdef DEBUG
802  if ( Columns != V.dimension())
803  {
804  cout << "Vector.cpp: In method `Vector& Vector::operator-(Vector&)':\n";
805  cout << "Vector.cpp: vectors have different dimensions\n";
806  cout << "carmen: *** [Vector.o] Execution error\n";
807  cout << "carmen: abort execution.\n";
808  exit(1);
809  }
810 #endif
811 
812  if (Columns==9) {
813  result.setValue(1, value(1) - V.value(1));
814  result.setValue(2, value(2) - V.value(2));
815  result.setValue(3, value(3) - V.value(3));
816  result.setValue(4, value(4) - V.value(4));
817  result.setValue(5, value(5) - V.value(5));
818  result.setValue(6, value(6) - V.value(6));
819  result.setValue(7, value(7) - V.value(7));
820  result.setValue(8, value(8) - V.value(8));
821  result.setValue(9, value(9) - V.value(9));
822  }
823  else if (Columns==8) {
824  result.setValue(1, value(1) - V.value(1));
825  result.setValue(2, value(2) - V.value(2));
826  result.setValue(3, value(3) - V.value(3));
827  result.setValue(4, value(4) - V.value(4));
828  result.setValue(5, value(5) - V.value(5));
829  result.setValue(6, value(6) - V.value(6));
830  result.setValue(7, value(7) - V.value(7));
831  result.setValue(8, value(8) - V.value(8));
832  }
833  else if (Columns==7) {
834  result.setValue(1, value(1) - V.value(1));
835  result.setValue(2, value(2) - V.value(2));
836  result.setValue(3, value(3) - V.value(3));
837  result.setValue(4, value(4) - V.value(4));
838  result.setValue(5, value(5) - V.value(5));
839  result.setValue(6, value(6) - V.value(6));
840  result.setValue(7, value(7) - V.value(7));
841  }
842  else if (Columns==6) {
843  result.setValue(1, value(1) - V.value(1));
844  result.setValue(2, value(2) - V.value(2));
845  result.setValue(3, value(3) - V.value(3));
846  result.setValue(4, value(4) - V.value(4));
847  result.setValue(5, value(5) - V.value(5));
848  result.setValue(6, value(6) - V.value(6));
849  }
850  else if (Columns==5) {
851  result.setValue(1, value(1) - V.value(1));
852  result.setValue(2, value(2) - V.value(2));
853  result.setValue(3, value(3) - V.value(3));
854  result.setValue(4, value(4) - V.value(4));
855  result.setValue(5, value(5) - V.value(5));
856  }
857  else if (Columns==4) {
858  result.setValue(1, value(1) - V.value(1));
859  result.setValue(2, value(2) - V.value(2));
860  result.setValue(3, value(3) - V.value(3));
861  result.setValue(4, value(4) - V.value(4));
862  }
863  else if (Columns==3) {
864  result.setValue(1, value(1) - V.value(1));
865  result.setValue(2, value(2) - V.value(2));
866  result.setValue(3, value(3) - V.value(3));
867  }
868  else if (Columns==2) {
869  result.setValue(1, value(1) - V.value(1));
870  result.setValue(2, value(2) - V.value(2));
871  }
872  else if (Columns==1) {
873  result.setValue(1, value(1) - V.value(1));
874  }
875  return result;
876 
877 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator- ( ) const

Returns the opposite of the current vector.

Example

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W;
...
W = -V;

Returns
Vector

885 {
886  Vector result(Columns);
887 
888  if (Columns==9) {
889  result.setValue(1,-*U);
890  result.setValue(2,-*(U+1));
891  result.setValue(3,-*(U+2));
892  result.setValue(4,-*(U+3));
893  result.setValue(5,-*(U+4));
894  result.setValue(6,-*(U+5));
895  result.setValue(7,-*(U+6));
896  result.setValue(8,-*(U+7));
897  result.setValue(9,-*(U+8));
898  }
899  else if (Columns==8) {
900  result.setValue(1,-*U);
901  result.setValue(2,-*(U+1));
902  result.setValue(3,-*(U+2));
903  result.setValue(4,-*(U+3));
904  result.setValue(5,-*(U+4));
905  result.setValue(6,-*(U+5));
906  result.setValue(7,-*(U+6));
907  result.setValue(8,-*(U+7));
908  }
909  else if (Columns==7) {
910  result.setValue(1,-*U);
911  result.setValue(2,-*(U+1));
912  result.setValue(3,-*(U+2));
913  result.setValue(4,-*(U+3));
914  result.setValue(5,-*(U+4));
915  result.setValue(6,-*(U+5));
916  result.setValue(7,-*(U+6));
917  }
918  else if (Columns==6) {
919  result.setValue(1,-*U);
920  result.setValue(2,-*(U+1));
921  result.setValue(3,-*(U+2));
922  result.setValue(4,-*(U+3));
923  result.setValue(5,-*(U+4));
924  result.setValue(6,-*(U+5));
925  }
926  else if (Columns==5) {
927  result.setValue(1,-*U);
928  result.setValue(2,-*(U+1));
929  result.setValue(3,-*(U+2));
930  result.setValue(4,-*(U+3));
931  result.setValue(5,-*(U+4));
932  }
933  else if (Columns==4) {
934  result.setValue(1,-*U);
935  result.setValue(2,-*(U+1));
936  result.setValue(3,-*(U+2));
937  result.setValue(4,-*(U+3));
938  }
939  else if (Columns==3) {
940  result.setValue(1,-*U);
941  result.setValue(2,-*(U+1));
942  result.setValue(3,-*(U+2));
943  }
944  else if (Columns==2) {
945  result.setValue(1,-*U);
946  result.setValue(2,-*(U+1));
947  }
948  else if (Columns==1) {
949  result.setValue(1,-*U);
950  }
951  return result;
952 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
void Vector::operator-= ( const Vector V)

Subtracts V to the current vector.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W(0.,-1.,2.);
...
W -= V;

Parameters
VVector
Returns
void

715 {
716 #ifdef DEBUG
717  if ( Columns != V.dimension())
718  {
719  cout << "Vector.cpp: In method `void Vector::operator-=(Vector&)':\n";
720  cout << "Vector.cpp: vectors have different dimensions\n";
721  cout << "carmen: *** [Vector.o] Execution error\n";
722  cout << "carmen: abort execution.\n";
723  exit(1);
724  }
725 #endif
726 
727  if (Columns==9) {
728  *U -= V.value(1);
729  *(U+1) -= V.value(2);
730  *(U+2) -= V.value(3);
731  *(U+3) -= V.value(4);
732  *(U+4) -= V.value(5);
733  *(U+5) -= V.value(6);
734  *(U+6) -= V.value(7);
735  *(U+7) -= V.value(8);
736  *(U+8) -= V.value(9);
737  }
738  else if (Columns==8) {
739  *U -= V.value(1);
740  *(U+1) -= V.value(2);
741  *(U+2) -= V.value(3);
742  *(U+3) -= V.value(4);
743  *(U+4) -= V.value(5);
744  *(U+5) -= V.value(6);
745  *(U+6) -= V.value(7);
746  *(U+7) -= V.value(8);
747  }
748  else if (Columns==7) {
749  *U -= V.value(1);
750  *(U+1) -= V.value(2);
751  *(U+2) -= V.value(3);
752  *(U+3) -= V.value(4);
753  *(U+4) -= V.value(5);
754  *(U+5) -= V.value(6);
755  *(U+6) -= V.value(7);
756  }
757  else if (Columns==6) {
758  *U -= V.value(1);
759  *(U+1) -= V.value(2);
760  *(U+2) -= V.value(3);
761  *(U+3) -= V.value(4);
762  *(U+4) -= V.value(5);
763  *(U+5) -= V.value(6);
764  }
765  else if (Columns==5) {
766  *U -= V.value(1);
767  *(U+1) -= V.value(2);
768  *(U+2) -= V.value(3);
769  *(U+3) -= V.value(4);
770  *(U+4) -= V.value(5);
771  }
772  else if (Columns==4) {
773  *U -= V.value(1);
774  *(U+1) -= V.value(2);
775  *(U+2) -= V.value(3);
776  *(U+3) -= V.value(4);
777  }
778  else if (Columns==3) {
779  *U -= V.value(1);
780  *(U+1) -= V.value(2);
781  *(U+2) -= V.value(3);
782  }
783  else if (Columns==2) {
784  *U -= V.value(1);
785  *(U+1) -= V.value(2);
786  }
787  else if (Columns==1) {
788  *U -= V.value(1);
789  }
790 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator/ ( const real  a) const

Returns the division of the current vector by a real a.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W;
real x = 2.;
...
W = V / x;

Parameters
aReal value
Returns
Vector

1192 {
1193  Vector result(Columns);
1194 
1195 #ifdef DEBUG
1196  if ( a == 0.)
1197  {
1198  cout << "Vector.cpp: In method `void Vector::operator/(real)':\n";
1199  cout << "Vector.cpp: division by zero\n";
1200  cout << "carmen: *** [Vector.o] Execution error\n";
1201  cout << "carmen: abort execution.\n";
1202  exit(1);
1203  }
1204 #endif
1205 
1206  if (Columns==9) {
1207  result.setValue(1, value(1) /a);
1208  result.setValue(2, value(2) /a);
1209  result.setValue(3, value(3) /a);
1210  result.setValue(4, value(4) /a);
1211  result.setValue(5, value(5) /a);
1212  result.setValue(6, value(6) /a);
1213  result.setValue(7, value(7) /a);
1214  result.setValue(8, value(8) /a);
1215  result.setValue(9, value(9) /a);
1216  }
1217  else if (Columns==8) {
1218  result.setValue(1, value(1) /a);
1219  result.setValue(2, value(2) /a);
1220  result.setValue(3, value(3) /a);
1221  result.setValue(4, value(4) /a);
1222  result.setValue(5, value(5) /a);
1223  result.setValue(6, value(6) /a);
1224  result.setValue(7, value(7) /a);
1225  result.setValue(8, value(8) /a);
1226  }
1227  else if (Columns==7) {
1228  result.setValue(1, value(1) /a);
1229  result.setValue(2, value(2) /a);
1230  result.setValue(3, value(3) /a);
1231  result.setValue(4, value(4) /a);
1232  result.setValue(5, value(5) /a);
1233  result.setValue(6, value(6) /a);
1234  result.setValue(7, value(7) /a);
1235  }
1236  else if (Columns==6) {
1237  result.setValue(1, value(1) /a);
1238  result.setValue(2, value(2) /a);
1239  result.setValue(3, value(3) /a);
1240  result.setValue(4, value(4) /a);
1241  result.setValue(5, value(5) /a);
1242  result.setValue(6, value(6) /a);
1243  }
1244  else if (Columns==5) {
1245  result.setValue(1, value(1) /a);
1246  result.setValue(2, value(2) /a);
1247  result.setValue(3, value(3) /a);
1248  result.setValue(4, value(4) /a);
1249  result.setValue(5, value(5) /a);
1250  }
1251  else if (Columns==4) {
1252  result.setValue(1, value(1) /a);
1253  result.setValue(2, value(2) /a);
1254  result.setValue(3, value(3) /a);
1255  result.setValue(4, value(4) /a);
1256  }
1257  else if (Columns==3) {
1258  result.setValue(1, value(1) /a);
1259  result.setValue(2, value(2) /a);
1260  result.setValue(3, value(3) /a);
1261  }
1262  else if (Columns==2) {
1263  result.setValue(1, value(1) /a);
1264  result.setValue(2, value(2) /a);
1265  }
1266  else if (Columns==1) {
1267  result.setValue(1, value(1) /a);
1268  }
1269  return result;
1270 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
void Vector::operator/= ( const real  a)

Divides the current vector by a real a.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
real x = 2.;
...
V /= x;

Parameters
aReal value
Returns
void

1109 {
1110 #ifdef DEBUG
1111  if ( a == 0.)
1112  {
1113  cout << "Vector.cpp: In method `void Vector::operator/=(real)':\n";
1114  cout << "Vector.cpp: division by zero\n";
1115  cout << "carmen: *** [Vector.o] Execution error\n";
1116  cout << "carmen: abort execution.\n";
1117  exit(1);
1118  }
1119 #endif
1120 
1121  if (Columns==9) {
1122  *U /= a;
1123  *(U+1) /= a;
1124  *(U+2) /= a;
1125  *(U+3) /= a;
1126  *(U+4) /= a;
1127  *(U+5) /= a;
1128  *(U+6) /= a;
1129  *(U+7) /= a;
1130  *(U+8) /= a;
1131  }
1132  else if (Columns==8) {
1133  *U /= a;
1134  *(U+1) /= a;
1135  *(U+2) /= a;
1136  *(U+3) /= a;
1137  *(U+4) /= a;
1138  *(U+5) /= a;
1139  *(U+6) /= a;
1140  *(U+7) /= a;
1141  }
1142  else if (Columns==7) {
1143  *U /= a;
1144  *(U+1) /= a;
1145  *(U+2) /= a;
1146  *(U+3) /= a;
1147  *(U+4) /= a;
1148  *(U+5) /= a;
1149  *(U+6) /= a;
1150  }
1151  else if (Columns==6) {
1152  *U /= a;
1153  *(U+1) /= a;
1154  *(U+2) /= a;
1155  *(U+3) /= a;
1156  *(U+4) /= a;
1157  *(U+5) /= a;
1158  }
1159  else if (Columns==5) {
1160  *U /= a;
1161  *(U+1) /= a;
1162  *(U+2) /= a;
1163  *(U+3) /= a;
1164  *(U+4) /= a;
1165  }
1166  else if (Columns==4) {
1167  *U /= a;
1168  *(U+1) /= a;
1169  *(U+2) /= a;
1170  *(U+3) /= a;
1171  }
1172  else if (Columns==3) {
1173  *U /= a;
1174  *(U+1) /= a;
1175  *(U+2) /= a;
1176  }
1177  else if (Columns==2) {
1178  *U /= a;
1179  *(U+1) /= a;
1180  }
1181  else if (Columns==1) {
1182  *U /= a;
1183  }
1184 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446
void Vector::operator= ( const Vector V)

Set the current vector to the dimension and the value of V.

Example :

#include "Vector.h"

Vector V(1.,0.,0.);
Vector W;
...
W = V;

Parameters
VVector
Returns
void

462 {
463  if (V.dimension() != Columns)
464  {
465  Columns = V.dimension();
466  }
467 
468  if (Columns==9) {
469  *U = V.value(1);
470  *(U+1) = V.value(2);
471  *(U+2) = V.value(3);
472  *(U+3) = V.value(4);
473  *(U+4) = V.value(5);
474  *(U+5) = V.value(6);
475  *(U+6) = V.value(7);
476  *(U+7) = V.value(8);
477  *(U+8) = V.value(9);
478  }
479  else if (Columns==8) {
480  *U = V.value(1);
481  *(U+1) = V.value(2);
482  *(U+2) = V.value(3);
483  *(U+3) = V.value(4);
484  *(U+4) = V.value(5);
485  *(U+5) = V.value(6);
486  *(U+6) = V.value(7);
487  *(U+7) = V.value(8);
488  }
489  else if (Columns==7) {
490  *U = V.value(1);
491  *(U+1) = V.value(2);
492  *(U+2) = V.value(3);
493  *(U+3) = V.value(4);
494  *(U+4) = V.value(5);
495  *(U+5) = V.value(6);
496  *(U+6) = V.value(7);
497  }
498  else if (Columns==6) {
499  *U = V.value(1);
500  *(U+1) = V.value(2);
501  *(U+2) = V.value(3);
502  *(U+3) = V.value(4);
503  *(U+4) = V.value(5);
504  *(U+5) = V.value(6);
505  }
506  else if (Columns==5) {
507  *U = V.value(1);
508  *(U+1) = V.value(2);
509  *(U+2) = V.value(3);
510  *(U+3) = V.value(4);
511  *(U+4) = V.value(5);
512  }
513  else if (Columns==4) {
514  *U = V.value(1);
515  *(U+1) = V.value(2);
516  *(U+2) = V.value(3);
517  *(U+3) = V.value(4);
518  }
519  else if (Columns==3) {
520  *U = V.value(1);
521  *(U+1) = V.value(2);
522  *(U+2) = V.value(3);
523  }
524  else if (Columns==2) {
525  *U = V.value(1);
526  *(U+1) = V.value(2);
527  }
528  else if (Columns==1) {
529  *U = V.value(1);
530  }
531 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
bool Vector::operator== ( const Vector V) const

Compares the current vector to a vector V and returns true if they are equal.

Example :

#include "Vector.h"

Vector V(2);
Vector W(2);
real x;
...
if (V == W)
x = V.value(1);

Parameters
VVector
Returns
bool

374 {
375 #ifdef DEBUG
376  if ( Columns != V.dimension())
377  {
378  cout << "Vector.cpp: In method `bool Vector::operator==(Vector&)':\n";
379  cout << "Vector.cpp: vectors have different dimensions\n";
380  cout << "carmen: *** [Vector.o] Execution error\n";
381  cout << "carmen: abort execution.\n";
382  exit(1);
383  }
384 #endif
385 
386  if (Columns==9) {
387  if ( *U != V.value(1) ) return false;
388  if ( *(U+1) != V.value(2) ) return false;
389  if ( *(U+2) != V.value(3) ) return false;
390  if ( *(U+3) != V.value(4) ) return false;
391  if ( *(U+4) != V.value(5) ) return false;
392  if ( *(U+5) != V.value(6) ) return false;
393  if ( *(U+6) != V.value(7) ) return false;
394  if ( *(U+7) != V.value(8) ) return false;
395  if ( *(U+8) != V.value(9) ) return false;
396  }
397  else if (Columns==8) {
398  if ( *U != V.value(1) ) return false;
399  if ( *(U+1) != V.value(2) ) return false;
400  if ( *(U+2) != V.value(3) ) return false;
401  if ( *(U+3) != V.value(4) ) return false;
402  if ( *(U+4) != V.value(5) ) return false;
403  if ( *(U+5) != V.value(6) ) return false;
404  if ( *(U+6) != V.value(7) ) return false;
405  if ( *(U+7) != V.value(8) ) return false;
406  }
407  else if (Columns==7) {
408  if ( *U != V.value(1) ) return false;
409  if ( *(U+1) != V.value(2) ) return false;
410  if ( *(U+2) != V.value(3) ) return false;
411  if ( *(U+3) != V.value(4) ) return false;
412  if ( *(U+4) != V.value(5) ) return false;
413  if ( *(U+5) != V.value(6) ) return false;
414  if ( *(U+6) != V.value(7) ) return false;
415  }
416  else if (Columns==6) {
417  if ( *U != V.value(1) ) return false;
418  if ( *(U+1) != V.value(2) ) return false;
419  if ( *(U+2) != V.value(3) ) return false;
420  if ( *(U+3) != V.value(4) ) return false;
421  if ( *(U+4) != V.value(5) ) return false;
422  if ( *(U+5) != V.value(6) ) return false;
423  }
424  else if (Columns==5) {
425  if ( *U != V.value(1) ) return false;
426  if ( *(U+1) != V.value(2) ) return false;
427  if ( *(U+2) != V.value(3) ) return false;
428  if ( *(U+3) != V.value(4) ) return false;
429  if ( *(U+4) != V.value(5) ) return false;
430  }
431  else if (Columns==4) {
432  if ( *U != V.value(1) ) return false;
433  if ( *(U+1) != V.value(2) ) return false;
434  if ( *(U+2) != V.value(3) ) return false;
435  if ( *(U+3) != V.value(4) ) return false;
436  }
437  else if (Columns==3) {
438  if ( *U != V.value(1) ) return false;
439  if ( *(U+1) != V.value(2) ) return false;
440  if ( *(U+2) != V.value(3) ) return false;
441  }
442  else if (Columns==2) {
443  if ( *U != V.value(1) ) return false;
444  if ( *(U+1) != V.value(2) ) return false;
445  }
446  else if (Columns==1) {
447  if ( *U != V.value(1) ) return false;
448  }
449  return true;
450 
451 }
real U[9]
Definition: Vector.h:448
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator^ ( const Vector V) const

Returns the vectorial product of the current vector and V.

Parameters
VVector
Returns
Vector
1402 {
1403  Vector result(3);
1404 
1405 #ifdef DEBUG
1406  if ( Columns != V.dimension())
1407  {
1408  cout << "Vector.cpp: In method `real Vector::operator^(Vector&)':\n";
1409  cout << "Vector.cpp: vectors have different dimensions\n";
1410  cout << "carmen: *** [Vector.o] Execution error\n";
1411  cout << "carmen: abort execution.\n";
1412  exit(1);
1413  }
1414 #endif
1415 
1416  if (Columns > 1)
1417  {
1418  result.setValue(3, value(1)*V.value(2)-value(2)*V.value(1));
1419  if (Columns > 2)
1420  {
1421  result.setValue(1, value(2)*V.value(3)-value(3)*V.value(2));
1422  result.setValue(2, value(3)*V.value(1)-value(1)*V.value(3));
1423  }
1424  }
1425 
1426  return result;
1427 
1428 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
Vector Vector::operator| ( const Vector V) const

Returns the term-by-term product of the current vector and V.

Parameters
VVector
Returns
Vector
1371 {
1372  int n;
1373  Vector result(Columns);
1374 
1375 #ifdef DEBUG
1376  if ( Columns != V.dimension())
1377  {
1378  cout << "Vector.cpp: In method `real Vector::operator|(Vector&)':\n";
1379  cout << "Vector.cpp: vectors have different dimensions\n";
1380  cout << "carmen: *** [Vector.o] Execution error\n";
1381  cout << "carmen: abort execution.\n";
1382  exit(1);
1383  }
1384 #endif
1385 
1386  for (n=1; n<=Columns; n++)
1387  result.setValue(n, value(n) * V.value(n));
1388 
1389  return result;
1390 
1391 }
Standard class for every vector in Carmen.
Definition: Vector.h:29
int dimension() const
Returns the dimension of the vector.
Definition: Vector.h:535
real value(const int n) const
Returns the value of the component n.
Definition: Vector.h:565
int Columns
Definition: Vector.h:446
void Vector::setDimension ( const int  n)

Sets the dimension of the vector to n and reset values to zero.

Example :

#include "Vector.h"

Vector V;
...
V.setDimension(3);

Parameters
nDimension
Returns
void

299 {
300  Columns = n;
301  if (Columns==9) {
302  *U=0.;
303  *(U+1)=0.;
304  *(U+2)=0.;
305  *(U+3)=0.;
306  *(U+4)=0.;
307  *(U+5)=0.;
308  *(U+6)=0.;
309  *(U+7)=0.;
310  *(U+8)=0.;
311  }
312  else if (Columns==8) {
313  *U=0.;
314  *(U+1)=0.;
315  *(U+2)=0.;
316  *(U+3)=0.;
317  *(U+4)=0.;
318  *(U+5)=0.;
319  *(U+6)=0.;
320  *(U+7)=0.;
321  }
322  else if (Columns==7) {
323  *U=0.;
324  *(U+1)=0.;
325  *(U+2)=0.;
326  *(U+3)=0.;
327  *(U+4)=0.;
328  *(U+5)=0.;
329  *(U+6)=0.;
330  }
331  else if (Columns==6) {
332  *U=0.;
333  *(U+1)=0.;
334  *(U+2)=0.;
335  *(U+3)=0.;
336  *(U+4)=0.;
337  *(U+5)=0.;
338  }
339  else if (Columns==5) {
340  *U=0.;
341  *(U+1)=0.;
342  *(U+2)=0.;
343  *(U+3)=0.;
344  *(U+4)=0.;
345  }
346  else if (Columns==4) {
347  *U=0.;
348  *(U+1)=0.;
349  *(U+2)=0.;
350  *(U+3)=0.;
351  }
352  else if (Columns==3) {
353  *U=0.;
354  *(U+1)=0.;
355  *(U+2)=0.;
356  }
357  else if (Columns==2) {
358  *U=0.;
359  *(U+1)=0.;
360  }
361  else if (Columns==1) {
362  *U=0.;
363  }
364 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446

Here is the caller graph for this function:

void Vector::setValue ( const int  n,
const real  a 
)
inline

Sets the component n to value a.

Example :

#include "Vector.h"

Vector V(2);
real x = 3.;
real y = 1.;
V.setValue(1,x);
V.setValue(2,y);

Parameters
nVariable number
aReal value
Returns
void

546 {
547 
548 #ifdef DEBUG
549  if ( n <= 0 || n > Columns)
550  {
551  cout << "Vector.cpp: In method `void Vector::setValue(int, real)':\n";
552  cout << "Vector.cpp: first argument out of range\n";
553  cout << "carmen: *** [Vector.o] Execution error\n";
554  cout << "carmen: abort execution.\n";
555  exit(1);
556  }
557 #endif
558 
559  *(U+n-1) = a;
560 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446

Here is the caller graph for this function:

void Vector::setZero ( )

Sets all the components to zero.

Returns
void
229 {
230  if (Columns==9) {
231  *U=0.;
232  *(U+1)=0.;
233  *(U+2)=0.;
234  *(U+3)=0.;
235  *(U+4)=0.;
236  *(U+5)=0.;
237  *(U+6)=0.;
238  *(U+7)=0.;
239  *(U+8)=0.;
240  }
241  else if (Columns==8) {
242  *U=0.;
243  *(U+1)=0.;
244  *(U+2)=0.;
245  *(U+3)=0.;
246  *(U+4)=0.;
247  *(U+5)=0.;
248  *(U+6)=0.;
249  *(U+7)=0.;
250  }
251  else if (Columns==7) {
252  *U=0.;
253  *(U+1)=0.;
254  *(U+2)=0.;
255  *(U+3)=0.;
256  *(U+4)=0.;
257  *(U+5)=0.;
258  *(U+6)=0.;
259  }
260  else if (Columns==6) {
261  *U=0.;
262  *(U+1)=0.;
263  *(U+2)=0.;
264  *(U+3)=0.;
265  *(U+4)=0.;
266  *(U+5)=0.;
267  }
268  else if (Columns==5) {
269  *U=0.;
270  *(U+1)=0.;
271  *(U+2)=0.;
272  *(U+3)=0.;
273  *(U+4)=0.;
274  }
275  else if (Columns==4) {
276  *U=0.;
277  *(U+1)=0.;
278  *(U+2)=0.;
279  *(U+3)=0.;
280  }
281  else if (Columns==3) {
282  *U=0.;
283  *(U+1)=0.;
284  *(U+2)=0.;
285  }
286  else if (Columns==2) {
287  *U=0.;
288  *(U+1)=0.;
289  }
290  else if (Columns==1) {
291  *U=0.;
292  }
293 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446

Here is the caller graph for this function:

real Vector::value ( const int  n) const
inline

Returns the value of the component n.

Example :

#include "Vector.h"

Vector V(2);
real x;
real y;
...
x = V.value(1);
y = V.value(2);

Parameters
nInteger
Returns
real

566 {
567 
568 #ifdef DEBUG
569 
570  if ( n <= 0 || n > Columns)
571  {
572  cout << "Vector.cpp: In method `void Vector::value(int)':\n";
573  cout << "Vector.cpp: argument out of range\n";
574  cout << "carmen: *** [Vector.o] Execution error\n";
575  cout << "carmen: abort execution.\n";
576  exit(1);
577  }
578 #endif
579 
580  return *(U+n-1);
581 }
real U[9]
Definition: Vector.h:448
int Columns
Definition: Vector.h:446

Member Data Documentation

int Vector::Columns

Number of columns

real Vector::U[9]

Components


The documentation for this class was generated from the following files: