kspaceFirstOrder3D-OMP
1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
|
00001 00034 #ifndef BASELONGMATRIXDATA_H 00035 #define BASELONGMATRIXDATA_H 00036 00037 00038 #include <MatrixClasses/BaseMatrix.h> 00039 00040 #include <Utils/DimensionSizes.h> 00041 00042 00043 using namespace std; 00044 00050 class TBaseLongMatrix : public TBaseMatrix{ 00051 public: 00053 TBaseLongMatrix(): TBaseMatrix(), pTotalElementCount(0), pTotalAllocatedElementCount(0), 00054 pDimensionSizes(), pDataRowSize(0), p2DDataSliceSize (0), pMatrixData (NULL) 00055 {}; 00056 00057 00059 inline struct TDimensionSizes GetDimensionSizes() const { 00060 return pDimensionSizes; 00061 } 00062 00064 virtual size_t GetTotalElementCount() const { 00065 return pTotalElementCount; 00066 }; 00067 00069 virtual size_t GetTotalAllocatedElementCount() const { 00070 return pTotalAllocatedElementCount; 00071 }; 00072 00074 virtual ~TBaseLongMatrix(){}; 00075 00076 00078 virtual void ZeroMatrix(); 00079 00081 virtual long* GetRawData() {return pMatrixData;} 00082 00083 protected: 00085 size_t pTotalElementCount; 00087 size_t pTotalAllocatedElementCount; 00088 00090 struct TDimensionSizes pDimensionSizes; 00091 00093 size_t pDataRowSize; 00095 size_t p2DDataSliceSize; 00096 00098 long* pMatrixData; 00099 00100 00102 virtual void AllocateMemory(); 00103 00105 virtual void FreeMemory() ; 00106 00108 TBaseLongMatrix(const TBaseLongMatrix& src); 00110 TBaseLongMatrix & operator =(const TBaseLongMatrix& src); 00111 00112 00113 private: 00114 00115 };// end of TBaseLongMatrix 00116 //------------------------------------------------------------------------------ 00117 00118 #endif /* TBASEINTDATA_H */ 00119