8#ifndef INCLUDED_ALG_REMEZ_GENERAL_H
9#define INCLUDED_ALG_REMEZ_GENERAL_H
51 std::vector<bigfloat>
xx;
52 std::vector<bigfloat>
mm;
53 std::vector<bigfloat>
step;
58 std::vector<bigfloat>
yy;
61 std::vector<bigfloat>
A;
62 std::vector<bigfloat>
B;
120 inline void getBounds(
double &lower,
double &upper)
const{
128 const double tolerance = 1e-15,
const int report_freq = 1000);
131 const double tolerance = 1e-15,
const int report_freq = 1000){
157 void csv(std::ostream &os = std::cout)
const;
165 if(i ==
pow_d)
return 1.0;
std::vector< bigfloat > xx
std::vector< bigfloat > A
double generateApprox(int num_degree, int den_degree, PolyType num_type, PolyType den_type, const double tolerance=1e-15, const int report_freq=1000)
void setupPolyProperties(int num_degree, int den_degree, PolyType num_type_in, PolyType den_type_in)
std::vector< int > num_pows
double evaluateApprox(double x) const
bigfloat approx(bigfloat x) const
bigfloat func(bigfloat x) const
void csv(std::ostream &os=std::cout) const
bigfloat(* f)(bigfloat x, void *data)
double getCoeffNum(const int i) const
bigfloat getErr(bigfloat x, int *sign) const
double evaluateFunc(double x) const
void setBounds(double lower, double upper)
std::vector< bigfloat > param
void reinitializeAlgorithm()
double getCoeffDen(const int i) const
double evaluateInverseFunc(double x) const
AlgRemezGeneral(double lower, double upper, long prec, bigfloat(*f)(bigfloat x, void *data), void *data)
void getBounds(double &lower, double &upper) const
std::vector< bigfloat > step
double evaluateInverseApprox(double x) const
std::vector< bigfloat > B
int getDegree(void) const
std::vector< int > den_pows
double generateApprox(int num_degree, int den_degree, const double tolerance=1e-15, const int report_freq=1000)
std::vector< bigfloat > mm
std::vector< bigfloat > yy