IMP logo

IMP::core::TruncatedHarmonic< DIRECTION > Class Template Reference


Detailed Description

template<int DIRECTION>
class IMP::core::TruncatedHarmonic< DIRECTION >

A function that is harmonic over an interval.

This function is harmonic between center and threshold and then asymptotically converges to the limit value.

The function form above the threshold is currently limit-b/(x-o) where x is the offset from the center and b,o are constants chosen to make the function smooth and continuous. This form may change without notice unless someone tells us it is important that it does not.

Parameters:
[in] DIRECTION Whether to be an upper bound, lower bound, or both directions. It should be one of the BoundDirection enum values. If it is LOWER, than the function is 0 for all values above the passed center.
See also:
Harmonic

HarmonicLowerBound

HarmonicUpperBound

Inheritance diagram for IMP::core::TruncatedHarmonic< DIRECTION >:

Inheritance graph
[legend]

Public Member Functions

virtual double evaluate (double feature) const
virtual DerivativePair evaluate_with_derivative (double feature) const
virtual std::string get_type_name () const
virtual ::IMP::VersionInfo get_version_info () const
 TruncatedHarmonic (Float center, Float k, Float threshold)
 TruncatedHarmonic (Float center, Float k, Float threshold, Float limit)

Constructor & Destructor Documentation

template<int DIRECTION>
IMP::core::TruncatedHarmonic< DIRECTION >::TruncatedHarmonic ( Float  center,
Float  k,
Float  threshold,
Float  limit 
)

Parameters:
[in] center The center point for the harmonic.
[in] k The spring constant for the harmonic.
[in] threshold How far the harmonic term extends from the center.
[in] limit The value to which the function converges above the threshold.
Note:
I don't like having 4 floats on the initializer list, but don't really see an alternative. There are a few sanity checks, so the order is a bit hard to get wrong.

template<int DIRECTION>
IMP::core::TruncatedHarmonic< DIRECTION >::TruncatedHarmonic ( Float  center,
Float  k,
Float  threshold 
)

Set limit to a reasonable value.


The documentation for this class was generated from the following file:

Generated on Mon Mar 8 23:08:58 2010 for IMP by doxygen 1.5.8