The Parametric Pseudo-Manifold (PPS) Library 1.0
|
00001 00032 #ifndef LUDCMP_H 00033 #define LUDCMP_H 00034 00035 #include <vector> // std::vector 00036 00037 00052 namespace pps { 00053 00054 00062 class LUdcmp { 00063 public: 00064 // --------------------------------------------------------------- 00065 // 00066 // Public methods 00067 // 00068 // --------------------------------------------------------------- 00069 00079 LUdcmp( double** mat , unsigned n ) ; 00080 00081 00090 LUdcmp(const LUdcmp& lu ) ; 00091 00092 00099 ~LUdcmp() ; 00100 00101 00110 void solve( double* b , unsigned n ) const; 00111 00112 00113 private: 00114 // --------------------------------------------------------------- 00115 // 00116 // Private methods 00117 // 00118 // --------------------------------------------------------------- 00119 00129 double** allocate( unsigned n ) const ; 00130 00131 00140 void deallocate( double** mat , unsigned n ) const ; 00141 00142 00150 void decomp() ; 00151 00152 00153 // --------------------------------------------------------------- 00154 // 00155 // Private data members 00156 // 00157 // --------------------------------------------------------------- 00158 00159 double** _matA; 00160 00161 unsigned _nele; 00162 00163 std::vector<unsigned> _perm; 00164 00165 int _sign; 00166 00167 } ; 00168 00169 } 00170 //end of group class. 00172 00173 #endif // LUDCMP_H