|
enum | { retSize1 = StaticSize<Ret>::size1,
retSize2 = StaticSize<Ret>::size2
} |
| Compile time size of the return value: =0 == unknown compile time size.
|
|
using | DRetDArg1 = typename Der< Ret, Arg1 >::type |
|
using | DRetDArg2 = typename Der< Ret, Arg2 >::type |
|
using | DDRetDDArg1 = typename Der< DRetDArg1, Arg1 >::type |
|
using | DDRetDDArg2 = typename Der< DRetDArg2, Arg2 >::type |
|
using | DDRetDArg1DArg2 = typename Der< DRetDArg1, Arg2 >::type |
|
enum | MsgType { Info,
Warn,
Debug,
SIZE
} |
| Messages can be printed to different message types named here.
|
|
|
virtual std::pair< int, int > | getRetSize () const |
| Return the size of the return value: =0 == unknown size.
|
|
virtual int | getArg1Size () const |
| Return the size of the first argument: =1 == scalar; >1 == vector; =0 == unknown vector size.
|
|
virtual int | getArg2Size () const |
| Return the size of the second argument: =1 == scalar; >1 == vector; =0 == unknown vector size.
|
|
virtual Ret | operator() (const Arg1 &arg1, const Arg2 &arg2)=0 |
| Function value: pure virtual (MUST be implemented by derived class)
|
|
virtual DRetDArg1 | parDer1 (const Arg1 &arg1, const Arg2 &arg2) |
| First derivative: partial derivative of the function value with respect to the first argument.
|
|
virtual Ret | dirDer1 (const Arg1 &arg1Dir, const Arg1 &arg1, const Arg2 &arg2) |
| First derivative: directional derivative of the function value with respect to the first argument.
|
|
virtual DRetDArg2 | parDer2 (const Arg1 &arg1, const Arg2 &arg2) |
| First derivative: partial derivative of the function value with respect to the second argument.
|
|
virtual Ret | dirDer2 (const Arg2 &arg2Dir, const Arg1 &arg1, const Arg2 &arg2) |
| First derivative: directional derivative of the function value with respect to the second argument.
|
|
virtual DDRetDDArg1 | parDer1ParDer1 (const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: partial derivative of parDer1 with respect to the first argument.
|
|
virtual DRetDArg1 | parDer1DirDer1 (const Arg1 &arg1Dir, const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: directional derivative of parDer1 with respect to the first argument.
|
|
virtual Ret | dirDer1DirDer1 (const Arg1 &arg1Dir_1, const Arg1 &arg1Dir_2, const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: directional derivative of dirDer1 with respect to the first argument.
|
|
virtual DDRetDDArg2 | parDer2ParDer2 (const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: partial derivative of parDer2 with respect to the first argument.
|
|
virtual DRetDArg2 | parDer2DirDer2 (const Arg2 &arg2Dir, const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: directional derivative of parDer2 with respect to the first argument.
|
|
virtual Ret | dirDer2DirDer2 (const Arg2 &arg2Dir_1, const Arg2 &arg2Dir_2, const Arg1 &arg1, const Arg2 &arg2) |
| Second derivative: directional derivative of dirDer2 with respect to the first argument.
|
|
virtual DDRetDArg1DArg2 | parDer1ParDer2 (const Arg1 &arg1, const Arg2 &arg2) |
| Second mixed derivative: partial derivative of parDer1 with respect to the second argument.
|
|
virtual DRetDArg1 | parDer1DirDer2 (const Arg2 &arg2Dir, const Arg1 &arg1, const Arg2 &arg2) |
| Second mixed derivative: directional derivative of parDer1 with respect to the second argument.
|
|
virtual Ret | dirDer2DirDer1 (const Arg2 &arg1Dir, const Arg1 &arg1, const Arg2 &arg2) |
| Second mixed derivative: directional derivative of dirDer2 with respect to the first argument.
|
|
virtual DRetDArg2 | parDer2DirDer1 (const Arg1 &arg1Dir, const Arg1 &arg1, const Arg2 &arg2) |
| Second mixed derivative: partial derivative of dirDer1 with respect to the second argument.
|
|
virtual bool | constParDer1 () const |
| Returns true, if the partial derivative of the function value with respect to the first argument.
|
|
virtual bool | constParDer2 () const |
| Returns true, if the partial derivative of the function value with respect to the second argument.
|
|
virtual | ~Atom () |
| dtor.
|
|
Atom & | operator= (const Atom &) |
| When a Atom is assinged do not change the messsage streams since we always use the message streams being active at ctor time.
|
|
void | setMessageStreamActive (MsgType type, bool active) |
| Set the active flag of this object and all objects which were created using the same message stream as this object.
|
|
void | getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s) |
| Get the shared message stream active flag and the shared message stream of this object.
|
|
void | adoptMessageStreams (const Atom *src=NULL) |
|
std::ostream & | msg (MsgType type) |
|
bool | msgAct (MsgType type) |
|
template<typename Ret, typename Arg1, typename Arg2>
class fmatvec::Function< Ret(Arg1, Arg2)>
A function object with 2 arguments.