this is a class which is needed to share information across the various non-threadsafe routines so that the public function of rmsd are threadsafe while the inner core can safely share information More...
#include <RMSD.h>
Public Member Functions | |
RMSDCoreData (const std::vector< double > &a, const std::vector< double > &d, const std::vector< Vector > &p, const std::vector< Vector > &r) | |
RMSDCoreData (const std::vector< double > &a, const std::vector< double > &d, const std::vector< Vector > &p, const std::vector< Vector > &r, Vector &cp, Vector &cr) | |
the constructor (note: only references are passed, therefore is rather fast) note: this aligns the reference onto the positions More... | |
void | calcPositionsCenter () |
void | calcReferenceCenter () |
void | doCoreCalc (bool safe, bool alEqDis, bool only_rotation=false) |
This calculates the elements needed by the quaternion to calculate everything that is needed additional calls retrieve different components note that this considers that the centers of both reference and positions are already setted but automatically should properly account for non removed components: if not removed then it removes prior to calculation of the alignment. More... | |
void | doCoreCalcWithCloseStructure (bool safe, bool alEqDis, const Tensor &rotationPosClose, const Tensor &rotationRefClose, std::array< std::array< Tensor, 3 >, 3 > &drotationPosCloseDrr01) |
std::vector< Vector > | getAlignedPositionsToReference () |
std::vector< Vector > | getAlignedReferenceToPositions () |
std::vector< Vector > | getCenteredPositions () |
std::vector< Vector > | getCenteredReference () |
std::vector< Vector > | getDDistanceDPositions () |
std::vector< Vector > | getDDistanceDReference () |
std::vector< Vector > | getDDistanceDReferenceSOMA () |
this version does not calculate the derivative of rotation matrix as needed for SOMA More... | |
double | getDistance (bool squared) |
just retrieve the distance already calculated More... | |
Matrix< std::vector< Vector > > | getDRotationDPositions (bool inverseTransform=false) |
Matrix< std::vector< Vector > > | getDRotationDReference (bool inverseTransform=false) |
const std::array< std::array< Tensor, 3 >, 3 > & | getDRotationDRr01 () const |
Vector | getPositionsCenter () |
bool | getPositionsCenterIsRemoved () |
Vector | getReferenceCenter () |
bool | getReferenceCenterIsRemoved () |
Tensor | getRotationMatrixPositionsToReference () |
Tensor | getRotationMatrixReferenceToPositions () |
void | setPositionsCenter (Vector v) |
void | setPositionsCenterIsRemoved (bool t) |
void | setReferenceCenter (Vector v) |
void | setReferenceCenterIsRemoved (bool t) |
Private Attributes | |
bool | alEqDis |
const std::vector< double > & | align |
Vector | cpositions |
bool | cpositions_is_calculated |
bool | cpositions_is_removed |
Vector | creference |
bool | creference_is_calculated |
bool | creference_is_removed |
std::vector< Vector > | d |
Tensor | ddist_drotation |
Tensor | ddist_drr01 |
const std::vector< double > & | displace |
double | dist |
bool | distanceIsMSD |
std::array< std::array< Tensor, 3 >, 3 > | drotation_drr01 |
Vector4d | eigenvals |
Tensor4d | eigenvecs |
bool | hasDistance |
bool | isInitialized |
const std::vector< Vector > & | positions |
const std::vector< Vector > & | reference |
bool | retrieve_only_rotation |
Tensor | rotation |
double | rr00 |
double | rr11 |
bool | safe |
this is a class which is needed to share information across the various non-threadsafe routines so that the public function of rmsd are threadsafe while the inner core can safely share information
|
inline |
the constructor (note: only references are passed, therefore is rather fast) note: this aligns the reference onto the positions
this method assumes that the centers are already calculated and subtracted
|
inline |
|
inline |
|
inline |
void PLMD::RMSDCoreData::doCoreCalc | ( | bool | safe, |
bool | alEqDis, | ||
bool | only_rotation = false |
||
) |
This calculates the elements needed by the quaternion to calculate everything that is needed additional calls retrieve different components note that this considers that the centers of both reference and positions are already setted but automatically should properly account for non removed components: if not removed then it removes prior to calculation of the alignment.
void PLMD::RMSDCoreData::doCoreCalcWithCloseStructure | ( | bool | safe, |
bool | alEqDis, | ||
const Tensor & | rotationPosClose, | ||
const Tensor & | rotationRefClose, | ||
std::array< std::array< Tensor, 3 >, 3 > & | drotationPosCloseDrr01 | ||
) |
std::vector< Vector > PLMD::RMSDCoreData::getAlignedPositionsToReference | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getAlignedReferenceToPositions | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getCenteredPositions | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getCenteredReference | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getDDistanceDPositions | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getDDistanceDReference | ( | ) |
std::vector< Vector > PLMD::RMSDCoreData::getDDistanceDReferenceSOMA | ( | ) |
this version does not calculate the derivative of rotation matrix as needed for SOMA
double PLMD::RMSDCoreData::getDistance | ( | bool | squared | ) |
just retrieve the distance already calculated
Matrix< std::vector< Vector > > PLMD::RMSDCoreData::getDRotationDPositions | ( | bool | inverseTransform = false | ) |
Matrix< std::vector< Vector > > PLMD::RMSDCoreData::getDRotationDReference | ( | bool | inverseTransform = false | ) |
const std::array< std::array< Tensor, 3 >, 3 > & PLMD::RMSDCoreData::getDRotationDRr01 | ( | ) | const |
Vector PLMD::RMSDCoreData::getPositionsCenter | ( | ) |
|
inline |
Vector PLMD::RMSDCoreData::getReferenceCenter | ( | ) |
|
inline |
Tensor PLMD::RMSDCoreData::getRotationMatrixPositionsToReference | ( | ) |
Tensor PLMD::RMSDCoreData::getRotationMatrixReferenceToPositions | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Hosted by GitHub
![]() |
![]() |