18 #include <boost/numeric/ublas/matrix.hpp>
19 #include <boost/numeric/ublas/vector.hpp>
20 #include <boost/numeric/ublas/operation.hpp>
35 template<
class ValueType>
39 typedef ublas::matrix<ValueType>
Matrix;
40 typedef ublas::vector<ValueType>
Vector;
59 using namespace ublas;
60 using namespace ublasTools;
62 assert( D.size1() == D.size2() );
65 for(
unsigned int i=0; i < D.size1(); ++i )
66 for(
unsigned int j=0; j < D.size2(); ++j )
67 D(i,j) = -0.5 * D(i,j)*D(i,j);
77 for(
unsigned int i=0; i < D.size1(); ++i )
78 for(
unsigned int j=0; j < i; ++j )
87 m_D = ublas::trans( cholesky.
getL() );
121 assert( (dim >= 1) && (dim <= (
int)m_D.size1()) );
126 for(
int i=0; i < dim; ++i )
127 for(
int j=0; j < dim; ++j )
128 S(i,j) = (i==j ? sqrt(m_realEV[i]) : 0.0);
130 m_D.resize( m_D.size1(), dim );
132 m_D = prod( m_D, S );
139 m_D.resize( m_D.size1(), dim );
141 m_realEV.resize( dim );
144 for(
int i=0; i < dim; ++i )
151 for(
int i=0; i < dim; ++i )
152 for(
int j=0; j < dim; ++j )
153 S(i,j) = (i==j ? sqrt(m_realEV[i]) : 0.0);
155 m_D = prod( m_D, S );
160 m_D.resize( dim, m_D.size2() );
161 m_D = ublas::trans( m_D );
171 #endif // REDUKT_CMDS_H
Definition: Cholesky.h:45
const Vector & getEigenvalues() const
Definition: CMDS.h:116
const Matrix & getV() const
Definition: Eigenvalue.h:150
const Vector & getEigenvector(unsigned int i) const
Definition: Lanczos.h:131
Definition: Eigenvalue.h:60
if IETL is not available MethodCholesky is used instead
Definition: CMDS.h:47
ublas::vector< ValueType > Vector
Definition: CMDS.h:40
ublas::matrix< ValueType > Matrix
Definition: CMDS.h:39
Classical Multidimensional Scaling (suited for small instances)
Definition: CMDS.h:36
complete eigendecomposition (infeasible for lager instances)
Definition: CMDS.h:44
double getEigenvalue(unsigned int i) const
Definition: Lanczos.h:137
CMDS(Matrix &D, int method=(int) MethodQR)
Perform classical multidimensional scaling.
Definition: CMDS.h:57
const Vector & getRealEigenvalues() const
Definition: Eigenvalue.h:158
void project(int dim=2)
Project referenced matrix D to dim dimensions.
Definition: CMDS.h:119
default method
Definition: CMDS.h:45
Compute k greatest eigenvectors of a Matrix.
Definition: Lanczos.h:29
DecompositionMethod
Definition: CMDS.h:42
Matrix getL() const
Definition: Cholesky.h:61