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.

## ◆ 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.

## ◆ 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 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 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 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 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 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 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 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: