12 #ifndef matrix_array_MATRIX_H
13 #define matrix_array_MATRIX_H
60 Matrix1D(
int size_q1 ,
string name =
"f");
68 T& operator[](
int i)
const;
69 T& operator()(
int q1);
70 T&
Value (
int q1) {
return operator()(q1); }
101 Matrix1D operator* (
const T Val)
const;
102 Matrix1D operator/ (
const T Val)
const;
116 virtual void writeToFile(
string filename);
117 virtual void writeToFile(
string filename,
Matrix1D<T> &grid_q1);
118 virtual void readFromFile(
string filename);
119 virtual void readFromFile(
string filename,
const Matrix1D<T> grid_q1);
122 virtual void readFromMatlabFile(
string filename,
int columnNumber = 1);
123 virtual void readFromMatlabFile(
string filename,
const Matrix1D<T> grid_q1);
153 Matrix2D() { initialized =
false; };
155 Matrix2D(
int size_q1,
int size_q2 );
164 T&
operator()(
int q1,
int q2) {
return matrix_array[0][q1*size_q2 + q2]; }
165 T&
Value (
int q1,
int q2) {
return operator()(q1, q2); }
193 Matrix2D operator* (
const T Val)
const;
194 Matrix2D operator/ (
const T Val)
const;
202 int index1d(
int q1,
int q2)
const;
212 virtual void writeToFile(
string filename);
214 virtual void readFromFile(
string filename,
int column = 1);
218 virtual void readFromMatlabFile(
string filename,
int column = 1);
234 template <
typename T>
252 Matrix3D(
int size_q1,
int size_q2,
int size_q3 );
255 virtual void AllocateMemory(
int size_q1,
int size_q2,
int size_q3);
258 T** operator[] (
int i);
259 T** operator[] (
int i)
const {
return matrix_array[i]; }
260 T& operator() (
int q1,
int q2,
int q3);
261 T&
Value (
int q1,
int q2,
int q3) {
return operator()(q1, q2, q3); }
291 Matrix3D operator* (
const T Val)
const;
292 Matrix3D operator/ (
const T Val)
const;
300 virtual void writeToFile(
string filename,
string info =
"");
302 virtual void readFromFile(
string filename,
int column = 1);
306 virtual void readFromMatlabFile(
string filename,
int column = 1);
312 int index1d(
int q1,
int q2,
int q3);
358 Matrix4D(
int size_w,
int size_x,
int size_y,
int size_z );
361 virtual void AllocateMemory(
int size_w,
int size_x,
int size_y,
int size_z);
364 T*** operator[] (
int i);
365 T*** operator[] (
int i)
const {
return matrix_array[i]; }
366 T& operator() (
int w,
int x,
int y,
int z);
367 T&
Value (
int w,
int x,
int y,
int z) {
return operator()(w, x, y, z); }
395 Matrix4D operator* (
const T Val)
const;
396 Matrix4D operator/ (
const T Val)
const;
404 virtual void writeToFile(
string filename,
string info =
"");
406 virtual void readFromFile(
string filename,
int column = 1);
411 virtual mxArray* createStructMatrix(
string filename,
string info =
"");
414 virtual void writeToMatlabFile(
string filename,
string info =
"");
416 virtual void readFromMatlabFile(
string file,
int column = 1);
422 int index1d(
int w,
int x,
int y,
int z);
444 Matrix1D<T> wxySlice(
int p_w,
int p_x,
int p_y)
const;
445 Matrix1D<T> wxzSlice(
int p_w,
int p_x,
int p_z)
const;
446 Matrix1D<T> wyzSlice(
int p_w,
int p_y,
int p_z)
const;
447 Matrix1D<T> xyzSlice(
int p_x,
int p_y,
int p_z)
const;
485 CalculationMatrix(
int x_size,
int y_size = 1,
int z_size = 1,
int n_of_diags = 1);
489 void Initialize(
int x_size,
int y_size = 1,
int z_size = 1,
int n_of_diags = 1);
492 int index1d(
int x,
int y = 0,
int z = 0);
495 void writeToFile(
string filename);
504 int index1d2(
int x,
int y = 0,
int z = 0);
bool initialized
Flag, equal true if initialized.
Definition: Matrix.h:147
void AllocateMemory(Matrix4D< double > &PSD, Matrix4D< double > &P, Matrix4D< double > &R, Matrix4D< double > &V, Matrix4D< double > &K, Matrix4D< double > &L, int &P_size, int &R_size, int &V_size, int &K_size, Matrix3D< double > &P_LBC, Matrix3D< double > &P_UBC, Matrix3D< double > &R_LBC, Matrix3D< double > &R_UBC, Matrix3D< double > &V_LBC, Matrix3D< double > &V_UBC, Matrix3D< double > &K_LBC, Matrix3D< double > &K_UBC, Matrix3D< double > &L_LBC, Matrix3D< double > &L_UBC, Matrix4D< double > &DLL, Matrix4D< double > &DVV, Matrix4D< double > &DVK, Matrix4D< double > &DKK, Matrix4D< double > &VP, Matrix4D< double > &VL, Matrix4D< double > &G_local, Matrix4D< double > &G_radial, Matrix4D< double > &Sources, Matrix4D< double > &Losses)
Definition: ReadInitialData.cpp:30
const Matrix4D & operator+() const
unary : return the matrix
Definition: Matrix.h:375
T & Value(int q1)
Return the (x,y) value of matrix.
Definition: Matrix.h:70
int size_q3
size z
Definition: Matrix.h:245
T & Value(int q1, int q2)
Return the (x,y) value of matrix.
Definition: Matrix.h:165
const Matrix4D operator-() const
unary : return the matrix with all values multiplied by -1
Definition: Matrix.h:376
int size_q1
size x
Definition: Matrix.h:55
Matrix3D< T > & MatrixArray()
Return pointer to the instance of the class.
Definition: Matrix.h:262
const Matrix3D & operator+() const
unary : return the matrix
Definition: Matrix.h:270
Matrix3D()
Default constructor. Do nothing.
Definition: Matrix.h:250
int size_w
size w
Definition: Matrix.h:348
const Matrix3D operator-() const
unary : return the matrix with all values multiplied by -1
Definition: Matrix.h:271
string name
name of the Matrix
Definition: Matrix.h:56
const Matrix1D operator-() const
Return the matrix with all values multiplied by -1.
Definition: Matrix.h:76
int size_q1
size x
Definition: Matrix.h:148
bool initialized
Flag, equal true if initialized.
Definition: Matrix.h:54
bool initialized
Flag, equal true if initialized.
Definition: Matrix.h:347
Matrix2D< T > & MatrixArray()
Return pointer to the instance of the class.
Definition: Matrix.h:166
string change_ind
Variables useful for changes tracking (store here time when changed)
Definition: Matrix.h:480
int size_q2
size y
Definition: Matrix.h:244
int total_size
total size of matrix
Definition: Matrix.h:478
T * operator[](int i)
Return the i-th pointer to 1d-array. Next [j] can be applied, so we have regular [i][j].
Definition: Matrix.h:162
bool initialized
Flag, equal true if initialized.
Definition: Matrix.h:242
map< int, Matrix1D< double > > DiagMatrix
Diagonals of matrix stored as map (diagonal number, 1d diagonal array)
Definition: Matrix.h:465
T & operator()(int q1, int q2)
Return the (x,y)-th value of matrix.
Definition: Matrix.h:164
string name
name of the Matrix
Definition: Matrix.h:246
T * operator[](int i) const
const function to return the i-th pointer to 1d-array. Next [j] can be applied, so we have regular [i...
Definition: Matrix.h:163
A matrix used primarily for diagonalized calculations.
Definition: Matrix.h:472
A matrix of 1 dimensions that is immutable.
Definition: Matrix.h:49
int size_q1
size x
Definition: Matrix.h:243
string change_ind
Variables useful for tracking of changes (time of change can be stored here)
Definition: Matrix.h:310
int index1d2(int x, int y=0, int z=0)
FUNCTION NOT IMPLEMENTED.
const Matrix2D & operator+() const
unary : return the matrix
Definition: Matrix.h:169
T & Value(int w, int x, int y, int z)
Return the (w,x,y,z) value of matrix.
Definition: Matrix.h:367
Matrix4D< T > & MatrixArray()
Return pointer to the instance of the class.
Definition: Matrix.h:368
Matrix1D< T > & MatrixArray()
Return pointer to the instance of the class.
Definition: Matrix.h:71
int size_q2
size_y
Definition: Matrix.h:149
Diagonals of matrix stored as map (diagonal number, 1d diagonal array)
int y_size
size in y direction of matrix
Definition: Matrix.h:477
T & Value(int q1, int q2, int q3)
Return the (x,y,z) value of matrix.
Definition: Matrix.h:261
int x_size
size in x direction of matrix
Definition: Matrix.h:476
const Matrix2D operator-() const
unary : return the matrix with all values multiplied by -1
Definition: Matrix.h:170
Matrix4D()
Default constructor. Do nothing.
Definition: Matrix.h:356
T * MatrixArrayPointer()
Return pointer to the instance of the class.
Definition: Matrix.h:72
int size_z
size z
Definition: Matrix.h:351
T * matrix_array
Array to keep the values.
Definition: Matrix.h:52
A matrix of 3 dimensions that is immutable.
Definition: Matrix.h:235
A matrix of 4 dimensions that is immutable.
Definition: Matrix.h:340
A matrix of 2 dimensions that is immutable.
Definition: Matrix.h:139
string change_ind
Variables useful for tracking of changes (time of change can be stored here)
Definition: Matrix.h:420
string name
name of the Matrix
Definition: Matrix.h:150
int size_x
size x
Definition: Matrix.h:349
const Matrix1D & operator+() const
Return the matrix.
Definition: Matrix.h:75
bool initialized
Variables used for denoting whether it is initialized or not.
Definition: Matrix.h:475
int size_y
size y
Definition: Matrix.h:350
string name
name of the Matrix
Definition: Matrix.h:352