use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class JASModInteger method modLongPoly2Expr.
public IExpr modLongPoly2Expr(final GenPolynomial<ModLong> poly) throws ArithmeticException, ClassCastException {
if (poly.length() == 0) {
return F.Plus(F.C0);
}
IAST result = F.Plus();
for (Monomial<ModLong> monomial : poly) {
ModLong coeff = monomial.coefficient();
ExpVector exp = monomial.exponent();
IInteger coeffValue = F.integer(coeff.getVal());
IAST monomTimes = F.Times();
monomialToExpr(coeffValue, exp, monomTimes);
result.append(monomTimes.getOneIdentity(F.C1));
}
return result.getOneIdentity(F.C0);
}
use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class PartialFractionIntegrateGenerator method isQuadratic.
/**
* Check if the polynomial has maximum degree 2 in 1 variable and return the
* coefficients.
*
* @param poly
* @return <code>null</code> if the polynomials degree > 2 and number of
* variables <> 1
*/
public 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 PartialFractionIntegrateGenerator method isQuadratic.
/**
* Check if the polynomial has maximum degree 2 in 1 variable and return the
* coefficients.
*
* @param poly
* @return <code>null</code> if the polynomials degree > 2 and number of
* variables <> 1
*/
public static boolean isQuadratic(GenPolynomial<BigInteger> poly, BigInteger[] result) {
if (poly.degree() <= 2 && poly.numberOfVariables() == 1) {
result[0] = BigInteger.ZERO;
result[1] = BigInteger.ZERO;
result[2] = BigInteger.ZERO;
for (Monomial<BigInteger> monomial : poly) {
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 MonomialList method monomialList.
/**
* Get the monomial list of a univariate polynomial.
*
* @param polynomial
* @param variable
* @param termOrder
* the JAS term ordering
* @return the list of monomials of the univariate polynomial.
*/
private static IAST monomialList(IExpr polynomial, final List<IExpr> variablesList, final TermOrder termOrder) throws JASConversionException {
JASIExpr jas = new JASIExpr(variablesList, ExprRingFactory.CONST, termOrder, false);
GenPolynomial<IExpr> polyExpr = jas.expr2IExprJAS(polynomial);
IAST list = F.List();
for (Map.Entry<ExpVector, IExpr> monomial : polyExpr.getMap().entrySet()) {
IExpr coeff = monomial.getValue();
ExpVector exp = monomial.getKey();
IAST monomTimes = F.Times();
jas.monomialToExpr(coeff, exp, monomTimes);
list.append(monomTimes);
}
return list;
}
use of edu.jas.poly.ExpVector in project symja_android_library by axkr.
the class Integrate 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
*/
public static boolean isQuadratic(GenPolynomial<BigInteger> poly, BigInteger[] result) {
if (poly.degree() <= 2 && poly.numberOfVariables() == 1) {
result[0] = BigInteger.ZERO;
result[1] = BigInteger.ZERO;
result[2] = BigInteger.ZERO;
for (Monomial<BigInteger> monomial : poly) {
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;
}
Aggregations