Katzlab dd76ab1d12 Added PTL2 Scripts
These are PTL2 files from Auden 2/9
2023-02-14 11:20:52 -05:00

49 lines
1.6 KiB
C++

// $Id: chebyshevAccelerator.h 962 2006-11-07 15:13:34Z privmane $
#ifndef ___CHEBYSHEV_ACCELERATOR
#define ___CHEBYSHEV_ACCELERATOR
#include "pijAccelerator.h"
#include "replacementModel.h"
class chebyshevAccelerator : public pijAccelerator {
public:
explicit chebyshevAccelerator( replacementModel* pb,
const int alphanetSize=20,
const int totalNumOfCoef=60,
const int usingNumberOfCoef=13,
const MDOUBLE rightRange=0,const MDOUBLE leftRange=2);
chebyshevAccelerator(const chebyshevAccelerator& other);
const MDOUBLE Pij_t(const int i,const int j, const MDOUBLE d) const;
const MDOUBLE dPij_dt(const int i,const int j, const MDOUBLE d) const;
const MDOUBLE d2Pij_dt2(const int i,const int j, const MDOUBLE d) const;
const MDOUBLE freq(const int i) const {return _pb->freq(i);}
virtual pijAccelerator* clone() const { return new chebyshevAccelerator(*this); }
virtual ~chebyshevAccelerator() {delete _pb;}
virtual replacementModel* getReplacementModel() const {return (_pb);}
virtual const int alphabetSize() const {return _pb->alphabetSize();}
private:
VVVdouble chebi_coff;//[N_ABC][N_ABC][NUMBER_OF_TOTAL_COFF+1];
VVVdouble chebi_dervation_coff;//[N_ABC][N_ABC][NUMBER_OF_TOTAL_COFF+1];
VVVdouble chebi_sec_dervation_coff;//[N_ABC][N_ABC][NUMBER_OF_TOTAL_COFF+1];
const int _alphabetSize;
const int _totalNumOfCoef;
const int _usingNumberOfCoef;
replacementModel* _pb;
void chebft(Vdouble& c, int n, int from_aa, int to_aa);
void chder(Vdouble &c, Vdouble &cder, int n);
const MDOUBLE _rightRange;
const MDOUBLE _leftRange;
};
// This is an accelerator of Pij(t) calculation, using a proximity to polynomial.
#endif