42 #ifndef EIGEN_USE_NEW_STDVECTOR 43 #define EIGEN_USE_NEW_STDVECTOR 44 #endif // EIGEN_USE_NEW_STDVECTOR 49 #include <Eigen/Geometry> 51 #include <Eigen/StdVector> 67 #include "SparseLib/compcol_double.h" 68 #include "SparseLib/mvblasd.h" 69 #include "SparseLib/icpre_double.h" 70 #include "SparseLib/cg.h" 76 using namespace Eigen;
83 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
92 vector< Matrix<double,3,3>, aligned_allocator<Matrix<double,3,3> > >
diag;
94 vector< map<int,Matrix<double,3,3>, less<int>,
95 aligned_allocator<Matrix<double,3,3> > > >
cols;
97 void setupBlockStructure(
int n,
bool eraseit =
true);
102 void addOffdiagBlock(Matrix<double,3,3> &m,
int ii,
int jj);
103 void incDiagBlocks(
double lam);
107 void setupCSstructure(
double diaginc,
bool init=
false);
110 void uncompress(MatrixXd &m);
130 int doPCG(
int iters);
143 cholmod_common Common;
vector< Matrix< double, 3, 3 >, aligned_allocator< Matrix< double, 3, 3 > > > diag
vector< map< int, Matrix< double, 3, 3 >, less< int >, aligned_allocator< Matrix< double, 3, 3 > > > > cols
void addDiagBlock(Matrix< double, 3, 3 > &m, int n)