OpenSim::StepFunction Class Reference

#include <StepFunction.h>

Inheritance diagram for OpenSim::StepFunction:
OpenSim::Function OpenSim::Object

List of all members.

Public Member Functions

 StepFunction ()
 Default constructor.
 StepFunction (int aN, const double *aTimes, const double *aValues, const std::string &aName="")
 StepFunction (const StepFunction &aFunction)
 Copy constructor.
virtual ~StepFunction ()
 Destructor.
virtual Objectcopy () const
 Copy this object.
virtual void init (Function *aFunction)
 Initialize the function with X and Y values.
StepFunctionoperator= (const StepFunction &aFunction)
 Assignment operator.
int getSize () const
 Get size or number of independent data points (or number of coefficients) used to construct the function.
const Array< double > & getX () const
 Get the array of independent variables used to construct the function.
const Array< double > & getY () const
 Get the array of Y values for the function.
virtual const double * getXValues () const
 Get the array of independent variables used to construct the function.
virtual const double * getYValues () const
 Get the array of dependent variables used to construct the function.
virtual int getNumberOfPoints () const
virtual double getX (int aIndex) const
virtual double getY (int aIndex) const
virtual double getZ (int aIndex) const
virtual void setX (int aIndex, double aValue)
virtual void setY (int aIndex, double aValue)
virtual bool deletePoint (int aIndex)
virtual bool deletePoints (const Array< int > &indices)
virtual int addPoint (double aX, double aY)
virtual double evaluateTotalFirstDerivative (double aX, double aDxdt) const
 Evaluates total first derivative.
virtual double evaluateTotalSecondDerivative (double aX, double aDxdt, double aD2xdt2) const
 Evaluates total second derivative.
double calcValue (const SimTK::Vector &x) const
 Calculate the value of this function at a particular point.
double calcDerivative (const std::vector< int > &derivComponents, const SimTK::Vector &x) const
 Calculate a partial derivative of this function at a particular point.
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.
SimTK::Function * createSimTKFunction () const
virtual void updateFromXMLNode ()
 Update this object based on its XML node.

Protected Attributes

PropertyDblArray _propX
 Array of values for the independent variables (i.e., the knot sequence).
Array< double > & _x
PropertyDblArray _propY
 Y values.
Array< double > & _y

Constructor & Destructor Documentation

StepFunction::StepFunction (  ) 

Default constructor.

OpenSim::StepFunction::StepFunction ( int  aN,
const double *  aTimes,
const double *  aValues,
const std::string &  aName = "" 
)
StepFunction::StepFunction ( const StepFunction aFunction  ) 

Copy constructor.

All data members of the specified function are copied.

Parameters:
aFunction StepFunction object to be copied.
StepFunction::~StepFunction (  )  [virtual]

Destructor.


Member Function Documentation

int StepFunction::addPoint ( double  aX,
double  aY 
) [virtual]
double OpenSim::StepFunction::calcDerivative ( const std::vector< int > &  derivComponents,
const SimTK::Vector &  x 
) const [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().

Reimplemented from OpenSim::Function.

double OpenSim::StepFunction::calcValue ( const SimTK::Vector &  x  )  const [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().

Reimplemented from OpenSim::Function.

Object * StepFunction::copy (  )  const [virtual]

Copy this object.

Returns:
Pointer to a copy of this object.

Implements OpenSim::Function.

SimTK::Function * StepFunction::createSimTKFunction (  )  const [virtual]

Implements OpenSim::Function.

bool StepFunction::deletePoint ( int  aIndex  )  [virtual]
bool StepFunction::deletePoints ( const Array< int > &  indices  )  [virtual]
double StepFunction::evaluateTotalFirstDerivative ( double  aX,
double  aDxdt 
) const [virtual]

Evaluates total first derivative.

double StepFunction::evaluateTotalSecondDerivative ( double  aX,
double  aDxdt,
double  aD2xdt2 
) const [virtual]

Evaluates total second derivative.

int StepFunction::getArgumentSize (  )  const [virtual]

Get the number of components expected in the input vector.

Reimplemented from OpenSim::Function.

int StepFunction::getMaxDerivativeOrder (  )  const [virtual]

Get the maximum derivative order this Function object can calculate.

Reimplemented from OpenSim::Function.

virtual int OpenSim::StepFunction::getNumberOfPoints (  )  const [inline, virtual]
int StepFunction::getSize (  )  const

Get size or number of independent data points (or number of coefficients) used to construct the function.

Returns:
Number of data points (or number of coefficients).
double StepFunction::getX ( int  aIndex  )  const [virtual]
const Array< double > & StepFunction::getX (  )  const

Get the array of independent variables used to construct the function.

For the number of independent variable data points use getN().

Returns:
Pointer to the independent variable data points.
See also:
getN();
const double * StepFunction::getXValues (  )  const [virtual]

Get the array of independent variables used to construct the function.

For the number of independent variable data points use getN().

Returns:
Pointer to the independent variable data points.
See also:
getN();
double StepFunction::getY ( int  aIndex  )  const [virtual]
const Array< double > & StepFunction::getY (  )  const

Get the array of Y values for the function.

For the number of Y values use getNX().

Returns:
Pointer to the coefficients.
See also:
getCoefficients();
const double * StepFunction::getYValues (  )  const [virtual]

Get the array of dependent variables used to construct the function.

Returns:
Pointer to the dependent variable data points.
virtual double OpenSim::StepFunction::getZ ( int  aIndex  )  const [inline, virtual]
void StepFunction::init ( Function aFunction  )  [virtual]

Initialize the function with X and Y values.

Parameters:
aN the number of X and Y values
aXValues the X values
aYValues the Y values
StepFunction & StepFunction::operator= ( const StepFunction aFunction  ) 

Assignment operator.

Note that data members of the base class are also assigned.

Returns:
Reference to this object.

Reimplemented from OpenSim::Function.

void StepFunction::setX ( int  aIndex,
double  aValue 
) [virtual]
void StepFunction::setY ( int  aIndex,
double  aValue 
) [virtual]
void StepFunction::updateFromXMLNode (  )  [virtual]

Update this object based on its XML node.

Reimplemented from OpenSim::Object.


Member Data Documentation

Array of values for the independent variables (i.e., the knot sequence).

This array must be monotonically increasing.

Y values.

Array<double>& OpenSim::StepFunction::_x [protected]
Array<double>& OpenSim::StepFunction::_y [protected]

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

Generated on Wed Dec 16 15:03:42 2009 for OpenSim by  doxygen 1.6.1