00001 #ifndef __FUBandSMatrix_H__ 00002 #define __FUBandSMatrix_H__ 00003 00004 00025 #include <stdio.h> 00026 #include "FloatVector.hpp" 00027 00028 #include "FBandSMatrix.hpp" 00029 00030 class FUBandSMatrix : public FBandSMatrix 00031 { 00032 public: 00033 00034 FUBandSMatrix(int asize, int nband, int* iband, float val=0.0); 00035 FUBandSMatrix(int asize, int nband, int* iband, float* val); 00036 FUBandSMatrix(const FUBandSMatrix& m):FBandSMatrix(m){} 00037 FUBandSMatrix operator=(const FUBandSMatrix& m); 00038 virtual ~FUBandSMatrix(){} 00039 00040 virtual int numberOfL0Bands(){ return 0; } 00041 00042 FloatVector* getLvalues(int i){ return 0; } 00043 00044 // base 0 00045 virtual void set0(int i, int j, float value); 00046 virtual float get0(int i, int j); 00047 00048 virtual void setL0(int iband, int i, float value){} 00049 virtual float getL0(int iband, int i)const{ return 0.0; } 00050 00051 // base 1 00052 virtual void set(int i, int j, float value); 00053 virtual float get(int i, int j); 00054 00055 virtual void setL(int iband, int i, float value){} 00056 virtual float getL(int iband, int i)const{ return 0.0; } 00057 00058 // direct solvers 00059 virtual FloatVector* linearSolverL0(FloatVector* b, FloatVector* x=0){return 0;} // Ux=b 00060 virtual FloatVector* linearSolverL1(FloatVector* b, FloatVector* x=0){return 0;} // U1x=b 00061 }; 00062 00063 #endif 00064 00065 00066