29 const int TpsData_SIZE = 100;
30 TpsData theirTpsData[TpsData_SIZE];
47 theirTpsData[nVar].
build(nOrd, nVar);
48 return &theirTpsData[nVar];
59 index +=
binom[var][order];
78 for(var = 0; var < nVar; var++) {
82 for(ord = 1; ord <=
topOrder + 1; ord++) {
83 binom[nVar-1][ord] = ord;
85 for(var = nVar - 1; var-- > 0;) {
97 for(
int index = 1; index <
maxSize; index++) {
98 int carry = power[nVar-1];
100 int lastnz = int(-1);
102 for(
int j = 0; j < nVar - 1; j++) {
103 if(power[j] > 0) lastnz = j;
106 if(lastnz ==
int(-1)) {
107 power[lastnz+1] = power[lastnz+1] + 1 + carry;
110 power[lastnz+1] = power[lastnz+1] + 1 + carry;
113 expon[index] = power;
122 for(
int xord = 0; xord <=
topOrder; xord++) {
128 for(
int j = 0; j < ysize; j++) {
Tps< T > pow(const Tps< T > &x, int y)
Integer power.
Bookkeeping class for Tps<T>.
static TpsData * getTpsData(int nOrd, int nVar)
Array1D< int > ProductRow
void build(int max, int nVar)
Array2D< int > BinomialTable
int getSize(int order) const
void fillSubst(int var, int order, TpsMonomial &pow, int &next)
Array1D< TpsMonomial > ExponentTable
Array1D< TpsSubstitution > subTable
Array1D< ProductRow > ProductTable
int indexMonomial(const TpsMonomial &) const
Exponent array for Tps<T>.