kspaceFirstOrder3D-OMP  1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
MatrixClasses/LongMatrix.h
Go to the documentation of this file.
00001 
00031 #ifndef LONGMATRIXDATA_H
00032 #define  LONGMATRIXDATA_H
00033 
00034 
00035 #include <MatrixClasses/BaseLongMatrix.h>
00036 
00037 #include <Utils/DimensionSizes.h>
00038 
00043 class TLongMatrix : public TBaseLongMatrix{
00044 public:
00045     
00047     TLongMatrix(struct TDimensionSizes DimensionSizes);
00048     
00050     virtual ~TLongMatrix() { FreeMemory(); };
00051      
00053     virtual void ReadDataFromHDF5File(THDF5_File & HDF5_File, const char * MatrixName);
00055     virtual void WriteDataToHDF5File(THDF5_File & HDF5_File, const char * MatrixName, const int CompressionLevel);
00056     
00062     long& operator [](const size_t& index) {
00063         return pMatrixData[index]; 
00064     };
00065     
00066     
00074     inline long&  GetElementFrom3D(const size_t X, const size_t Y, const size_t Z){
00075         return pMatrixData[Z * p2DDataSliceSize + Y * pDataRowSize +  X];
00076     };
00077     
00078     
00079     
00081     void RecomputeIndices();
00082     
00083     
00084     
00085 protected:
00087     TLongMatrix()  : TBaseLongMatrix() {};
00088     
00090     TLongMatrix(const TLongMatrix& src);
00091 
00093     TLongMatrix& operator = (const TLongMatrix& src);
00094     
00095 private:
00096 
00097     
00098 };// end of TLongMatrixData
00099 //------------------------------------------------------------------------------
00100 #endif   /* LONGMATRIXDATA_H */
00101 
 All Classes Files Functions Variables Typedefs Enumerations