All Classes Namespaces Functions Variables Typedefs Enumerations Pages
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)>:
fmatvec::Atom

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 DDRetDDArg1 = typename Der< DRetDArg1, Arg1 >::type
 
using DDRetDDArg2 = typename Der< DRetDArg2, Arg2 >::type
 
using DDRetDArg1DArg2 = typename Der< DRetDArg1, Arg2 >::type
 
- Public Types inherited from fmatvec::Atom
enum  MsgType { Info, Warn, Debug, 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 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.
 
- Public Member Functions inherited from fmatvec::Atom
virtual ~Atom ()
 dtor.
 
Atomoperator= (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)
 

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:

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML