The Parametric Pseudo-Manifold (PPS) Library 1.0
ludcmp.h
Go to the documentation of this file.
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