package jscl.math.polynomial;
import jscl.math.Generic;
import jscl.math.Rational;
class ArrayPolynomialRational extends ArrayPolynomialGeneric {
Rational coef[];
ArrayPolynomialRational(Monomial monomialFactory) {
super(monomialFactory, Rational.factory);
}
ArrayPolynomialRational(int size, Monomial monomialFactory) {
this(monomialFactory);
init(size);
}
void init(int size) {
monomial = new Monomial[size];
coef = new Rational[size];
this.size = size;
}
void resize(int size) {
int length = monomial.length;
if (size < length) {
Monomial monomial[] = new Monomial[size];
Rational coef[] = new Rational[size];
System.arraycopy(this.monomial, length - size, monomial, 0, size);
System.arraycopy(this.coef, length - size, coef, 0, size);
this.monomial = monomial;
this.coef = coef;
this.size = size;
}
}
protected Generic coefficient(Generic generic) {
return coefFactory.valueOf(generic);
}
protected Generic getCoef(int n) {
return coef[n];
}
protected void setCoef(int n, Generic generic) {
coef[n] = (Rational) generic;
}
protected ArrayPolynomialGeneric newinstance(int n) {
return new ArrayPolynomialRational(n, monomialFactory);
}
}