VERB4D
Matrix.h
Go to the documentation of this file.
1 
12 #ifndef matrix_array_MATRIX_H
13 #define matrix_array_MATRIX_H
14 
15 #include <assert.h>
16 #include <string>
17 #include <string.h>
18 #include <fstream>
19 #include <memory.h>
20 #include <math.h>
21 #include <map>
22 #include <stdlib.h>
23 #include <iostream>
24 #include <sstream>
25 
26 // Matlab library which will have to be linked at compile time
27 // Usually found in matlabroot/extern/include where matlabroot is the result of typing the matlabroot command into matlab
28 // Used for reading/writing functions for .mat files
29 #if (MATLAB_CAPABLE)
30 #include <mat.h>
31 #endif
32 
33 // Stupid hook to make it works in Visual Studio with Maltab 2013-2015 libs
34 //#define printf printf
35 
36 // Another way is to not include mex.h into the matrix.h
37 //#include <mex.h>
38 
39 using namespace std;
40 
48 template <typename T>
49 class Matrix1D {
50 public:
51 
53 
54  bool initialized;
55  int size_q1;
56  string name;
57 
58  // constructors and destructors
59  Matrix1D() { initialized = false; };
60  Matrix1D( int size_q1 , string name = "f");
61  Matrix1D( const Matrix1D<T> &M );
62  ~Matrix1D();
63 
64  virtual void AllocateMemory( int size_q1 );
65 
66  // Operators
67  T& operator[](int i);
68  T& operator[](int i) const;
69  T& operator()(int q1);
70  T& Value (int q1) { return operator()(q1); }
71  Matrix1D<T>& MatrixArray () { return *this; }
72  T* MatrixArrayPointer () { return matrix_array; }
73 
74  // unary
75  const Matrix1D& operator+() const { return *this; }
76  const Matrix1D operator-() const { return ((*this)*(-1)); }
77 
78  // The following operators modify the matrix they applied to
79  Matrix1D& operator= (const Matrix1D<T> &M);
80  Matrix1D& operator= (const T val);
81 
82  // \todo Some of the matrix operators still need to be implimented
83  // I didn't have time yet to write these functions - these are matrix opearations
84  //Matrix1D& operator*= (const Matrix1D<T> &M); // reserved for something good
85  //Matrix1D& operator/= (const Matrix1D<T> &M); // reserved for something good
86  Matrix1D& operator+= (const Matrix1D<T> &M);
87  Matrix1D& operator-= (const Matrix1D<T> &M);
88  Matrix1D& operator*= (const T Val);
89  Matrix1D& operator/= (const T Val);
90  Matrix1D& operator+= (const T Val);
91  Matrix1D& operator-= (const T Val);
92 
93  //Matrix1D& times_equal (const Matrix1D<T> &M); ///< Arraywise multiplication (A.*B), stores result in the matrix it's applied to
94  //Matrix1D& divide_equal (const Matrix1D<T> &M); ///< Arraywise division (A./B), stores result in the matrix it's applied to
95 
96  // The following operators save the result to a new matrix
97  //Matrix1D operator* (const Matrix1D<T> &M) const; // reserved for something good
98  //Matrix1D operator/ (const Matrix1D<T> &M) const; // reserved for something good
99  //Matrix1D operator+ (const Matrix1D<T> &M) const;
100  //Matrix1D operator- (const Matrix1D<T> &M) const;
101  Matrix1D operator* (const T Val) const;
102  Matrix1D operator/ (const T Val) const;
103  //Matrix1D operator+ (const T Val) const; ///< Add the Val to each matrix element, stores result in a new matrix
104  //Matrix1D operator- (const T Val) const; ///< Substract the Val from each matrix element, stores result in a new matrix
105 
106  Matrix1D times (const Matrix1D<T> &M) const;
107  Matrix1D divide (const Matrix1D<T> &M) const;
108 
109  T dot (const Matrix1D<T> &M) const;
110  T norm () const;
111 
112  //T max();
113  //T maxabs();
114 
115  // writeToFileting
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);
120 
121  //ADDED
122  virtual void readFromMatlabFile(string filename, int columnNumber = 1);
123  virtual void readFromMatlabFile(string filename, const Matrix1D<T> grid_q1);
124 
125  T min();
126  T max();
127  T maxabs();
128  Matrix1D<T> abs();
129 
130 };
131 
139 template <typename T> class Matrix2D {
140 private:
143  T **matrix_array;
144 public:
145  // const static int N_of_dimentions2 = 2; ///< Not used anywhere
146 
147  bool initialized;
148  int size_q1;
149  int size_q2;
150  string name;
151 
152  // Constructors and destructors
153  Matrix2D() { initialized = false; };
154  Matrix2D( const Matrix2D<T> &M );
155  Matrix2D( int size_q1, int size_q2 );
156  ~Matrix2D();
157 
158  virtual void AllocateMemory(int size_q1, int size_q2);
159 
160  // Operators
161 
162  T* operator[](int i) { return matrix_array[i]; }
163  T* operator[](int i) const { return matrix_array[i]; }
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); }
166  Matrix2D<T>& MatrixArray () { return *this; }
167 
168  // unary
169  const Matrix2D& operator+() const { return *this; }
170  const Matrix2D operator-() const { return ((*this)*(-1)); }
171 
172  // The following operators modify the matrix they applied to
173  Matrix2D& operator= (const Matrix2D<T> &M);
174  Matrix2D& operator= (const T val);
175 
176  //Matrix2D& operator*= (const Matrix2D<T> &M); // reserved for something good
177  //Matrix2D& operator/= (const Matrix2D<T> &M); // reserved for something good
178  Matrix2D& operator+= (const Matrix2D<T> &M);
179  Matrix2D& operator-= (const Matrix2D<T> &M);
180  Matrix2D& operator*= (const T Val);
181  //Matrix2D& operator/= (const T Val);
182  //Matrix2D& operator+= (const T Val); ///< Add the Val to each matrix element, stores result in the matrix it's applied to
183  //Matrix2D& operator-= (const T Val); ///< Substract the Val from each matrix element, stores result in the matrix it's applied to
184 
185  //Matrix2D& times_equal (const Matrix2D<T> &M); ///< Arraywise multiplication (A.*B), stores result in the matrix it's applied to
186  //Matrix2D& divide_equal (const Matrix2D<T> &M); ///< Arraywise division (A./B), stores result in the matrix it's applied to
187 
188  // The following operators save the result to a new matrix
189  //Matrix2D operator* (const Matrix2D<T> &M) const; // Matrix multiplication
190  //Matrix2D operator/ (const Matrix2D<T> &M) const; // reserved for something good
191  //Matrix2D operator+ (const Matrix2D<T> &M) const;
192  //Matrix2D operator- (const Matrix2D<T> &M) const;
193  Matrix2D operator* (const T Val) const;
194  Matrix2D operator/ (const T Val) const;
195  //Matrix2D operator+ (const T Val) const; ///< Add the Val to each matrix element, stores result in a new matrix
196  //Matrix2D operator- (const T Val) const; ///< Substract the Val from each matrix element, stores result in a new matrix
197 
198  Matrix2D times (const Matrix2D<T> &M) const;
199  Matrix2D divide (const Matrix2D<T> &M) const;
200 
201  // Return corresponding index of 1d array
202  int index1d(int q1, int q2) const;
203 
204  T max();
205  T maxabs();
206  T min();
207  Matrix2D<T> abs();
208  // It returns maximum between values from class psd2DSlice and argument (VC::zero_f in that case)
209  Matrix2D max_of(T val);
210 
211  // writeToFileting
212  virtual void writeToFile(string filename);
213  virtual void writeToFile(string filename, Matrix2D<T> &grid_q1, Matrix2D<T> &grid_q2);
214  virtual void readFromFile(string filename, int column = 1);
215  virtual void readFromFile(string filename, const Matrix2D<T> grid_q1, const Matrix2D<T> grid_q2);
216 
217  //ADDED
218  virtual void readFromMatlabFile(string filename, int column = 1);
219  virtual void readFromMatlabFile(string filename, const Matrix2D<T> grid_q1, const Matrix2D<T> grid_q2);
220 
221  // slices - get 1D slice from 2D array
222  Matrix1D<T> xSlice(int p_q1) const;
223  Matrix1D<T> ySlice(int p_q2) const;
224 
225 };
226 
234 template <typename T>
235 class Matrix3D {
236 private:
238  T *plane_array;
240  T ***matrix_array;
241 public:
242  bool initialized;
243  int size_q1;
244  int size_q2;
245  int size_q3;
246  string name;
247 
248  // constructors and destructors
250  Matrix3D() { initialized = false; };
251  Matrix3D( const Matrix3D<T> &M );
252  Matrix3D( int size_q1, int size_q2, int size_q3 );
253  ~Matrix3D();
254 
255  virtual void AllocateMemory(int size_q1, int size_q2, int size_q3);
256 
257  // Operators
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); }
262  Matrix3D<T>& MatrixArray () { return *this; }
263 
264  // The following operators modify the matrix they applied to
265  Matrix3D& operator= (const Matrix3D<T> &M);
266 // Matrix3D& operator= (const Matrix2D<T> &M); // confusing function
267  Matrix3D& operator= (const T Val);
268 
269  // unary
270  const Matrix3D& operator+() const { return *this; }
271  const Matrix3D operator-() const { return ((*this)*(-1)); }
272 
273 
274  //Matrix3D& operator*= (const Matrix3D<T> &M); // reserved for something good
275  //Matrix3D& operator/= (const Matrix3D<T> &M); // reserved for something good
276  Matrix3D& operator+= (const Matrix3D<T> &M);
277  Matrix3D& operator-= (const Matrix3D<T> &M);
278  Matrix3D& operator*= (const T Val);
279  Matrix3D& operator/= (const T Val);
280  Matrix3D& operator+= (const T Val);
281  Matrix3D& operator-= (const T Val);
282 
283  Matrix3D& times_equal (const Matrix3D<T> &M);
284  Matrix3D& divide_equal (const Matrix3D<T> &M);
285 
286  // The following operators save the result to a new matrix
287  //Matrix3D operator* (const Matrix3D<T> &M) const; // reserved for something good
288  //Matrix3D operator/ (const Matrix3D<T> &M) const; // reserved for something good
289  Matrix3D operator+ (const Matrix3D<T> &M) const;
290  Matrix3D operator- (const Matrix3D<T> &M) const;
291  Matrix3D operator* (const T Val) const;
292  Matrix3D operator/ (const T Val) const;
293  //Matrix3D operator+ (const T Val) const; ///< Add the Val to each matrix element, stores result in a new matrix
294  //Matrix3D operator- (const T Val) const; ///< Substract the Val from each matrix element, stores result in a new matrix
295 
296  Matrix3D times (const Matrix3D<T> &M) const;
297  Matrix3D divide (const Matrix3D<T> &M) const;
298 
299  // Saving (loading) of a matrix into (from) file
300  virtual void writeToFile(string filename, string info = "");
301  virtual void writeToFile(string filename, Matrix3D<T> &grid_q1, Matrix3D<T> &grid_q2, Matrix3D<T> &grid_q3);
302  virtual void readFromFile(string filename, int column = 1);
303  virtual void readFromFile(string filename, const Matrix3D<T> grid_q1, const Matrix3D<T> grid_q2, const Matrix3D<T> grid_q3);
304 
305  // ADDED
306  virtual void readFromMatlabFile(string filename, int column = 1);
307  virtual void readFromMatlabFile(string filename, const Matrix3D<T> grid_q1, const Matrix3D<T> grid_q2, const Matrix3D<T> grid_q3);
308 
309  // Some other stuff
310  string change_ind;
311 
312  int index1d(int q1, int q2, int q3);
313 
314  T min();
315  T max();
316  T maxabs();
317  Matrix3D<T> abs();
318 
319  // slices - get 2D slice from 3D array
320  Matrix2D<T> xSlice(int p_q1) const;
321  Matrix2D<T> ySlice(int p_q2) const;
322  Matrix2D<T> zSlice(int p_q3) const;
323 
324  // slices - get 1D slice from 3D array
325  Matrix1D<T> xySlice(int p_i1, int p_i2) const;
326  Matrix1D<T> yzSlice(int p_i2, int p_i3) const;
327  Matrix1D<T> xzSlice(int p_i1, int p_i3) const;
328 
329 
330 };
331 
332 
340 template <typename T> class Matrix4D {
341 private:
343  T *plane_array;
345  T ****matrix_array;
346 public:
347  bool initialized;
348  int size_w;
349  int size_x;
350  int size_y;
351  int size_z;
352  string name;
353 
354  // constructors and destructors
356  Matrix4D() { initialized = false; };
357  Matrix4D( const Matrix4D<T> &M );
358  Matrix4D( int size_w, int size_x, int size_y, int size_z );
359  ~Matrix4D();
360 
361  virtual void AllocateMemory(int size_w, int size_x, int size_y, int size_z);
362 
363  // Operators
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); }
368  Matrix4D<T>& MatrixArray () { return *this; }
369 
370  // The following operators modify the matrix they applied to
371  Matrix4D& operator= (const Matrix4D<T> &M);
372  Matrix4D& operator= (const T Val);
373 
374  // unary
375  const Matrix4D& operator+() const { return *this;}
376  const Matrix4D operator-() const { return ((*this)*(-1)); }
377 
378  //Matrix4D& operator*= (const Matrix4D<T> &M); // reserved for something good
379  //Matrix4D& operator/= (const Matrix4D<T> &M); // reserved for something good
380  Matrix4D& operator+= (const Matrix4D<T> &M);
381  Matrix4D& operator-= (const Matrix4D<T> &M);
382  Matrix4D& operator*= (const T Val);
383  Matrix4D& operator/= (const T Val);
384  Matrix4D& operator+= (const T Val);
385  Matrix4D& operator-= (const T Val);
386 
387  Matrix4D& times_equal (const Matrix4D<T> &M);
388  Matrix4D& divide_equal (const Matrix4D<T> &M);
389 
390  // The following operators save the result to a new matrix
391  //Matrix4D operator* (const Matrix4D<T> &M) const; // reserved for something good
392  //Matrix4D operator/ (const Matrix4D<T> &M) const; // reserved for something good
393  Matrix4D operator+ (const Matrix4D<T> &M) const;
394  Matrix4D operator- (const Matrix4D<T> &M) const;
395  Matrix4D operator* (const T Val) const;
396  Matrix4D operator/ (const T Val) const;
397  //Matrix4D operator+ (const T Val) const; ///< Add the Val to each matrix element, stores result in a new matrix
398  //Matrix4D operator- (const T Val) const; ///< Substract the Val from each matrix element, stores result in a new matrix
399 
400  Matrix4D times (const Matrix4D<T> &M) const;
401  Matrix4D divide (const Matrix4D<T> &M) const;
402 
403  // Saving (loading) of a matrix into (from) file
404  virtual void writeToFile(string filename, string info = "");
405  virtual void writeToFile(string filename, Matrix4D<T> &grid_w, Matrix4D<T> &grid_x, Matrix4D<T> &grid_y, Matrix4D<T> &grid_z);
406  virtual void readFromFile(string filename, int column = 1);
407  virtual void readFromFile(string filename, const Matrix4D<T> grid_w, const Matrix4D<T> grid_x, const Matrix4D<T> grid_y, const Matrix4D<T> grid_z);
408 
409  // ADDED
410 #if (MATLAB_CAPABLE)
411  virtual mxArray* createStructMatrix(string filename, string info = "");
412 #endif
413 
414  virtual void writeToMatlabFile(string filename, string info = "");
415  virtual void writeToMatlabFile(string filename, Matrix4D<T> &grid_w, Matrix4D<T> &grid_x, Matrix4D<T> &grid_y, Matrix4D<T> &grid_z);
416  virtual void readFromMatlabFile(string file, int column = 1);
417  virtual void readFromMatlabFile(string filename, const Matrix4D<T> grid_w, const Matrix4D<T> grid_x, const Matrix4D<T> grid_y, const Matrix4D<T> grid_z);
418 
419  // Some other stuff
420  string change_ind;
421 
422  int index1d(int w, int x, int y, int z);
423 
424  T min();
425  T max();
426  T maxabs();
427  Matrix4D<T> abs();
428 
429  // slices - get 3D slice from 4D array
430  Matrix3D<T> wSlice(int p_w) const;
431  Matrix3D<T> xSlice(int p_x) const;
432  Matrix3D<T> ySlice(int p_y) const;
433  Matrix3D<T> zSlice(int p_z) const;
434 
435  // slices - get 2D slice from 4D array
436  Matrix2D<T> wxSlice(int p_w, int p_x) const;
437  Matrix2D<T> wySlice(int p_w, int p_y) const;
438  Matrix2D<T> wzSlice(int p_w, int p_z) const;
439  Matrix2D<T> xySlice(int p_x, int p_y) const;
440  Matrix2D<T> xzSlice(int p_x, int p_z) const;
441  Matrix2D<T> yzSlice(int p_y, int p_z) const;
442 
443  // slices - get 1D slice from 4D array
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;
448 };
449 
450 
465 typedef map <int , Matrix1D<double> > DiagMatrix;
466 
473 public:
474 
475  bool initialized;
476  int x_size;
477  int y_size;
479  // flag, if needs to be recalculated
480  string change_ind;
481 
482  // Constructors
483  CalculationMatrix() { this->initialized = false; }
484  // !!! CalculationMatrix(int x_size, int y_size = 0, int z_size = 0, int n_of_diags = 1);
485  CalculationMatrix(int x_size, int y_size = 1, int z_size = 1, int n_of_diags = 1);
486 
487  // Initialization
488  // !!! void Initialize(int x_size, int y_size = 0, int z_size = 0, int n_of_diags = 1);
489  void Initialize(int x_size, int y_size = 1, int z_size = 1, int n_of_diags = 1);
490 
491  // Returns 1d index for multiple dimension array (2D or 3D)
492  int index1d(int x, int y = 0, int z = 0);
493 
494  // Save to a file
495  void writeToFile(string filename);
496 
497  // Operators
499  Matrix1D<double> operator* (Matrix1D<double> &V) const;
500 
501 };
502 
504 int index1d2(int x, int y = 0, int z = 0);
505 
506 #endif
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