DiFfRG
Loading...
Searching...
No Matches
DiFfRG::GSLMinimizer1D Class Reference

Minimizer in 1D using either the golden section, Brent or quadratic method from GSL. More...

#include <minimization.hh>

Inheritance diagram for DiFfRG::GSLMinimizer1D:
DiFfRG::AbstractMinimizer< 1 >

Public Types

enum  method { golden_section , brent , quadratic }
 List of available minimization methods. More...
 

Public Member Functions

 GSLMinimizer1D (const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
 Construct a new GSLMinimizer1D object.
 
void set_x0 (const double x0)
 Set the initial guess for the minimization.
 
void set_bounds (const double min_x, const double max_x)
 Set the bounds for the minimization.
 
void set_method (const method m)
 Set the minimization method. Default is Brent.
 
void set_rel_tol (const double rel_tol)
 Set the relative tolerance for the minimization. Default is 0.
 
- Public Member Functions inherited from DiFfRG::AbstractMinimizer< 1 >
 AbstractMinimizer (const FUN &f, const double abs_tol=1e-4, const int max_iter=1000)
 Construct a new AbstractMinimizer object.
 
 AbstractMinimizer (const FUN_ARR &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.
 
double minimize ()
 Perform the minimization.
 

Protected Member Functions

virtual std::array< double, 1 > minimize_impl () override
 
- Protected Member Functions inherited from DiFfRG::AbstractMinimizer< 1 >

Static Protected Member Functions

static double gsl_wrap (double x, void *params)
 

Protected Attributes

double x0
 
double min_x
 
double max_x
 
double rel_tol
 
method m
 
- Protected Attributes inherited from DiFfRG::AbstractMinimizer< 1 >
FUN_ARR f
 
double abs_tol
 
uint max_iter
 
uint iter
 

Private Types

using FUN = AbstractMinimizer<1>::FUN
 

Additional Inherited Members

- Protected Types inherited from DiFfRG::AbstractMinimizer< 1 >
using FUN = std::function<double(const double)>
 
using FUN_ARR = std::function<double(const std::array<double, 1> &)>
 

Detailed Description

Minimizer in 1D using either the golden section, Brent or quadratic method from GSL.

Member Typedef Documentation

◆ FUN

Member Enumeration Documentation

◆ method

List of available minimization methods.

Enumerator
golden_section 
brent 
quadratic 

Constructor & Destructor Documentation

◆ GSLMinimizer1D()

DiFfRG::GSLMinimizer1D::GSLMinimizer1D ( const FUN & f,
const double abs_tol = 1e-4,
const int max_iter = 1000 )
inline

Construct a new GSLMinimizer1D object.

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

Member Function Documentation

◆ gsl_wrap()

static double DiFfRG::GSLMinimizer1D::gsl_wrap ( double x,
void * params )
inlinestaticprotected

◆ minimize_impl()

virtual std::array< double, 1 > DiFfRG::GSLMinimizer1D::minimize_impl ( )
inlineoverrideprotectedvirtual

◆ set_bounds()

void DiFfRG::GSLMinimizer1D::set_bounds ( const double min_x,
const double max_x )
inline

Set the bounds for the minimization.

Parameters
min_xLower bound.
max_xUpper bound.

◆ set_method()

void DiFfRG::GSLMinimizer1D::set_method ( const method m)
inline

Set the minimization method. Default is Brent.

Parameters
mMinimization method.

◆ set_rel_tol()

void DiFfRG::GSLMinimizer1D::set_rel_tol ( const double rel_tol)
inline

Set the relative tolerance for the minimization. Default is 0.

Parameters
rel_tolRelative tolerance.

◆ set_x0()

void DiFfRG::GSLMinimizer1D::set_x0 ( const double x0)
inline

Set the initial guess for the minimization.

Parameters
x0Initial guess.

Member Data Documentation

◆ m

method DiFfRG::GSLMinimizer1D::m
protected

◆ max_x

double DiFfRG::GSLMinimizer1D::max_x
protected

◆ min_x

double DiFfRG::GSLMinimizer1D::min_x
protected

◆ rel_tol

double DiFfRG::GSLMinimizer1D::rel_tol
protected

◆ x0

double DiFfRG::GSLMinimizer1D::x0
protected

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