use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class JASConvert method expVectorToExpr.
private boolean expVectorToExpr(ExpVector exp, IASTAppendable monomTimes) {
long lExp;
ExpVector leer = fPolyFactory.evzero;
for (int i = 0; i < exp.length(); i++) {
lExp = exp.getVal(i);
if (lExp != 0) {
int ix = leer.varIndex(i);
if (ix >= 0) {
if (lExp == 1L) {
monomTimes.append(fVariables.get(ix));
} else {
monomTimes.append(F.Power(fVariables.get(ix), F.ZZ(lExp)));
}
} else {
return false;
}
}
}
return true;
}
use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class JASConvert method isQuadratic.
/**
* Check if the polynomial has maximum degree 2 in 1 variable and return the coefficients.
*
* @param poly
* @return <code>false</code> if the polynomials degree > 2 and number of variables <> 1
*/
private static boolean isQuadratic(GenPolynomial<edu.jas.arith.BigInteger> poly, edu.jas.arith.BigInteger[] result) {
if (poly.degree() <= 2 && poly.numberOfVariables() == 1) {
result[0] = edu.jas.arith.BigInteger.ZERO;
result[1] = edu.jas.arith.BigInteger.ZERO;
result[2] = edu.jas.arith.BigInteger.ZERO;
for (Monomial<edu.jas.arith.BigInteger> monomial : poly) {
edu.jas.arith.BigInteger coeff = monomial.coefficient();
ExpVector exp = monomial.exponent();
for (int i = 0; i < exp.length(); i++) {
result[(int) exp.getVal(i)] = coeff;
}
}
return true;
}
return false;
}
use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class JASConvert method isQuadratic.
/**
* Check if the polynomial has maximum degree 2 in 1 variable and return the coefficients.
*
* @param poly
* @return <code>false</code> if the polynomials degree > 2 and number of variables <> 1
*/
private static boolean isQuadratic(GenPolynomial<BigRational> poly, BigRational[] result) {
if (poly.degree() <= 2 && poly.numberOfVariables() == 1) {
result[0] = BigRational.ZERO;
result[1] = BigRational.ZERO;
result[2] = BigRational.ZERO;
for (Monomial<BigRational> monomial : poly) {
BigRational coeff = monomial.coefficient();
ExpVector exp = monomial.exponent();
for (int i = 0; i < exp.length(); i++) {
result[(int) exp.getVal(i)] = coeff;
}
}
return true;
}
return false;
}
use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class JASConvert method polyAlgebraicNumber2Expr.
public IAST polyAlgebraicNumber2Expr(final GenPolynomial<AlgebraicNumber<BigRational>> poly) throws ArithmeticException, JASConversionException {
if (poly.length() == 0) {
return F.Plus(F.C0);
}
SortedMap<ExpVector, AlgebraicNumber<BigRational>> val = poly.getMap();
if (val.size() == 0) {
return F.Plus(F.C0);
} else {
IASTAppendable result = F.PlusAlloc(val.size());
for (Map.Entry<ExpVector, AlgebraicNumber<BigRational>> m : val.entrySet()) {
AlgebraicNumber<BigRational> coeff = m.getValue();
ExpVector exp = m.getKey();
IASTAppendable monomTimes = F.TimesAlloc(exp.length() + 1);
monomialToExpr(coeff, exp, monomTimes);
result.append(monomTimes.oneIdentity1());
}
return result;
}
}
Aggregations