00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _CJMATRIXIMPL_H_
00021 #define _CJMATRIXIMPL_H_ 1
00022
00023 template <typename> class CjMatrix;
00024
00025 template <typename T> class CjMatrixImpl {
00026
00027 public:
00028
00029 virtual CjMatrixImpl * clone() const = 0;
00030
00031 virtual void resize_with_copyImpl(const unsigned int width, const unsigned int height, const CjMatrix<T> * const cjm = 0) = 0;
00032 virtual void setColumnValuesImpl(const unsigned int col, const T & val) = 0;
00033 virtual void setRowValuesImpl(const unsigned int row, const T & val) = 0;
00034 virtual void setAllValuesImpl(const T & val) = 0;
00035 virtual void setDiagonalImpl(const T & val) = 0;
00036 virtual void setDefaultValueImpl(const T & val) = 0;
00037 virtual T getDefaultValueImpl() const = 0;
00038 virtual bool getDefaultValueSetImpl() const = 0;
00039 virtual bool equalElements(const CjMatrix<T> &) const = 0;
00040 virtual void transposeImpl() = 0;
00041 virtual bool isSymmetricImpl() const = 0;
00042 virtual unsigned int getWidthImpl() const = 0;
00043 virtual unsigned int getHeightImpl() const = 0;
00044 virtual T & atImpl(unsigned int row, unsigned int col) = 0;
00045 virtual const T & atImpl(unsigned int row, unsigned int col) const = 0;
00046 virtual T & getImpl(unsigned int row, unsigned int col) = 0;
00047 virtual const T & getImpl(unsigned int row, unsigned int col) const = 0;
00048
00049 };
00050
00051 #endif // _CJMATRIXIMPL_H_
00052