25 #ifndef UQ_GENERIC_SCALAR_FUNCTION_H
26 #define UQ_GENERIC_SCALAR_FUNCTION_H
28 #include <queso/ScalarFunction.h>
29 #include <queso/VectorSet.h>
30 #include <queso/VectorSubset.h>
31 #include <queso/Environment.h>
32 #include <queso/Defines.h>
45 template <
class V = GslVector,
class M = GslMatrix>
56 double (*valueRoutinePtr)(
const V& domainVector,
const V* domainDirection,
const void* routinesDataPtr, V* gradVector, M* hessianMatrix, V* hessianEffect),
57 const void* routinesDataPtr,
64 double actualValue (
const V& domainVector,
const V* domainDirection, V* gradVector, M* hessianMatrix, V* hessianEffect)
const;
69 double lnValue (
const V& domainVector,
const V* domainDirection, V* gradVector, M* hessianMatrix, V* hessianEffect)
const;
81 double (*
m_valueRoutinePtr)(
const V& domainVector,
const V* domainDirection,
const void* routinesDataPtr, V* gradVector, M* hessianMatrix, V* hessianEffect);
88 #endif // UQ_GENERIC_SCALAR_FUNCTION_H
const void * m_routinesDataPtr
A templated class for handling sets.
A class for handling generic scalar functions.
double actualValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Calculates the actual value of this scalar function.
A templated (base) class for handling scalar functions.
GenericScalarFunction(const char *prefix, const VectorSet< V, M > &domainSet, double(*valueRoutinePtr)(const V &domainVector, const V *domainDirection, const void *routinesDataPtr, V *gradVector, M *hessianMatrix, V *hessianEffect), const void *routinesDataPtr, bool routineIsForLn)
Default constructor.
const VectorSet< V, M > & domainSet() const
Access to the protected attribute m_domainSet: domain set of the scalar function. ...
double(* m_valueRoutinePtr)(const V &domainVector, const V *domainDirection, const void *routinesDataPtr, V *gradVector, M *hessianMatrix, V *hessianEffect)
Routine defining a scalar function.
virtual ~GenericScalarFunction()
Virtual destructor.
double lnValue(const V &domainVector, const V *domainDirection, V *gradVector, M *hessianMatrix, V *hessianEffect) const
Calculates the logarithm of value of this scalar function.