Public Member Functions | |
MetricMatrix (Eigen::MatrixXd distanceMatrix) | |
const Eigen::MatrixXd & | access () const |
Nonmodifiable access to underlying matrix. More... | |
Eigen::MatrixXd | embed () const |
Embeds metric matrix into four dimensional space. More... | |
Eigen::MatrixXd | embedWithFullDiagonalization () const |
Implements embedding employing full diagonalization. More... | |
bool | operator== (const MetricMatrix &other) const |
Private Member Functions | |
void | constructFromTemporary_ (Eigen::MatrixXd &&distances) |
Private Attributes | |
Eigen::MatrixXd | matrix_ |
const Eigen::MatrixXd& Scine::Molassembler::DistanceGeometry::MetricMatrix::access | ( | ) | const |
Nonmodifiable access to underlying matrix.
Complexity \(\Theta(1)\)
Eigen::MatrixXd Scine::Molassembler::DistanceGeometry::MetricMatrix::embed | ( | ) | const |
Embeds metric matrix into four dimensional space.
Embeds itself into 4D space, returning a dynamically sized Matrix where every column vector is the coordinates of a particle.
Eigen::MatrixXd Scine::Molassembler::DistanceGeometry::MetricMatrix::embedWithFullDiagonalization | ( | ) | const |
Implements embedding employing full diagonalization.
Uses Eigen's SelfAdjointEigenSolver to fully diagonalize the matrix, calculating all eigenpairs. Then selects the necessary ones from the full set.
Complexity \(\Theta(9 N^3)\) for the eigenvalue decomposition per Eigen's documentation