Developer documentation
Version 3.0.3-105-gd3941f44
MR::Math::GradientDescentBB< Function, UpdateFunctor > Class Template Reference

Computes the minimum of a function using a Barzilai Borwein gradient descent approach. ENH: implement stabilised version https://arxiv.org/abs/1907.06409. More...

#include "math/gradient_descent_bb.h"

Protected Member Functions

value_type evaluate_func (const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > &newx, Eigen::Matrix< value_type, Eigen::Dynamic, 1 > &newg, bool verbose=false)
 
void compute_normg_and_step ()
 

Protected Attributes

Function & func
 
UpdateFunctor update_func
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > x1
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > x2
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > x3
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > g1
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > g2
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > g3
 
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > preconditioner_weights
 
value_type f
 
value_type dt
 
value_type normg
 
size_t nfeval
 
size_t niter
 
bool verbose
 
std::string delim
 

Detailed Description

template<class Function, class UpdateFunctor = LinearUpdateBB>
class MR::Math::GradientDescentBB< Function, UpdateFunctor >

Computes the minimum of a function using a Barzilai Borwein gradient descent approach. ENH: implement stabilised version https://arxiv.org/abs/1907.06409.

Definition at line 50 of file gradient_descent_bb.h.

Member Function Documentation

◆ compute_normg_and_step()

template<class Function , class UpdateFunctor = LinearUpdateBB>
void MR::Math::GradientDescentBB< Function, UpdateFunctor >::compute_normg_and_step ( )
inlineprotected

Definition at line 222 of file gradient_descent_bb.h.

◆ evaluate_func()

template<class Function , class UpdateFunctor = LinearUpdateBB>
value_type MR::Math::GradientDescentBB< Function, UpdateFunctor >::evaluate_func ( const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > &  newx,
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > &  newg,
bool  verbose = false 
)
inlineprotected

Definition at line 209 of file gradient_descent_bb.h.

Member Data Documentation

◆ delim

template<class Function , class UpdateFunctor = LinearUpdateBB>
std::string MR::Math::GradientDescentBB< Function, UpdateFunctor >::delim
protected

Definition at line 207 of file gradient_descent_bb.h.

◆ dt

template<class Function , class UpdateFunctor = LinearUpdateBB>
value_type MR::Math::GradientDescentBB< Function, UpdateFunctor >::dt
protected

Definition at line 203 of file gradient_descent_bb.h.

◆ f

template<class Function , class UpdateFunctor = LinearUpdateBB>
value_type MR::Math::GradientDescentBB< Function, UpdateFunctor >::f
protected

Definition at line 203 of file gradient_descent_bb.h.

◆ func

template<class Function , class UpdateFunctor = LinearUpdateBB>
Function& MR::Math::GradientDescentBB< Function, UpdateFunctor >::func
protected

Definition at line 200 of file gradient_descent_bb.h.

◆ g1

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::g1
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ g2

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::g2
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ g3

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::g3
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ nfeval

template<class Function , class UpdateFunctor = LinearUpdateBB>
size_t MR::Math::GradientDescentBB< Function, UpdateFunctor >::nfeval
protected

Definition at line 204 of file gradient_descent_bb.h.

◆ niter

template<class Function , class UpdateFunctor = LinearUpdateBB>
size_t MR::Math::GradientDescentBB< Function, UpdateFunctor >::niter
protected

Definition at line 205 of file gradient_descent_bb.h.

◆ normg

template<class Function , class UpdateFunctor = LinearUpdateBB>
value_type MR::Math::GradientDescentBB< Function, UpdateFunctor >::normg
protected

Definition at line 203 of file gradient_descent_bb.h.

◆ preconditioner_weights

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::preconditioner_weights
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ update_func

template<class Function , class UpdateFunctor = LinearUpdateBB>
UpdateFunctor MR::Math::GradientDescentBB< Function, UpdateFunctor >::update_func
protected

Definition at line 201 of file gradient_descent_bb.h.

◆ verbose

template<class Function , class UpdateFunctor = LinearUpdateBB>
bool MR::Math::GradientDescentBB< Function, UpdateFunctor >::verbose
protected

Definition at line 206 of file gradient_descent_bb.h.

◆ x1

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::x1
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ x2

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::x2
protected

Definition at line 202 of file gradient_descent_bb.h.

◆ x3

template<class Function , class UpdateFunctor = LinearUpdateBB>
Eigen::Matrix<value_type, Eigen::Dynamic, 1> MR::Math::GradientDescentBB< Function, UpdateFunctor >::x3
protected

Definition at line 202 of file gradient_descent_bb.h.


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