24#include "AstMath/Function.hpp"
25#include "AstMath/SolverStats.h"
45 virtual errc_t
solve(
UnaryScalarFunc& func,
double min,
double max,
double& result,
double* funcValue =
nullptr) = 0;
55 using IUnaryOptimizer::solve;
78 void setRelTol(
double relTol) { relTol_ = relTol; };
80 void setAbsTol(
double absTol) { absTol_ = absTol; };
94 template<
typename Func>
95 typename std::enable_if<!std::is_base_of<UnaryScalarFunc, typename std::remove_pointer<Func>::type>::value, errc_t>::type
96 solve(Func func,
double min,
double max,
double& result,
double* funcValue =
nullptr) {
98 return this->solve(adapter, min, max, result, funcValue);
一元函数极小值求解器接口
定义 UnaryOptimizer.hpp:35
virtual errc_t solve(UnaryScalarFunc &func, double min, double max, double &result, double *funcValue=nullptr)=0
求解一元函数在区间内的极小值点
一元函数极小值求解器基类
定义 UnaryOptimizer.hpp:53
double relTol_
相对误差容限
定义 UnaryOptimizer.hpp:102
int getMaxIter() const
获取最大迭代次数
定义 UnaryOptimizer.hpp:75
void setMaxIter(int maxIter)
设置最大迭代次数
定义 UnaryOptimizer.hpp:82
int maxIter_
最大迭代次数
定义 UnaryOptimizer.hpp:104
double absTol_
绝对误差容限
定义 UnaryOptimizer.hpp:103
void setRelTol(double relTol)
设置相对误差容限
定义 UnaryOptimizer.hpp:78
double getRelTol() const
获取相对误差容限
定义 UnaryOptimizer.hpp:71
const SolverStats & getStats() const
获取求解器统计信息
定义 UnaryOptimizer.hpp:85
void setAbsTol(double absTol)
设置绝对误差容限
定义 UnaryOptimizer.hpp:80
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
double getAbsTol() const
获取绝对误差容限
定义 UnaryOptimizer.hpp:73
一元标量值函数
定义 UnaryScalarFunc.hpp:31
泛型一元函数适配器
定义 UnaryScalarFunc.hpp:48
求解器统计信息
定义 SolverStats.h:30