1 #ifndef SimTK_DIFFERENTIATOR_H_
2 #define SimTK_DIFFERENTIATOR_H_
86 class OpNotAllowedForFunctionOfThisShape;
87 class UserFunctionThrewAnException;
88 class UserFunctionReturnedNonzeroStatus;
89 class UnknownMethodSpecified;
103 Method defaultMethod=UnspecifiedMethod);
113 Method=UnspecifiedMethod)
const;
115 Method=UnspecifiedMethod)
const;
117 Method=UnspecifiedMethod)
const;
133 class DifferentiatorRep;
136 DifferentiatorRep* rep;
Includes internal headers providing declarations for the basic SimTK Core classes,...
This is the header file that every Simmath compilation unit should include first.
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64
This abstract class defines a function to be differentiated (repeatedly) by a Differentiator object.
Definition: Differentiator.h:152
Function & setEstimatedAccuracy(Real)
Function & setNumParameters(int)
int getNumFailures() const
int getNumFunctions() const
FunctionRep * rep
Definition: Differentiator.h:175
Real getEstimatedAccuracy() const
int getNumParameters() const
void resetAllStatistics()
Function & setNumFunctions(int)
Derive a concrete class from this one if you have a scalar function of multiple variables that you wa...
Definition: Differentiator.h:208
GradientFunction(int ny=-1, Real acc=-1)
virtual ~GradientFunction()
Definition: Differentiator.h:214
virtual int f(const Vector &y, Real &fy) const =0
Derive a concrete class from this one if you have a set of functions (i.e., a vector-valued function)...
Definition: Differentiator.h:227
virtual int f(const Vector &y, Vector &fy) const =0
virtual ~JacobianFunction()
Definition: Differentiator.h:233
JacobianFunction(int nf=-1, int ny=-1, Real acc=-1)
Derive a concrete class from this one if you have a scalar function of a single scalar variable that ...
Definition: Differentiator.h:189
virtual int f(Real x, Real &fx) const =0
virtual ~ScalarFunction()
Definition: Differentiator.h:195
ScalarFunction(Real acc=-1)
Given a function f(y), where f, y or both can be vectors, calculate the derivative (gradient,...
Definition: Differentiator.h:77
void calcDerivative(Real y0, Real fy0, Real &dfdy, Method=UnspecifiedMethod) const
static bool isValidMethod(Method)
int getNumDifferentiations() const
Method getDefaultMethod() const
void calcGradient(const Vector &y0, Real fy0, Vector &gf, Method=UnspecifiedMethod) const
void resetAllStatistics()
Method
Definition: Differentiator.h:92
Real calcDerivative(Real y0, Method=UnspecifiedMethod) const
int getNumDifferentiationFailures() const
int getNumCallsToUserFunction() const
Matrix calcJacobian(const Vector &y0, Method=UnspecifiedMethod) const
void calcJacobian(const Vector &y0, const Vector &fy0, Matrix &dfdy, Method=UnspecifiedMethod) const
virtual ~Differentiator()
Differentiator & setDefaultMethod(Method)
Differentiator(const Function &f, Method defaultMethod=UnspecifiedMethod)
Vector calcGradient(const Vector &y0, Method=UnspecifiedMethod) const
static int getMethodOrder(Method)
static const char * getMethodName(Method)
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
Function_< Real > Function
This typedef is used for the very common case that the return type of the Function object is Real.
Definition: Function.h:117
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:607