casacore
|
Class that computes partial derivatives by automatic differentiation. More...
#include <SparseDiffA.h>
Public Member Functions | |
SparseDiffA () | |
Construct a constant with a value of zero. More... | |
SparseDiffA (const T &v) | |
Construct a constant with a value of v. More... | |
SparseDiffA (const T &v, const uInt n) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiffA (const T &v, const uInt n, const T &der) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiffA (const SparseDiff< T > &other) | |
Construct one from another. More... | |
~SparseDiffA () | |
SparseDiffA< T > & | operator= (const T &v) |
Assignment operator. More... | |
SparseDiffA< T > & | operator= (const pair< uInt, T > &der) |
Assignment operator. More... | |
SparseDiffA< T > & | operator= (const vector< pair< uInt, T > > &der) |
Assignment operator. More... | |
SparseDiffA< T > & | operator= (const SparseDiff< T > &other) |
Assign one to another (deep copy). More... | |
Public Member Functions inherited from casacore::SparseDiff< T > | |
SparseDiff () | |
Construct a constant with a value of zero. More... | |
SparseDiff (const T &v) | |
Construct a constant with a value of v. More... | |
SparseDiff (const T &v, const uInt n) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiff (const T &v, const uInt n, const T &der) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiff (const AutoDiff< T > &other) | |
Construct from an AutoDiff. More... | |
SparseDiff (const SparseDiff< T > &other) | |
Construct one from another (deep copy) More... | |
~SparseDiff () | |
Destructor. More... | |
SparseDiff< T > & | operator= (const T &v) |
Assignment operator. More... | |
SparseDiff< T > & | operator= (const pair< uInt, T > &der) |
Assignment operator. More... | |
SparseDiff< T > & | operator= (const vector< pair< uInt, T > > &der) |
Assignment operator. More... | |
SparseDiff< T > & | operator= (const AutoDiff< T > &other) |
Assign from an Autodiff. More... | |
SparseDiff< T > & | operator= (const SparseDiff< T > &other) |
Assign one to another (deep copy) More... | |
void | operator*= (const SparseDiff< T > &other) |
Assignment operators. More... | |
void | operator/= (const SparseDiff< T > &other) |
void | operator+= (const SparseDiff< T > &other) |
void | operator-= (const SparseDiff< T > &other) |
void | operator*= (const T other) |
void | operator/= (const T other) |
void | operator+= (const T other) |
void | operator-= (const T other) |
AutoDiff< T > | toAutoDiff (uInt n) const |
Convert to an AutoDiff of length n More... | |
SparseDiffRep< T > * | theRep () |
Returns the pointer to the structure of value and derivatives. More... | |
const SparseDiffRep< T > * | theRep () const |
T & | value () |
Returns the value of the function. More... | |
const T & | value () const |
vector< pair< uInt, T > > & | derivatives () const |
Returns a vector of the derivatives of a SparseDiff. More... | |
void | derivatives (vector< pair< uInt, T > > &res) const |
const vector< pair< uInt, T > > & | grad () const |
vector< pair< uInt, T > > & | grad () |
pair< uInt, T > & | derivative (uInt which) |
Returns a specific derivative. More... | |
const pair< uInt, T > & | derivative (uInt which) const |
uInt | nDerivatives () const |
Return total number of derivatives. More... | |
Bool | isConstant () const |
Is it a constant, i.e., with zero derivatives? More... | |
void | sort () |
Sort derivative list; cater for doubles and zeroes. More... | |
Additional Inherited Members | |
Public Types inherited from casacore::SparseDiff< T > | |
typedef T | value_type |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef value_type * | iterator |
typedef const value_type * | const_iterator |
Static Public Member Functions inherited from casacore::SparseDiff< T > | |
static Bool | ltSort (pair< uInt, T > &lhs, pair< uInt, T > &rhs) |
Sort criterium. More... | |
Class that computes partial derivatives by automatic differentiation.
Public interface
Class that computes partial derivatives by automatic differentiation, thus SparseDiff.
SparseDiffA is an SparseDiff. It is used to be able to distinguish between two template incarnations; e.g. to have one or more specializations, in addition to the general template version.
See for an extensive example the demo program dSparseDiff. It is based on the example given in the SparseDiff class, and shows how to have both an automatic and a specific version of a function object.
The class was created to enable separate calculations of the same function.
Definition at line 119 of file SparseDiffA.h.
|
inline |
Construct a constant with a value of zero.
Zero derivatives.
Definition at line 123 of file SparseDiffA.h.
|
inline |
Construct a constant with a value of v.
Zero derivatives.
Definition at line 126 of file SparseDiffA.h.
|
inline |
A function f(x0,x1,...,xn,...) with a value of v.
The nth derivative is one, and all others are zero.
Definition at line 130 of file SparseDiffA.h.
|
inline |
A function f(x0,x1,...,xn,...) with a value of v.
The nth derivative is der, and all other derivatives are zero.
Definition at line 135 of file SparseDiffA.h.
|
inline |
Construct one from another.
Definition at line 139 of file SparseDiffA.h.
|
inline |
Definition at line 141 of file SparseDiffA.h.
|
inline |
Assignment operator.
Assign a constant to variable. All derivatives are zero.
Definition at line 145 of file SparseDiffA.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assignment operator.
Add a gradient to variable.
Definition at line 151 of file SparseDiffA.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assignment operator.
Assign gradients to variable.
Definition at line 157 of file SparseDiffA.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assign one to another (deep copy).
Definition at line 163 of file SparseDiffA.h.
References casacore::SparseDiff< T >::operator=().