casacore
|
Class that computes partial derivatives by automatic differentiation. More...
#include <SparseDiffX.h>
Public Member Functions | |
SparseDiffX () | |
Construct a constant with a value of zero. More... | |
SparseDiffX (const T &v) | |
Construct a constant with a value of v. More... | |
SparseDiffX (const T &v, const uInt n) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiffX (const T &v, const uInt n, const T &der) | |
A function f(x0,x1,...,xn,...) with a value of v. More... | |
SparseDiffX (const SparseDiff< T > &other) | |
Construct one from another. More... | |
~SparseDiffX () | |
SparseDiffX< T > & | operator= (const T &v) |
Assignment operator. More... | |
SparseDiffX< T > & | operator= (const pair< uInt, T > &der) |
Assignment operator. More... | |
SparseDiffX< T > & | operator= (const vector< pair< uInt, T > > &der) |
Assignment operator. More... | |
SparseDiffX< 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.
SparseDiffX 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 121 of file SparseDiffX.h.
|
inline |
Construct a constant with a value of zero.
Zero derivatives.
Definition at line 125 of file SparseDiffX.h.
|
inline |
Construct a constant with a value of v.
Zero derivatives.
Definition at line 128 of file SparseDiffX.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 132 of file SparseDiffX.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 137 of file SparseDiffX.h.
|
inline |
Construct one from another.
Definition at line 141 of file SparseDiffX.h.
|
inline |
Definition at line 143 of file SparseDiffX.h.
|
inline |
Assignment operator.
Assign a constant to variable. All derivatives are zero.
Definition at line 147 of file SparseDiffX.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assignment operator.
Add a gradient to variable.
Definition at line 153 of file SparseDiffX.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assignment operator.
Assign gradients to variable.
Definition at line 159 of file SparseDiffX.h.
References casacore::SparseDiff< T >::operator=().
|
inline |
Assign one to another (deep copy).
Definition at line 166 of file SparseDiffX.h.
References casacore::SparseDiff< T >::operator=().