RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
optimize.hpp File Reference
#include <randlib/math/constants.hpp>
#include <algorithm>
#include <cmath>
#include <concepts>
#include <functional>
#include <limits>
#include <numeric>
#include <span>
#include <tuple>
#include <vector>
Include dependency graph for optimize.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  randlib::math::MinimizeResult< Real >
 The MinimizeResult struct Outcome of a multivariate minimization. More...
 

Namespaces

namespace  randlib
 
namespace  randlib::math
 Beta-related functions.
 

Functions

template<typename RealType >
double randlib::math::parabolicMinimum (RealType a, RealType b, RealType c, double fa, double fb, double fc)
 
template<typename RealType >
bool randlib::math::findMin (const std::function< double(RealType)> &funPtr, const Triplet< RealType > &abc, double &fx, RealType &root, double epsilon)
 Combined Brent's method.
 
template<typename RealType >
bool randlib::math::findMin (const std::function< double(RealType)> &funPtr, RealType closePoint, RealType &root, long double epsilon=1e-8)
 Combined Brent's method.
 
template<std::floating_point Real = double, class F >
MinimizeResult< Real > randlib::math::nelderMead (const F &f, std::vector< Real > start, Real tolerance=1e-10, int maxIterations=20000)
 Downhill simplex method of Nelder and Mead with the dimension-dependent coefficients of Gao and Han (2012).
 
template<std::floating_point Real = double, class F >
std::vector< Real > randlib::math::numericalGradient (const F &f, const std::vector< Real > &x)
 
template<std::floating_point Real = double, class F >
std::vector< std::vector< Real > > randlib::math::numericalHessian (const F &f, const std::vector< Real > &x)
 
template<std::floating_point Real = double, class F >
MinimizeResult< Real > randlib::math::bfgs (const F &f, std::vector< Real > start, Real tolerance=1e-8, int maxIterations=1000)
 Quasi-Newton minimization of Broyden, Fletcher, Goldfarb and Shanno with central-difference gradients and a backtracking line search under the Armijo condition.