Grid 0.7.0
AlgRemez Class Reference

#include <Remez.h>

Public Member Functions

 AlgRemez (double lower, double upper, long prec)
virtual ~AlgRemez ()
int getDegree (void)
void setBounds (double lower, double upper)
void getBounds (double &lower, double &upper)
double generateApprox (int num_degree, int den_degree, unsigned long power_num, unsigned long power_den, int a_len, double *a_param, int *a_pow)
double generateApprox (int num_degree, int den_degree, unsigned long power_num, unsigned long power_den)
double generateApprox (int degree, unsigned long power_num, unsigned long power_den)
int getPFE (double *res, double *pole, double *norm)
int getIPFE (double *res, double *pole, double *norm)
double evaluateApprox (double x)
double evaluateInverseApprox (double x)
double evaluateFunc (double x)
double evaluateInverseFunc (double x)
void csv (std::ostream &os)

Private Member Functions

void initialGuess ()
void equations ()
void search (bigfloat *step)
void stpini (bigfloat *step)
int root ()
bigfloat polyEval (bigfloat x, bigfloat *poly, long size)
bigfloat polyDiff (bigfloat x, bigfloat *poly, long size)
bigfloat rtnewt (bigfloat *poly, long i, bigfloat x1, bigfloat x2, bigfloat xacc)
void pfe (bigfloat *res, bigfloat *poles, bigfloat norm)
bigfloat func (bigfloat x)
bigfloat getErr (bigfloat x, int *sign)
int simq (bigfloat *A, bigfloat *B, bigfloat *X, int n)
void allocate (int num_degree, int den_degree)
bigfloat approx (bigfloat x)

Private Attributes

char * cname
bigfloatparam
bigfloatroots
bigfloatpoles
bigfloat norm
int n
int d
bigfloat apstrt
bigfloat apwidt
bigfloat apend
unsigned long power_num
unsigned long power_den
int alloc
int foundRoots
int nd1
int iter
bigfloatxx
bigfloatmm
bigfloatstep
bigfloat delta
bigfloat spread
bigfloat tolerance
bigfloata
int * a_power
int a_length
int neq
long prec

Detailed Description

Definition at line 39 of file Remez.h.

Constructor & Destructor Documentation

◆ AlgRemez()

AlgRemez::AlgRemez ( double lower,
double upper,
long prec )

Definition at line 26 of file Remez.cc.

References alloc, apend, apstrt, apwidt, d, foundRoots, n, prec, bigfloat::setDefaultPrecision(), and tolerance.

◆ ~AlgRemez()

AlgRemez::~AlgRemez ( )
virtual

Definition at line 49 of file Remez.cc.

References a, a_power, alloc, mm, param, poles, roots, and xx.

Member Function Documentation

◆ initialGuess()

void AlgRemez::initialGuess ( )
private

Definition at line 262 of file Remez.cc.

References a, apend, apstrt, apwidt, cos(), exp(), M_PI, mm, neq, and xx.

Referenced by generateApprox().

◆ equations()

void AlgRemez::equations ( void )
private

Definition at line 382 of file Remez.cc.

References d, func(), n, neq, param, simq(), and xx.

Referenced by generateApprox().

◆ search()

void AlgRemez::search ( bigfloat * step)
private

Definition at line 299 of file Remez.cc.

References a, apend, apstrt, delta, getErr(), mm, neq, spread, step, and xx.

Referenced by generateApprox().

◆ stpini()

void AlgRemez::stpini ( bigfloat * step)
private

Definition at line 290 of file Remez.cc.

References apend, apstrt, delta, neq, step, and xx.

Referenced by generateApprox().

◆ root()

int AlgRemez::root ( )
private

Definition at line 587 of file Remez.cc.

References d, n, neq, norm, param, poles, roots, and rtnewt().

Referenced by generateApprox().

◆ polyEval()

bigfloat AlgRemez::polyEval ( bigfloat x,
bigfloat * poly,
long size )
private

Definition at line 631 of file Remez.cc.

Referenced by rtnewt().

◆ polyDiff()

bigfloat AlgRemez::polyDiff ( bigfloat x,
bigfloat * poly,
long size )
private

Definition at line 638 of file Remez.cc.

Referenced by rtnewt().

◆ rtnewt()

bigfloat AlgRemez::rtnewt ( bigfloat * poly,
long i,
bigfloat x1,
bigfloat x2,
bigfloat xacc )
private

Definition at line 646 of file Remez.cc.

References JMAX, polyDiff(), and polyEval().

Referenced by root().

◆ pfe()

void AlgRemez::pfe ( bigfloat * res,
bigfloat * poles,
bigfloat norm )
private

Definition at line 666 of file Remez.cc.

References d, n, norm, and poles.

Referenced by getIPFE(), and getPFE().

◆ func()

bigfloat AlgRemez::func ( bigfloat x)
private

Definition at line 453 of file Remez.cc.

References a, a_length, a_power, power_den, power_num, and sum().

Referenced by equations(), evaluateFunc(), evaluateInverseFunc(), and getErr().

◆ getErr()

bigfloat AlgRemez::getErr ( bigfloat x,
int * sign )
private

Definition at line 437 of file Remez.cc.

References approx(), and func().

Referenced by generateApprox(), and search().

◆ simq()

int AlgRemez::simq ( bigfloat * A,
bigfloat * B,
bigfloat * X,
int n )
private

Definition at line 472 of file Remez.cc.

References B, n, neq, and sum().

Referenced by equations().

◆ allocate()

void AlgRemez::allocate ( int num_degree,
int den_degree )
private

Definition at line 63 of file Remez.cc.

References a, a_power, alloc, mm, param, poles, roots, SUM_MAX, and xx.

Referenced by generateApprox().

◆ approx()

bigfloat AlgRemez::approx ( bigfloat x)
private

Definition at line 423 of file Remez.cc.

References d, n, and param.

Referenced by evaluateApprox(), evaluateInverseApprox(), and getErr().

◆ getDegree()

int AlgRemez::getDegree ( void )
inline

Definition at line 136 of file Remez.h.

References d, and n.

Referenced by MultiShiftFunction::Init().

◆ setBounds()

void AlgRemez::setBounds ( double lower,
double upper )

Definition at line 91 of file Remez.cc.

References apend, apstrt, and apwidt.

◆ getBounds()

void AlgRemez::getBounds ( double & lower,
double & upper )
inline

Definition at line 143 of file Remez.h.

References apend, and apstrt.

Referenced by MultiShiftFunction::Init().

◆ generateApprox() [1/3]

◆ generateApprox() [2/3]

double AlgRemez::generateApprox ( int num_degree,
int den_degree,
unsigned long power_num,
unsigned long power_den )

Definition at line 105 of file Remez.cc.

References generateApprox().

◆ generateApprox() [3/3]

double AlgRemez::generateApprox ( int degree,
unsigned long power_num,
unsigned long power_den )

Definition at line 99 of file Remez.cc.

References generateApprox().

◆ getPFE()

int AlgRemez::getPFE ( double * res,
double * pole,
double * norm )

Definition at line 179 of file Remez.cc.

References alloc, d, foundRoots, n, norm, pfe(), poles, and roots.

Referenced by MultiShiftFunction::Init().

◆ getIPFE()

int AlgRemez::getIPFE ( double * res,
double * pole,
double * norm )

Definition at line 218 of file Remez.cc.

References alloc, d, foundRoots, n, norm, pfe(), poles, and roots.

Referenced by MultiShiftFunction::Init().

◆ evaluateApprox()

double AlgRemez::evaluateApprox ( double x)

Definition at line 732 of file Remez.cc.

References approx().

Referenced by csv().

◆ evaluateInverseApprox()

double AlgRemez::evaluateInverseApprox ( double x)

Definition at line 736 of file Remez.cc.

References approx().

◆ evaluateFunc()

double AlgRemez::evaluateFunc ( double x)

Definition at line 740 of file Remez.cc.

References func().

Referenced by csv().

◆ evaluateInverseFunc()

double AlgRemez::evaluateInverseFunc ( double x)

Definition at line 744 of file Remez.cc.

References func().

◆ csv()

void AlgRemez::csv ( std::ostream & os)

Definition at line 748 of file Remez.cc.

References apend, apstrt, evaluateApprox(), and evaluateFunc().

Field Documentation

◆ cname

char* AlgRemez::cname
private

Definition at line 42 of file Remez.h.

◆ param

bigfloat* AlgRemez::param
private

Definition at line 45 of file Remez.h.

Referenced by allocate(), approx(), equations(), root(), and ~AlgRemez().

◆ roots

bigfloat * AlgRemez::roots
private

Definition at line 45 of file Remez.h.

Referenced by allocate(), getIPFE(), getPFE(), root(), and ~AlgRemez().

◆ poles

bigfloat * AlgRemez::poles
private

Definition at line 45 of file Remez.h.

Referenced by allocate(), getIPFE(), getPFE(), pfe(), root(), and ~AlgRemez().

◆ norm

bigfloat AlgRemez::norm
private

Definition at line 46 of file Remez.h.

Referenced by getIPFE(), getPFE(), pfe(), and root().

◆ n

int AlgRemez::n
private

Definition at line 49 of file Remez.h.

Referenced by AlgRemez(), approx(), equations(), generateApprox(), getDegree(), getIPFE(), getPFE(), pfe(), root(), and simq().

◆ d

int AlgRemez::d
private

Definition at line 49 of file Remez.h.

Referenced by AlgRemez(), approx(), equations(), generateApprox(), getDegree(), getIPFE(), getPFE(), pfe(), and root().

◆ apstrt

bigfloat AlgRemez::apstrt
private

Definition at line 52 of file Remez.h.

Referenced by AlgRemez(), csv(), getBounds(), initialGuess(), search(), setBounds(), and stpini().

◆ apwidt

bigfloat AlgRemez::apwidt
private

Definition at line 52 of file Remez.h.

Referenced by AlgRemez(), initialGuess(), and setBounds().

◆ apend

bigfloat AlgRemez::apend
private

Definition at line 52 of file Remez.h.

Referenced by AlgRemez(), csv(), getBounds(), initialGuess(), search(), setBounds(), and stpini().

◆ power_num

unsigned long AlgRemez::power_num
private

Definition at line 55 of file Remez.h.

Referenced by func(), and generateApprox().

◆ power_den

unsigned long AlgRemez::power_den
private

Definition at line 56 of file Remez.h.

Referenced by func(), and generateApprox().

◆ alloc

int AlgRemez::alloc
private

Definition at line 59 of file Remez.h.

Referenced by AlgRemez(), allocate(), getIPFE(), getPFE(), and ~AlgRemez().

◆ foundRoots

int AlgRemez::foundRoots
private

Definition at line 62 of file Remez.h.

Referenced by AlgRemez(), generateApprox(), getIPFE(), and getPFE().

◆ nd1

int AlgRemez::nd1
private

Definition at line 65 of file Remez.h.

◆ iter

int AlgRemez::iter
private

Definition at line 65 of file Remez.h.

Referenced by generateApprox().

◆ xx

bigfloat* AlgRemez::xx
private

Definition at line 66 of file Remez.h.

Referenced by allocate(), equations(), initialGuess(), search(), stpini(), and ~AlgRemez().

◆ mm

bigfloat * AlgRemez::mm
private

Definition at line 66 of file Remez.h.

Referenced by allocate(), generateApprox(), initialGuess(), search(), and ~AlgRemez().

◆ step

bigfloat * AlgRemez::step
private

Definition at line 66 of file Remez.h.

Referenced by generateApprox(), search(), and stpini().

◆ delta

bigfloat AlgRemez::delta
private

Definition at line 67 of file Remez.h.

Referenced by generateApprox(), search(), and stpini().

◆ spread

bigfloat AlgRemez::spread
private

Definition at line 67 of file Remez.h.

Referenced by generateApprox(), and search().

◆ tolerance

bigfloat AlgRemez::tolerance
private

Definition at line 67 of file Remez.h.

Referenced by AlgRemez(), and generateApprox().

◆ a

bigfloat* AlgRemez::a
private

Definition at line 70 of file Remez.h.

Referenced by allocate(), func(), generateApprox(), initialGuess(), search(), and ~AlgRemez().

◆ a_power

int* AlgRemez::a_power
private

Definition at line 71 of file Remez.h.

Referenced by allocate(), func(), generateApprox(), and ~AlgRemez().

◆ a_length

int AlgRemez::a_length
private

Definition at line 72 of file Remez.h.

Referenced by func(), and generateApprox().

◆ neq

int AlgRemez::neq
private

Definition at line 75 of file Remez.h.

Referenced by equations(), generateApprox(), initialGuess(), root(), search(), simq(), and stpini().

◆ prec

long AlgRemez::prec
private

Definition at line 78 of file Remez.h.

Referenced by AlgRemez().


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