SG++-Doxygen-Documentation
sgpp::optimization::VectorFunctionHessian Class Referenceabstract

Abstract base class for vector-valued functions \(g\colon [0, 1]^d \to \mathbb{R}^m\) together with their Jacobians \(\nabla g\colon [0, 1]^d \to \mathbb{R}^{m \times d}\), i.e. More...

#include <VectorFunctionHessian.hpp>

Inheritance diagram for sgpp::optimization::VectorFunctionHessian:
sgpp::optimization::InterpolantVectorFunctionHessian sgpp::optimization::WrapperVectorFunctionHessian

Public Member Functions

virtual void clone (std::unique_ptr< VectorFunctionHessian > &clone) const =0
 Pure virtual method for cloning the Hessian. More...
 
virtual void eval (const base::DataVector &x, base::DataVector &value, base::DataMatrix &gradient, std::vector< base::DataMatrix > &hessian)=0
 Pure virtual method for calculating \(g(\vec{x})\) together with \(\nabla g(\vec{x})\). More...
 
size_t getNumberOfComponents () const
 
size_t getNumberOfParameters () const
 
 VectorFunctionHessian (size_t d, size_t m)
 Constructor. More...
 
virtual ~VectorFunctionHessian ()
 Destructor. More...
 

Protected Attributes

size_t d
 dimension of the domain More...
 
size_t m
 number of components More...
 

Detailed Description

Abstract base class for vector-valued functions \(g\colon [0, 1]^d \to \mathbb{R}^m\) together with their Jacobians \(\nabla g\colon [0, 1]^d \to \mathbb{R}^{m \times d}\), i.e.

\((\nabla g)_{i,t} = \frac{\partial}{\partial x_t} g_i\) with \(g = (g_i)_{i=1}^m\), and their Hessians \(\nabla g\colon [0, 1]^d \to \mathbb{R}^{m \times d \times d}\), i.e. \((\nabla^2 g)_{i,t_1,t_2} = \frac{\partial^2}{\partial x_{t_1} x_{t_2}} g_i\) (e.g., equality/inequality constraints \(g(\vec{x}) \le \vec{0}\) or \(g(\vec{x}) = \vec{0}\) in optimization).

Constructor & Destructor Documentation

◆ VectorFunctionHessian()

sgpp::optimization::VectorFunctionHessian::VectorFunctionHessian ( size_t  d,
size_t  m 
)
inline

Constructor.

Parameters
ddimension of the domain
mnumber of components

◆ ~VectorFunctionHessian()

virtual sgpp::optimization::VectorFunctionHessian::~VectorFunctionHessian ( )
inlinevirtual

Destructor.

References eval().

Member Function Documentation

◆ clone()

virtual void sgpp::optimization::VectorFunctionHessian::clone ( std::unique_ptr< VectorFunctionHessian > &  clone) const
pure virtual

Pure virtual method for cloning the Hessian.

It should generate a pointer to the cloned object and it's used for parallel computations (the eval() method might not be thread-safe).

Parameters
[out]clonepointer to cloned object

Implemented in sgpp::optimization::InterpolantVectorFunctionHessian, and sgpp::optimization::WrapperVectorFunctionHessian.

Referenced by getNumberOfComponents().

◆ eval()

virtual void sgpp::optimization::VectorFunctionHessian::eval ( const base::DataVector x,
base::DataVector value,
base::DataMatrix gradient,
std::vector< base::DataMatrix > &  hessian 
)
pure virtual

Pure virtual method for calculating \(g(\vec{x})\) together with \(\nabla g(\vec{x})\).

Parameters
[in]xevaluation point \(\vec{x} \in [0, 1]^d\)
[out]value\(g(\vec{x})\)
[out]gradientJacobian \(\nabla g(\vec{x}) \in \mathbb{R}^{m \times d}\)
[out]hessian\(m\)-vector of Hessians \(\nabla^2 g_i(\vec{x}) \in \mathbb{R}^{d \times d}\)

Implemented in sgpp::optimization::InterpolantVectorFunctionHessian, and sgpp::optimization::WrapperVectorFunctionHessian.

Referenced by sgpp::optimization::ComponentScalarFunctionHessian::eval(), and ~VectorFunctionHessian().

◆ getNumberOfComponents()

size_t sgpp::optimization::VectorFunctionHessian::getNumberOfComponents ( ) const
inline
Returns
number \(m\) of components

References clone(), and m.

◆ getNumberOfParameters()

size_t sgpp::optimization::VectorFunctionHessian::getNumberOfParameters ( ) const
inline
Returns
dimension \(d\) of the domain

References d.

Member Data Documentation

◆ d

size_t sgpp::optimization::VectorFunctionHessian::d
protected

◆ m

size_t sgpp::optimization::VectorFunctionHessian::m
protected

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