Step Class Reference

This is a Function_ subclass whose output value y=f(x) is smoothly stepped from y=y0 to y1 as its input argument goes from x=x0 to x1. More...

#include <Function.h>

Inheritance diagram for Step:
Function_< T >

List of all members.

Public Member Functions

 Step (const T &y0, const T &y1, Real x0, Real x1)
 Create a Function_::Step object that smoothly interpolates its output through a given range as its input moves through its range.
calcValue (const Vector &xin) const
 Calculate the value of this function at a particular point.
calcDerivative (const Array_< int > &derivComponents, const Vector &xin) const
 Calculate a partial derivative of this function at a particular point.
virtual int getArgumentSize () const
 Get the number of components expected in the input vector.
int getMaxDerivativeOrder () const
 Get the maximum derivative order this Function_ object can calculate.
calcDerivative (const std::vector< int > &derivComponents, const Vector &x) const
 This provides compatibility with std::vector without requiring any copying.

Detailed Description

template<class T>
class SimTK::Function_< T >::Step

This is a Function_ subclass whose output value y=f(x) is smoothly stepped from y=y0 to y1 as its input argument goes from x=x0 to x1.

This is an S-shaped function with first and second derivatives y'(x0)=y'(x1)=0 and y''(x0)=y''(x1)==0. The third derivative y''' exists and is continuous but we cannot guarantee anything about it at the end points.


Constructor & Destructor Documentation

Step ( const T &  y0,
const T &  y1,
Real  x0,
Real  x1 
) [inline]

Create a Function_::Step object that smoothly interpolates its output through a given range as its input moves through its range.

Parameters:
y0 Output value when (x-x0)*sign(x1-x0) <= 0.
y1 Output value when (x-x1)*sign(x1-x0) >= 0.
x0 Start of switching interval.
x1 End of switching interval.
Template Parameters:
T The template type is the type of y0 and y1. This must be a type that supports subtraction and scalar multiplication by a Real so that we can compute an expression like y=y0 + f*(y1-y0) for some Real scalar f.

Note that the numerical values of x0 and x1 can be in either order x0 < x1 or x0 > x1.

References SimTK_ERRCHK1_ALWAYS.


Member Function Documentation

T calcDerivative ( const std::vector< int > &  derivComponents,
const Vector x 
) const [inline]

This provides compatibility with std::vector without requiring any copying.

Reimplemented from Function_< T >.

References Step::calcDerivative().

Referenced by Step::calcDerivative().

T calcDerivative ( const Array_< int > &  derivComponents,
const Vector x 
) const [inline, virtual]

Calculate a partial derivative of this function at a particular point.

Which derivative to take is specified by listing the input components with which to take it. For example, if derivComponents=={0}, that indicates a first derivative with respective to component 0. If derivComponents=={0, 0, 0}, that indicates a third derivative with respective to component 0. If derivComponents=={4, 7}, that indicates a partial second derivative with respect to components 4 and 7.

Parameters:
derivComponents The input components with respect to which the derivative should be taken. Its size must be less than or equal to the value returned by getMaxDerivativeOrder().
x The Vector of input arguments. Its size must equal the value returned by getArgumentSize().
Returns:
The value of the selected derivative, which is of type T.

Implements Function_< T >.

References SimTK::d2stepAny(), SimTK::d3stepAny(), SimTK::dstepAny(), SimTK_ERRCHK1_ALWAYS, VectorBase< ELT >::size(), and Array_< T, X >::size().

T calcValue ( const Vector x  )  const [inline, virtual]

Calculate the value of this function at a particular point.

Parameters:
x the Vector of input arguments. Its size must equal the value returned by getArgumentSize().

Implements Function_< T >.

References SimTK_ERRCHK1_ALWAYS, VectorBase< ELT >::size(), and SimTK::stepAny().

virtual int getArgumentSize (  )  const [inline, virtual]

Get the number of components expected in the input vector.

Implements Function_< T >.

int getMaxDerivativeOrder (  )  const [inline, virtual]

Get the maximum derivative order this Function_ object can calculate.

Implements Function_< T >.


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

Generated on Thu Aug 12 16:38:17 2010 for SimTKcore by  doxygen 1.6.1