The class is given the score (and optionally its first derivative) at a given distance and returns a smoothed form of the score. Smoothing functions are used to avoid a discontinuity in the scoring function and/or its derivatives at the cutoff distance (the distance threshold used by IMP::core::ClosePairsFinder), as this can lead to nonphysical motions of the system. They are used by physical scoring functions that drop off slowly with distance, such as CoulombPairScore, in combination with a ClosePairsFinder.
Smoothing functions usually offset the score by a constant value (a shift function) or smooth it from its normal value to zero over a defined range (a switch function, such as ForceSwitch).
Public Member Functions | |
virtual DerivativePair | operator() (double score, double deriv, double distance) const =0 |
Smooth the score and its first derivative at a given distance. | |
virtual double | operator() (double score, double distance) const =0 |
Smooth the score at a given distance. | |
Friends | |
template<class T > | |
void | IMP::internal::unref (T *) |
virtual DerivativePair IMP::atom::SmoothingFunction::operator() | ( | double | score, | |
double | deriv, | |||
double | distance | |||
) | const [pure virtual] |
Smooth the score and its first derivative at a given distance.
virtual double IMP::atom::SmoothingFunction::operator() | ( | double | score, | |
double | distance | |||
) | const [pure virtual] |
Smooth the score at a given distance.