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, Vector &cp, Vector &cr) | |
the constructor (note: only references are passed, therefore is rather fast) note: this aligns the reference onto the positions More... | |
RMSDCoreData (const std::vector< double > &a, const std::vector< double > &d, const std::vector< Vector > &p, const std::vector< Vector > &r) | |
void | calcPositionsCenter () |
void | calcReferenceCenter () |
void | setPositionsCenter (Vector v) |
void | setReferenceCenter (Vector v) |
void | setPositionsCenterIsRemoved (bool t) |
void | setReferenceCenterIsRemoved (bool t) |
bool | getPositionsCenterIsRemoved () |
bool | getReferenceCenterIsRemoved () |
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... | |
double | getDistance (bool squared) |
just retrieve the distance already calculated More... | |
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... | |
std::vector< Vector > | getAlignedReferenceToPositions () |
std::vector< Vector > | getAlignedPositionsToReference () |
std::vector< Vector > | getCenteredPositions () |
std::vector< Vector > | getCenteredReference () |
Vector | getPositionsCenter () |
Vector | getReferenceCenter () |
Tensor | getRotationMatrixReferenceToPositions () |
Tensor | getRotationMatrixPositionsToReference () |
Matrix< std::vector< Vector > > | getDRotationDPositions (bool inverseTransform=false) |
Matrix< std::vector< Vector > > | getDRotationDReference (bool inverseTransform=false) |
Private Attributes | |
bool | alEqDis |
bool | distanceIsMSD |
bool | hasDistance |
bool | isInitialized |
bool | safe |
Vector | creference |
bool | creference_is_calculated |
bool | creference_is_removed |
Vector | cpositions |
bool | cpositions_is_calculated |
bool | cpositions_is_removed |
bool | retrieve_only_rotation |
const std::vector< Vector > & | positions |
const std::vector< Vector > & | reference |
const std::vector< double > & | align |
const std::vector< double > & | displace |
double | dist |
std::vector< double > | eigenvals |
Matrix< double > | eigenvecs |
double | rr00 |
double | rr11 |
Tensor | rotation |
Tensor | drotation_drr01 [3][3] |
Tensor | ddist_drr01 |
Tensor | ddist_drotation |
std::vector< Vector > | d |
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.
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 | ) |
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 | 1.8.10 |