|
fmatvec
0.0.0
|
A function object with 2 arguments. More...
#include <function.h>
Public Types | |
| 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 | DRetDDir1 = typename DirDer< Ret, Arg1 >::type |
| using | DRetDDir2 = typename DirDer< Ret, Arg2 >::type |
| using | DDRetDDArg1 = typename Der< DRetDArg1, Arg1 >::type |
| using | DDRetDDArg2 = typename Der< DRetDArg2, Arg2 >::type |
| using | DDRetDArg1DArg2 = typename Der< DRetDArg1, Arg2 >::type |
| using | RetType = Ret |
| using | ArgType = boost::mpl::list< Arg1, Arg2 > |
Public Types inherited from fmatvec::Atom | |
| enum | MsgType { Info , Warn , Debug , Error , Deprecated , Status , SIZE } |
| Messages can be printed to different message types named here. | |
Public Member Functions | |
| 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 DRetDDir1 | 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 DRetDDir2 | 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 DRetDDir1 | 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 DRetDDir2 | 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 DRetDDir2 | dirDer2DirDer1 (const Arg2 &arg2Dir, const Arg1 &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. | |
Public Member Functions inherited from fmatvec::Atom | |
| 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 activeFlag) |
| 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) const |
| Get the shared message stream active flag and the shared message stream of this object. | |
| void | adoptMessageStreams (const Atom *src=nullptr) |
| osyncstream | msg (MsgType type) const |
| bool | msgAct (MsgType type) const |
Static Public Attributes | |
| static constexpr int | arg1Size = StaticSize<Arg1>::size1 |
| Compile time size of the first argument: =1 == scalar; >1 == vector; =0 == unknown compile time vector size. | |
| static constexpr int | arg2Size = StaticSize<Arg2>::size1 |
| Compile time size of the second argument: =1 == scalar; >1 == vector; =0 == unknown compile time vector size. | |
Additional Inherited Members | |
Static Public Member Functions inherited from fmatvec::Atom | |
| static void | setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf())) |
| static osyncstream | msgStatic (MsgType type) |
| static bool | msgActStatic (MsgType type) |
Protected Member Functions inherited from fmatvec::Atom | |
| Atom () | |
| When a Atom is default constructed use the current statically set message streams. | |
| Atom (const Atom &src) | |
| When a Atom is copy constructed use the current statically set message streams, not the message streams from src. | |
A function object with 2 arguments.