Public Types | Public Member Functions | List of all members
ldaplusplus::optimization::LineSearch< ProblemType, ParameterType > Class Template Referenceabstract

#include <GradientDescent.hpp>

Inheritance diagram for ldaplusplus::optimization::LineSearch< ProblemType, ParameterType >:
ldaplusplus::optimization::ArmijoLineSearch< ProblemType, ParameterType > ldaplusplus::optimization::ConstantLineSearch< ProblemType, ParameterType >

Public Types

typedef ParameterType::Scalar Scalar

Public Member Functions

virtual Scalar search (const ProblemType &problem, Eigen::Ref< ParameterType > x0, const ParameterType &grad_x0, const ParameterType &direction)=0

Detailed Description

template<typename ProblemType, typename ParameterType>
class ldaplusplus::optimization::LineSearch< ProblemType, ParameterType >

LineSearch is an interface that is meant to be used to update the parameter x0 in the direction 'direction' by (probably) performing a line search for the best value.

Member Function Documentation

template<typename ProblemType , typename ParameterType >
virtual Scalar ldaplusplus::optimization::LineSearch< ProblemType, ParameterType >::search ( const ProblemType &  problem,
Eigen::Ref< ParameterType >  x0,
const ParameterType &  grad_x0,
const ParameterType &  direction 
pure virtual

Search for a good enough function value in the direction given and the function given.

This function changes its parameter x0 which is passed by reference.

problemThe function to be minimized
x0The improved position (passed by reference)
grad_x0The gradient at the initial x0
directionThe direction of search which can be different than the gradient to account for Newton methods
The function value at the final x0

Implemented in ldaplusplus::optimization::ArmijoLineSearch< ProblemType, ParameterType >, and ldaplusplus::optimization::ConstantLineSearch< ProblemType, ParameterType >.

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