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