|
Public Member Functions |
| | ReducedHessAngle () |
| | ReducedHessAngle (const Vector3D &atom_i, const Vector3D &atom_j, const Vector3D &atom_k, const double k_t, const double theta0, bool computeReduced=false) |
| | ~ReducedHessAngle () |
| void | evaluate (const Vector3D &P1, const Vector3D &P2, const Vector3D &P3, const double kt, const double t0, bool computeReduced=0) |
| Matrix3by3 | operator() (int i, int j) const |
| void | operator() (int i, int j, Matrix3by3 x) |
| void | accumulateTo (int i, int j, Matrix3by3 x) |
| void | accumulateNegTo (int i, int j, Matrix3by3 x) |
| ReducedHessAngle | operator * (const ReducedHessAngle &tm) |
| ReducedHessAngle | operator * (const Real tm) |
| ReducedHessAngle | operator/ (const Real tm) |
| ReducedHessAngle & | operator *= (const Real tm) |
| ReducedHessAngle & | operator/= (const Real tm) |
| ReducedHessAngle | operator+ (const ReducedHessAngle &tm) |
| ReducedHessAngle | operator- (const ReducedHessAngle &tm) |
| ReducedHessAngle & | operator+= (const ReducedHessAngle &tm) |
| ReducedHessAngle & | operator-= (const ReducedHessAngle &tm) |
| ReducedHessAngle | transposed () |
| void | convertFromJacobian (Real **jac, int n) |
| void | identity () |
| void | clear () |
Private Attributes |
| Matrix3by3 | H [3][3] |
Friends |
| std::ostream & | operator<< (std::ostream &os, const ReducedHessAngle &tm) |
The remaining computation is same as that in AngleHessian class except now a more compact form is used to compute each elements. See Appendix B in Qun Ma's dissertation for details.
It can compute the whole Hessian or only the blocks of (0,0), (0,2), (2,0), (2,2) for the "reduced" form when the Heavy atom is "anchored."