fmatvec  0.0.0
fmatvec::Function< Ret(Arg)> Class Template Referenceabstract

A function object with 1 argument. More...

#include <function.h>

Inheritance diagram for fmatvec::Function< Ret(Arg)>:
[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 DRetDArg = typename Der< Ret, Arg >::type
 
using DRetDDir = typename DirDer< Ret, Arg >::type
 
using DDRetDDArg = typename Der< DRetDArg, Arg >::type
 
using RetType = Ret
 
using ArgType = boost::mpl::list< Arg >
 
- 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 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 DRetDDir 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 DRetDDir 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 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 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 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.
 

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: