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;