SG++-Doxygen-Documentation
|
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>
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... | |
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).
|
inline |
Constructor.
d | dimension of the domain |
m | number of components |
|
inlinevirtual |
Destructor.
References eval().
|
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).
[out] | clone | pointer to cloned object |
Implemented in sgpp::optimization::InterpolantVectorFunctionHessian, and sgpp::optimization::WrapperVectorFunctionHessian.
Referenced by getNumberOfComponents().
|
pure virtual |
Pure virtual method for calculating \(g(\vec{x})\) together with \(\nabla g(\vec{x})\).
[in] | x | evaluation point \(\vec{x} \in [0, 1]^d\) |
[out] | value | \(g(\vec{x})\) |
[out] | gradient | Jacobian \(\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().
|
inline |
|
inline |
References d.
|
protected |
dimension of the domain
Referenced by sgpp::optimization::WrapperVectorFunctionHessian::clone(), sgpp::optimization::InterpolantVectorFunctionHessian::eval(), and getNumberOfParameters().
|
protected |
number of components
Referenced by sgpp::optimization::WrapperVectorFunctionHessian::clone(), and getNumberOfComponents().