![]() |
SG++-Doxygen-Documentation
|
Abstract base class for scalar-valued functions \(f\colon [0, 1]^d \to \mathbb{R}\) together with their gradients \(\nabla f\colon [0, 1]^d \to \mathbb{R}^d\) and Hessians \(H_f\colon [0, 1]^d \to \mathbb{R}^{d \times d}\) (e.g., Hessians of objective functions in optimization). More...
#include <ScalarFunctionHessian.hpp>
Public Member Functions | |
virtual void | clone (std::unique_ptr< ScalarFunctionHessian > &clone) const =0 |
Pure virtual method for cloning the Hessian. | |
void | eval (const DataMatrix &x, DataVector &value, DataMatrix &gradient, std::vector< DataMatrix > &hessian) |
Convenience method for calculating \(f(\vec{x})\) together with \(\nabla f(\vec{x})\) and \(H_f(\vec{x}) \in \mathbb{R}^{d \times d}\) for multiple \(\vec{x}\). | |
virtual double | eval (const DataVector &x, DataVector &gradient, DataMatrix &hessian)=0 |
Pure virtual method for calculating \(f(\vec{x})\) together with \(\nabla f(\vec{x})\) and \(H_f(\vec{x}) \in \mathbb{R}^{d \times d}\). | |
size_t | getNumberOfParameters () const |
ScalarFunctionHessian (size_t d) | |
Constructor. | |
virtual | ~ScalarFunctionHessian () |
Destructor. | |
Protected Attributes | |
size_t | d |
dimension of the domain | |
Abstract base class for scalar-valued functions \(f\colon [0, 1]^d \to \mathbb{R}\) together with their gradients \(\nabla f\colon [0, 1]^d \to \mathbb{R}^d\) and Hessians \(H_f\colon [0, 1]^d \to \mathbb{R}^{d \times d}\) (e.g., Hessians of objective functions in optimization).
|
inlineexplicit |
Constructor.
d | dimension of the domain |
|
inlinevirtual |
Destructor.
|
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::base::ComponentScalarFunctionHessian, sgpp::base::InterpolantScalarFunctionHessian, sgpp::base::ScaledScalarFunctionHessian, and sgpp::base::WrapperScalarFunctionHessian.
|
inline |
Convenience method for calculating \(f(\vec{x})\) together with \(\nabla f(\vec{x})\) and \(H_f(\vec{x}) \in \mathbb{R}^{d \times d}\) for multiple \(\vec{x}\).
x | matrix \(\vec{x} \in [0, 1]^{N \times d}\) of evaluation points (row-wise) | |
[out] | value | vector of size \(N\), where the \(k\)-th entry is \(f(\vec{x}_k)\) (where \(\vec{x}_k\) is the \(k\)-th row of \(x\)) |
[out] | gradient | matrix of size \(N \times d\) where the \(k\)-th row is \(\nabla f(\vec{x}_k)\) |
[out] | hessian | \(N\)-vector of Hessians \(\nabla^2 f(\vec{x}_k) \in \mathbb{R}^{d \times d}\) |
References d, eval(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataMatrix::getRow(), sgpp::base::DataMatrix::resize(), and sgpp::base::DataMatrix::setRow().
Referenced by python.uq.analysis.asgc.ASGCAnalysis.ASGCAnalysis::estimateDensity().
|
pure virtual |
Pure virtual method for calculating \(f(\vec{x})\) together with \(\nabla f(\vec{x})\) and \(H_f(\vec{x}) \in \mathbb{R}^{d \times d}\).
x | evaluation point \(\vec{x} \in [0, 1]^d\) | |
[out] | gradient | gradient \(\nabla f(\vec{x}) \in \mathbb{R}^d\) |
[out] | hessian | Hessian matrix \(H_f(\vec{x}) \in \mathbb{R}^{d \times d}\) |
Implemented in sgpp::base::ComponentScalarFunctionHessian, sgpp::base::InterpolantScalarFunctionHessian, sgpp::base::ScaledScalarFunctionHessian, and sgpp::base::WrapperScalarFunctionHessian.
Referenced by python.uq.analysis.asgc.ASGCAnalysis.ASGCAnalysis::estimateDensity(), eval(), and sgpp::base::ComponentScalarFunctionHessian::eval().
|
inline |
References d.
|
protected |
dimension of the domain
Referenced by sgpp::base::WrapperScalarFunctionHessian::clone(), eval(), sgpp::base::InterpolantScalarFunctionHessian::eval(), sgpp::base::ScaledScalarFunctionHessian::eval(), and getNumberOfParameters().