DiFfRG
Loading...
Searching...
No Matches
DiFfRG::AbstractMinimizer< dim > Class Template Referenceabstract

Abstract class for minimization in arbitrary dimensions. More...

#include <minimization.hh>

Inheritance diagram for DiFfRG::AbstractMinimizer< dim >:
DiFfRG::GSLSimplexMinimizer< dim >

Public Member Functions

 AbstractMinimizer (const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
 Construct a new AbstractMinimizer object.
 
void set_abs_tol (const double abs_tol)
 Set the absolute tolerance for the minimization.
 
void set_max_iter (const uint max_iter)
 Set the maximum number of iterations.
 
uint get_iter () const
 Get the number of iterations used in the last minimization.
 
std::array< double, dim > minimize ()
 Perform the minimization.
 

Protected Types

using FUN = std::function<double(const std::array<double, dim> &)>
 

Protected Member Functions

virtual std::array< double, dim > minimize_impl ()=0
 

Protected Attributes

FUN f
 
double abs_tol
 
uint max_iter
 
uint iter
 

Detailed Description

template<int dim>
class DiFfRG::AbstractMinimizer< dim >

Abstract class for minimization in arbitrary dimensions.

Template Parameters
dimDimension of the minimization problem.

Member Typedef Documentation

◆ FUN

template<int dim>
using DiFfRG::AbstractMinimizer< dim >::FUN = std::function<double(const std::array<double, dim> &)>
protected

Constructor & Destructor Documentation

◆ AbstractMinimizer()

template<int dim>
DiFfRG::AbstractMinimizer< dim >::AbstractMinimizer ( const FUN & f,
const double abs_tol = 1e-4,
const int max_iter = 1000 )
inline

Construct a new AbstractMinimizer object.

Parameters
fObjective function to minimize. Must take a std::array<double, dim> as input and return a double.
abs_tolAbsolute tolerance for the minimization.
max_iterMaximum number of iterations.

Member Function Documentation

◆ get_iter()

template<int dim>
uint DiFfRG::AbstractMinimizer< dim >::get_iter ( ) const
inline

Get the number of iterations used in the last minimization.

Returns
uint Number of iterations.

◆ minimize()

template<int dim>
std::array< double, dim > DiFfRG::AbstractMinimizer< dim >::minimize ( )
inline

Perform the minimization.

Returns
std::array<double, dim> Minimimum of the objective function.

◆ minimize_impl()

template<int dim>
virtual std::array< double, dim > DiFfRG::AbstractMinimizer< dim >::minimize_impl ( )
protectedpure virtual

◆ set_abs_tol()

template<int dim>
void DiFfRG::AbstractMinimizer< dim >::set_abs_tol ( const double abs_tol)
inline

Set the absolute tolerance for the minimization.

Parameters
abs_tolAbsolute tolerance.

◆ set_max_iter()

template<int dim>
void DiFfRG::AbstractMinimizer< dim >::set_max_iter ( const uint max_iter)
inline

Set the maximum number of iterations.

Parameters
max_iterMaximum number of iterations.

Member Data Documentation

◆ abs_tol

template<int dim>
double DiFfRG::AbstractMinimizer< dim >::abs_tol
protected

◆ f

template<int dim>
FUN DiFfRG::AbstractMinimizer< dim >::f
protected

◆ iter

template<int dim>
uint DiFfRG::AbstractMinimizer< dim >::iter
protected

◆ max_iter

template<int dim>
uint DiFfRG::AbstractMinimizer< dim >::max_iter
protected

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