Molassembler  3.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MetricMatrix.h
Go to the documentation of this file.
1 
25 #ifndef INCLUDE_MOLASSEMBLER_DISTANCE_GEOMETRY_METRIC_MATRIX_H
26 #define INCLUDE_MOLASSEMBLER_DISTANCE_GEOMETRY_METRIC_MATRIX_H
27 
28 #include <Eigen/Core>
29 
31 
32 namespace Scine {
33 namespace Molassembler {
34 namespace DistanceGeometry {
35 
36 class MetricMatrix {
37 public:
38 /* Constructors */
39  MetricMatrix() = delete;
40  explicit MetricMatrix(Eigen::MatrixXd distanceMatrix);
41 
42 /* Information */
47  const Eigen::MatrixXd& access() const;
48 
58  Eigen::MatrixXd embed() const;
59 
71  Eigen::MatrixXd embedWithFullDiagonalization() const;
72 
73 /* Operators */
74  bool operator == (const MetricMatrix& other) const;
75 
76 private:
77 /* Underlying matrix representation */
78  Eigen::MatrixXd matrix_;
79 
80  void constructFromTemporary_(Eigen::MatrixXd&& distances);
81 };
82 
83 } // namespace DistanceGeometry
84 } // namespace Molassembler
85 } // namespace Scine
86 
87 #endif
Eigen::MatrixXd embedWithFullDiagonalization() const
Implements embedding employing full diagonalization.
const Eigen::MatrixXd & access() const
Nonmodifiable access to underlying matrix.
Data struct to store chiral constraints for DG.
Eigen::MatrixXd embed() const
Embeds metric matrix into four dimensional space.