Molassembler  1.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 
34 namespace Molassembler {
35 
36 namespace DistanceGeometry {
37 
38 class MetricMatrix {
39 public:
40 /* Constructors */
41  MetricMatrix() = delete;
42  explicit MetricMatrix(Eigen::MatrixXd distanceMatrix);
43 
44 /* Information */
49  const Eigen::MatrixXd& access() const;
50 
60  Eigen::MatrixXd embed() const;
61 
73  Eigen::MatrixXd embedWithFullDiagonalization() const;
74 
75 /* Operators */
76  bool operator == (const MetricMatrix& other) const;
77 
78 private:
79 /* Underlying matrix representation */
80  Eigen::MatrixXd matrix_;
81 
82  void constructFromTemporary_(Eigen::MatrixXd&& distances);
83 };
84 
85 } // namespace DistanceGeometry
86 
87 } // namespace Molassembler
88 
89 } // namespace Scine
90 
91 #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.