use row major everywhere with Eigen

This commit is contained in:
nojhan 2012-07-09 22:58:55 +02:00
commit f8bae61095
6 changed files with 21 additions and 11 deletions

View file

@ -163,8 +163,10 @@ public:
{ {
public: public:
typedef typename EOT::AtomType AtomType; typedef typename EOT::AtomType AtomType;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, 1> Vector; // typedef typename edoNormalMulti<AtomType>::Vector Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic> Matrix; // typedef typename edoNormalMulti<AtomType>::Matrix Matrix;
typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
CovMatrix( const eoPop< EOT >& pop ) CovMatrix( const eoPop< EOT >& pop )
{ {

View file

@ -83,8 +83,8 @@ class edoNormalMulti : public edoDistrib< EOT >
{ {
public: public:
typedef typename EOT::AtomType AtomType; typedef typename EOT::AtomType AtomType;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, 1> Vector; // Note: by default, Eigen is column-major typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic> Matrix; typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
edoNormalMulti( edoNormalMulti(
const Vector & mean, const Vector & mean,

View file

@ -57,11 +57,13 @@ class edoNormalMultiCenter : public edoModifierMass< edoNormalMulti< EOT > >
{ {
public: public:
typedef typename EOT::AtomType AtomType; typedef typename EOT::AtomType AtomType;
// typedef typename edoNormalMulti<AtomType>::Vector Vector;
typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
void operator() ( edoNormalMulti< EOT >& distrib, EOT& mass ) void operator() ( edoNormalMulti< EOT >& distrib, EOT& mass )
{ {
assert( distrib.size() == mass.innerSize() ); assert( distrib.size() == mass.innerSize() );
Eigen::Matrix< AtomType, Eigen::Dynamic, 1 > mean( mass ); Vector mean( mass );
distrib.mean() = mean; distrib.mean() = mean;
} }
}; };

View file

@ -96,8 +96,10 @@ class edoSamplerNormalMulti : public edoSampler< EOD >
{ {
public: public:
typedef typename EOT::AtomType AtomType; typedef typename EOT::AtomType AtomType;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, 1> Vector; // typedef typename edoNormalMulti<AtomType>::Vector Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic> Matrix; // typedef typename edoNormalMulti<AtomType>::Matrix Matrix;
typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
edoSamplerNormalMulti( edoRepairer<EOT> & repairer ) edoSamplerNormalMulti( edoRepairer<EOT> & repairer )
: edoSampler< EOD >( repairer) : edoSampler< EOD >( repairer)

View file

@ -48,8 +48,10 @@ typedef EOT::AtomType AtomType;
#else #else
#ifdef WITH_EIGEN #ifdef WITH_EIGEN
#include <Eigen/Dense> #include <Eigen/Dense>
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, 1> Vector; // typedef typename edoNormalMulti<AtomType>::Vector Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic> Matrix; // typedef typename edoNormalMulti<AtomType>::Matrix Matrix;
typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
#endif #endif
#endif #endif

View file

@ -53,8 +53,10 @@ typedef EOT::AtomType AtomType;
#else #else
#ifdef WITH_EIGEN #ifdef WITH_EIGEN
#include <Eigen/Dense> #include <Eigen/Dense>
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, 1> Vector; // typedef typename edoNormalMulti<AtomType>::Vector Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic> Matrix; // typedef typename edoNormalMulti<AtomType>::Matrix Matrix;
typedef Eigen::Matrix< AtomType, 1, Eigen::Dynamic, Eigen::RowMajor> Vector;
typedef Eigen::Matrix< AtomType, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> Matrix;
#endif #endif
#endif #endif