24#include "AstMath/UnaryOptimizer.hpp"
36 using UnaryOptimizer::UnaryOptimizer;
39 using UnaryOptimizer::solve;
40 errc_t
solve(
UnaryScalarFunc& func,
double min,
double max,
double& result,
double* funcValue =
nullptr)
override;
55template<
typename Func>
57 double* funcValue =
nullptr,
58 double absTol = kDefaultAbsTol,
double relTol = kDefaultRelTol,
59 int maxIter = kDefaultMaxIter)
62 return solver.
solve(func, min, max, result, funcValue);
75AST_MATH_API errc_t aBrentMinimize(UnaryScalarFunc& func,
double min,
double max,
double& result,
76 double* funcValue =
nullptr,
77 double absTol = kDefaultAbsTol,
double relTol = kDefaultRelTol,
78 int maxIter = kDefaultMaxIter);
Brent法求解器
定义 BrentOptimizer.hpp:34
errc_t solve(UnaryScalarFunc &func, double min, double max, double &result, double *funcValue=nullptr) override
求解一元函数在区间内的极小值点
定义 BrentOptimizer.cpp:39
一元函数极小值求解器基类
定义 UnaryOptimizer.hpp:53
std::enable_if<!std::is_base_of< UnaryScalarFunc, typenamestd::remove_pointer< Func >::type >::value, errc_t >::type solve(Func func, double min, double max, double &result, double *funcValue=nullptr)
求解一元函数极小值点(支持lambda函数)
定义 UnaryOptimizer.hpp:96
一元标量值函数
定义 UnaryScalarFunc.hpp:31
errc_t aBrentMinimize(UnaryScalarFunc &func, double min, double max, double &result, double *funcValue, double absTol, double relTol, int maxIter)
Brent法自由函数:寻找一元函数在 [min, max] 内的极小值点
定义 BrentOptimizer.cpp:158