Simbody 3.7
Loading...
Searching...
No Matches
SimTK::Function_< T >::Sinusoid Class Reference

This is a Function_ subclass whose output value is a sinusoid of its argument: f(x) = a*sin(w*x + p) where a is amplitude, w is frequency in radians per unit of x, p is phase in radians. More...

#include <Function.h>

Public Member Functions

 Sinusoid (Real amplitude, Real frequency, Real phase=0)
 Create a Function::Sinusoid object, returning a*sin(w*x+p).
 
void setAmplitude (Real amplitude)
 
void setFrequency (Real frequency)
 
void setPhase (Real phase)
 
Real getAmplitude () const
 
Real getFrequency () const
 
Real getPhase () const
 
virtual Real calcValue (const Vector &x) const override
 
virtual Real calcDerivative (const Array_< int > &derivComponents, const Vector &x) const override
 
int getArgumentSize () const override
 
int getMaxDerivativeOrder () const override
 
Sinusoidclone () const override
 
Real 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 >::Sinusoid

This is a Function_ subclass whose output value is a sinusoid of its argument: f(x) = a*sin(w*x + p) where a is amplitude, w is frequency in radians per unit of x, p is phase in radians.

This is only defined for a scalar (Real) return value.

Constructor & Destructor Documentation

◆ Sinusoid()

template<class T >
SimTK::Function_< T >::Sinusoid::Sinusoid ( Real amplitude,
Real frequency,
Real phase = 0 )
inline

Create a Function::Sinusoid object, returning a*sin(w*x+p).

Parameters
[in]amplitude'a' in the above formula
[in]frequency'w' in the above formula
[in]phase'p' in the above formula (default is zero)

Member Function Documentation

◆ setAmplitude()

template<class T >
void SimTK::Function_< T >::Sinusoid::setAmplitude ( Real amplitude)
inline

◆ setFrequency()

template<class T >
void SimTK::Function_< T >::Sinusoid::setFrequency ( Real frequency)
inline

◆ setPhase()

template<class T >
void SimTK::Function_< T >::Sinusoid::setPhase ( Real phase)
inline

◆ getAmplitude()

template<class T >
Real SimTK::Function_< T >::Sinusoid::getAmplitude ( ) const
inline

◆ getFrequency()

template<class T >
Real SimTK::Function_< T >::Sinusoid::getFrequency ( ) const
inline

◆ getPhase()

template<class T >
Real SimTK::Function_< T >::Sinusoid::getPhase ( ) const
inline

◆ calcValue()

template<class T >
virtual Real SimTK::Function_< T >::Sinusoid::calcValue ( const Vector & x) const
inlineoverridevirtual

◆ calcDerivative() [1/2]

template<class T >
virtual Real SimTK::Function_< T >::Sinusoid::calcDerivative ( const Array_< int > & derivComponents,
const Vector & x ) const
inlineoverridevirtual

◆ getArgumentSize()

template<class T >
int SimTK::Function_< T >::Sinusoid::getArgumentSize ( ) const
inlineoverride

◆ getMaxDerivativeOrder()

template<class T >
int SimTK::Function_< T >::Sinusoid::getMaxDerivativeOrder ( ) const
inlineoverride

◆ clone()

template<class T >
Sinusoid * SimTK::Function_< T >::Sinusoid::clone ( ) const
inlineoverride

◆ calcDerivative() [2/2]

template<class T >
Real SimTK::Function_< T >::Sinusoid::calcDerivative ( const std::vector< int > & derivComponents,
const Vector & x ) const
inline

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


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