Public Types | |
Member types | |
using | BoundsMatrix = Eigen::MatrixXd |
Public Member Functions | |
Special member functions | |
DistanceBoundsMatrix () | |
Initializes nothing. | |
DistanceBoundsMatrix (long unsigned N) | |
Initializes the matrix with defaultLower and defaultUpper. | |
DistanceBoundsMatrix (Eigen::MatrixXd matrix) | |
Sets the underlying matrix as the argument. | |
template<typename PrivateGraph > | |
DistanceBoundsMatrix (const PrivateGraph &inner, BoundsMatrix bounds) | |
Constructs a bounds matrix from a graph and a bounds matrix. More... | |
Modifiers | |
bool | setUpperBound (AtomIndex i, AtomIndex j, double newUpperBound) |
Smoothes the underlying matrix using smooth(Eigen::Ref<Eigen::MatrixXd>) | |
bool | setLowerBound (AtomIndex i, AtomIndex j, double newLowerBound) |
Smoothes the underlying matrix using smooth(Eigen::Ref<Eigen::MatrixXd>) | |
void | smooth () |
Smoothes the underlying matrix using smooth(Eigen::Ref<Eigen::MatrixXd>) | |
Information | |
double | upperBound (AtomIndex i, AtomIndex j) const |
Access to upper bound of unordered indices. More... | |
double | lowerBound (AtomIndex i, AtomIndex j) const |
Access to lower bound of unordered indices. More... | |
unsigned | boundInconsistencies () const |
Checks for cases in which the lower bound is greater than the upper bound. More... | |
const Eigen::MatrixXd & | access () const |
Nonmodifiable access to bounds matrix. More... | |
Result< Eigen::MatrixXd > | makeDistanceMatrix (Random::Engine &engine, Partiality partiality=Partiality::All) const noexcept |
Generate a distance matrix. More... | |
Eigen::MatrixXd | makeSquaredBoundsMatrix () const |
Squares all bounds and returns a new matrix. More... | |
unsigned | N () const |
Yields the number of particles. More... | |
Static Public Member Functions | |
Static member functions | |
static double & | lowerBound (Eigen::Ref< Eigen::MatrixXd > matrix, const AtomIndex i, const AtomIndex j) |
Uses Floyd's algorithm to smooth the matrix. More... | |
static double & | upperBound (Eigen::Ref< Eigen::MatrixXd > matrix, const AtomIndex i, const AtomIndex j) |
Uses Floyd's algorithm to smooth the matrix. More... | |
static void | smooth (Eigen::Ref< Eigen::MatrixXd > matrix) |
Uses Floyd's algorithm to smooth the matrix. More... | |
Static Public Attributes | |
static constexpr double | defaultLower = 0.0 |
static constexpr double | defaultUpper = 100.0 |
Private Member Functions | |
double & | lowerBound_ (const AtomIndex i, const AtomIndex j) |
double & | upperBound_ (const AtomIndex i, const AtomIndex j) |
Private Attributes | |
Eigen::MatrixXd | matrix_ |
|
inline |
Constructs a bounds matrix from a graph and a bounds matrix.
Replaces default lower bounds with the sum of the elements' vdw radii.
const Eigen::MatrixXd& Scine::Molassembler::DistanceGeometry::DistanceBoundsMatrix::access | ( | ) | const |
Nonmodifiable access to bounds matrix.
Complexity \(\Theta(1)\)
unsigned Scine::Molassembler::DistanceGeometry::DistanceBoundsMatrix::boundInconsistencies | ( | ) | const |
Checks for cases in which the lower bound is greater than the upper bound.
Complexity \(\Theta(N^2)\)
|
inlinestatic |
Uses Floyd's algorithm to smooth the matrix.
Complexity \(\Theta(N^3)\)
|
inline |
Access to lower bound of unordered indices.
Complexity \(\Theta(1)\)
|
noexcept |
Generate a distance matrix.
Generates a distance matrix from the contained bounds without altering underlying state.
Complexity \(O(N^5)\)
Eigen::MatrixXd Scine::Molassembler::DistanceGeometry::DistanceBoundsMatrix::makeSquaredBoundsMatrix | ( | ) | const |
Squares all bounds and returns a new matrix.
Complexity \(\Theta(N^2)\)
unsigned Scine::Molassembler::DistanceGeometry::DistanceBoundsMatrix::N | ( | ) | const |
Yields the number of particles.
Complexity \(\Theta(1)\)
|
static |
Uses Floyd's algorithm to smooth the matrix.
Complexity \(\Theta(N^3)\)
|
inlinestatic |
Uses Floyd's algorithm to smooth the matrix.
Complexity \(\Theta(N^3)\)
|
inline |
Access to upper bound of unordered indices.
Complexity \(\Theta(1)\)