25 #include <queso/GenericVectorFunction.h>
26 #include <queso/GslVector.h>
27 #include <queso/GslMatrix.h>
32 template<
class P_V,
class P_M,
class Q_V,
class Q_M>
37 void (*routinePtr)(
const P_V& domainVector,
38 const P_V* domainDirection,
39 const void* functionDataPtr,
44 const void* functionDataPtr)
49 m_routinePtr (routinePtr),
50 m_routineDataPtr(functionDataPtr)
55 template<
class P_V,
class P_M,
class Q_V,
class Q_M>
61 template<
class P_V,
class P_M,
class Q_V,
class Q_M>
64 const P_V& domainVector,
65 const P_V* domainDirection,
76 m_routinePtr(domainVector, domainDirection, m_routineDataPtr, imageVector, gradVectors, hessianMatrices, hessianEffects);
A templated (base) class for handling vector functions.
virtual ~GenericVectorFunction()
Virtual destructor.
A class for handling generic vector functions.
void compute(const P_V &domainVector, const P_V *domainDirection, Q_V &imageVector, DistArray< P_V * > *gradVectors, DistArray< P_M * > *hessianMatrices, DistArray< P_V * > *hessianEffects) const
Calls the protected member *m_routinePtr(), in order to calculate the image vector imageVector...
A class for partitioning vectors and matrices.
GenericVectorFunction(const char *prefix, const VectorSet< P_V, P_M > &domainSet, const VectorSet< Q_V, Q_M > &imageSet, void(*routinePtr)(const P_V &domainVector, const P_V *domainDirection, const void *functionDataPtr, Q_V &imageVector, DistArray< P_V * > *gradVectors, DistArray< P_M * > *hessianMatrices, DistArray< P_V * > *hessianEffects), const void *functionDataPtr)
Default constructor.