00001 #ifndef DENSESYMSOLVER 00002 #define DENSESYMSOLVER 00003 00013 #include "LinearSymSolver.hh" 00014 #include "SimpleArrayData.hh" 00015 #include "DenseSymMatrix.hh" 00016 00022 class DenseSymSolver : public LinearSymSolver { 00023 protected: 00025 SimpleArrayDataHandle mFactorization; 00028 DenseSymMatrixHandle mMat; 00030 int mSize; 00032 int * ipiv; 00033 int mSingular; 00034 public: 00035 DenseSymSolver( DenseSymMatrix * Mat ); 00036 ~DenseSymSolver(); 00037 // Specializes LinearSolver::solve 00038 virtual void solve( IotrVector & b ); 00039 // Specializes LinearSolver::matrixChanged 00040 virtual void matrixChanged(); 00041 virtual void inspect(); 00042 virtual void inertia( int & npos, int & nneg, int & nzero ) const; 00043 00044 virtual int isSingular() const; 00045 }; 00046 00047 typedef Handle<DenseSymSolver> DenseSymSolverHandle; 00048 00049 #endif