00001 #ifndef __FLBandSMatrix_H__ 00002 #define __FLBandSMatrix_H__ 00003 00004 00025 #include <stdio.h> 00026 #include "FloatVector.hpp" 00027 00028 #include "FBandSMatrix.hpp" 00029 00030 class FLBandSMatrix : public FBandSMatrix 00031 { 00032 public: 00033 00034 FLBandSMatrix(int asize, int nband, int* iband, float val=0.0); 00035 FLBandSMatrix(int asize, int nband, int* iband, float* val); 00036 FLBandSMatrix(const FLBandSMatrix& m):FBandSMatrix(m){} 00037 FLBandSMatrix operator=(const FLBandSMatrix& m); 00038 virtual ~FLBandSMatrix(){} 00039 00040 virtual int numberOfU0Bands(){ return 0; } 00041 00042 FloatVector* getUvalues(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 setU0(int iband, int i, float value){} 00049 virtual float getU0(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 setU(int iband, int i, float value){} 00056 virtual float getU(int iband, int i)const{ return 0.0; } 00057 00058 // direct solvers 00059 virtual FloatVector* linearSolverU0(FloatVector* b, FloatVector* x=0){return 0;} // Ux=b 00060 virtual FloatVector* linearSolverU1(FloatVector* b, FloatVector* x=0){return 0;} // U1x=b 00061 }; 00062 00063 #endif 00064 00065 00066