All Classes Namespaces Functions Variables Typedefs Enumerations Pages
Public Types | Public Member Functions | Static Public Attributes | List of all members
fmatvec::Function< Ret(Arg)> Class Template Referenceabstract

A function object with 1 argument. More...

#include <function.h>

Inheritance diagram for fmatvec::Function< Ret(Arg)>:
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 DRetDArg = typename Der< Ret, Arg >::type
 
using DDRetDDArg = typename Der< DRetDArg, Arg >::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 getArgSize () const
 Return the size of the argument: =1 == scalar; >1 == vector; =0 == unknown vector size.
 
virtual Ret operator() (const Arg &arg)=0
 Function value: pure virtual (MUST be implemented by derived class)
 
virtual DRetDArg parDer (const Arg &arg)
 First derivative: partial derivative of the function value with respect to the argument.
 
virtual Ret dirDer (const Arg &argDir, const Arg &arg)
 First derivative: directional derivative of the function value with respect to the argument.
 
virtual DDRetDDArg parDerParDer (const Arg &arg)
 Second derivative: partial derivative of parDer with respect to the argument.
 
virtual DRetDArg parDerDirDer (const Arg &argDir, const Arg &arg)
 Second derivative: directional derivative of parDer with respect to the argument.
 
virtual Ret dirDerDirDer (const Arg &argDir_1, const Arg &argDir_2, const Arg &arg)
 Second derivative: directional derivative of dirDer with respect to the argument.
 
virtual bool constParDer () const
 Returns true, if the partial derivative of the function value with respect to the 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 argSize = StaticSize<Arg>::size1
 Compile time size of the 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 Arg>
class fmatvec::Function< Ret(Arg)>

A function object with 1 argument.


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML