fmatvec 0.0.0

Public Types | Public Member Functions | Static Public Attributes | List of all members
fmatvec::Function< Ret(Arg1, Arg2)> Class Template Referenceabstract

A function object with 2 arguments. More...

`#include <function.h>`

Inheritance diagram for fmatvec::Function< Ret(Arg1, Arg2)>:
[legend]

## 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)
std::ostream & | 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 std::ostream & | 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.

## Detailed Description

### template<typename Ret, typename Arg1, typename Arg2>
class fmatvec::Function< Ret(Arg1, Arg2)>

A function object with 2 arguments.

The documentation for this class was generated from the following file:

- /mbsim-env/fmatvec/fmatvec/function.h