CAPD DynSys Library  5.2.0
capd::autodiff::NaturalPow Namespace Reference

natural powers x^c for c=2,3,4 are hand optimized and implemented in EvalSqr.h, EvalCubePow.h and EvalQuarticPow.h, respectively. More...

Functions

template<class T >
T * evalC0SingularNaturalPow (const unsigned coeffNo, const T *x, T *temp1, T *temp2, const unsigned c)
 Auxiliary function. More...
 
template<class T , class R >
void evalC0SingularNaturalPow (const T *left, T *r, const int c, R result, const unsigned coeffNo)
 
template<class T , class R >
void evalC0 (const T *left, const T *right, R result, const unsigned coeffNo)
 
template<class T , class R >
void evalC0HomogenousPolynomial (const T *left, const T *right, R result)
 
template<class T , class R >
void evalC1SingularNaturalPow (const T *left, const T *right, R result, const unsigned dim, const unsigned order, const unsigned coeffNo)
 
template<class T , class R >
void eval (const unsigned degree, const T *left, const T *right, R result, DagIndexer< T > *dag, const unsigned coeffNo)
 
template<class T , class R >
void evalHomogenousPolynomial (const unsigned degree, const T *left, const T *right, R result, DagIndexer< T > *dag, const unsigned coeffNo)
 

Detailed Description

natural powers x^c for c=2,3,4 are hand optimized and implemented in EvalSqr.h, EvalCubePow.h and EvalQuarticPow.h, respectively.

This file implements automatic differentiation for c>4, provided x\neq 0. Special case of C^0-C^1 jet propagation is implemented also in the case x=0.

Function Documentation

◆ eval()

template<class T , class R >
void capd::autodiff::NaturalPow::eval ( const unsigned  degree,
const T *  left,
const T *  right,
result,
DagIndexer< T > *  dag,
const unsigned  coeffNo 
)

◆ evalC0()

template<class T , class R >
void capd::autodiff::NaturalPow::evalC0 ( const T *  left,
const T *  right,
result,
const unsigned  coeffNo 
)
inline

◆ evalC0HomogenousPolynomial()

template<class T , class R >
void capd::autodiff::NaturalPow::evalC0HomogenousPolynomial ( const T *  left,
const T *  right,
result 
)
inline

◆ evalC0SingularNaturalPow() [1/2]

template<class T , class R >
void capd::autodiff::NaturalPow::evalC0SingularNaturalPow ( const T *  left,
T *  r,
const int  c,
result,
const unsigned  coeffNo 
)

◆ evalC0SingularNaturalPow() [2/2]

template<class T >
T* capd::autodiff::NaturalPow::evalC0SingularNaturalPow ( const unsigned  coeffNo,
const T *  x,
T *  temp1,
T *  temp2,
const unsigned  c 
)
inline

Auxiliary function.

Computes d^i x^c where c is integer, i>0 and x can be zero

Parameters
x- array of coefficients

◆ evalC1SingularNaturalPow()

template<class T , class R >
void capd::autodiff::NaturalPow::evalC1SingularNaturalPow ( const T *  left,
const T *  right,
result,
const unsigned  dim,
const unsigned  order,
const unsigned  coeffNo 
)
inline

◆ evalHomogenousPolynomial()

template<class T , class R >
void capd::autodiff::NaturalPow::evalHomogenousPolynomial ( const unsigned  degree,
const T *  left,
const T *  right,
result,
DagIndexer< T > *  dag,
const unsigned  coeffNo 
)