public static boolean polynomialQ(final IExpr polnomialExpr, final IAST variables) { try { IExpr expr = F.evalExpandAll(polnomialExpr); ASTRange r = new ASTRange(variables, 1); JASConvert<IExpr> jas = new JASConvert<IExpr>(r.toList(), new ExprRingFactory()); return jas.expr2IExprJAS(expr) != null; } catch (JASConversionException e) { // exception will be thrown if the expression is not a JAS polynomial } return false; }
private IExpr tryToReduceNumericFactor(IAST ast, IExpr temp, IExpr arg1, int i) { IExpr expandedAst = tryTransformations((IAST) temp, F.Times(arg1, temp)); if (expandedAst != null) { IAST result = F.Times(); ast.range(2, ast.size()).toList(result); result.set(i - 1, expandedAst); return result; } return null; } }
IExpr exprDenominator = F.evalExpandAll(parts[1]); ASTRange r = new ASTRange(variableList, 1); List<IExpr> varList = r.toList();
@Override public IExpr evaluate(final IAST ast) { Validate.checkSize(ast, 2); ExprVariables eVar = new ExprVariables(ast.get(1)); if (!eVar.isSize(1)) { throw new WrongArgumentType(ast, ast.get(1), 1, "Factorization only implemented for univariate polynomials"); } try { IExpr expr = F.evalExpandAll(ast.get(1)); ASTRange r = new ASTRange(eVar.getVarList(), 1); List<IExpr> varList = r.toList(); // if (ast.size() == 3) { // return factorWithOption(ast, expr, varList, true); // } return factorList(expr, varList, true); } catch (JASConversionException jce) { // toInt() conversion failed if (Config.DEBUG) { jce.printStackTrace(); } } return null; }
@Override public IExpr evaluate(final IAST ast) { if (ast.size() != 2 && ast.size() != 3) { return null; } ExprVariables eVar = new ExprVariables(ast.get(1)); // if (!eVar.isSize(1)) { // throw new WrongArgumentType(ast, ast.get(1), 1, // "Factorization only implemented for univariate polynomials"); // } try { IExpr expr = F.evalExpandAll(ast.get(1)); ASTRange r = new ASTRange(eVar.getVarList(), 1); List<IExpr> varList = r.toList(); if (ast.size() == 3) { return factorWithOption(ast, expr, varList, false); } return factor(expr, varList, false); } catch (JASConversionException e) { if (Config.DEBUG) { e.printStackTrace(); } } return null; }
@Override public IExpr evaluate(final IAST ast) { Validate.checkRange(ast, 2, 3); ExprVariables eVar = new ExprVariables(ast.get(1)); if (!eVar.isSize(1)) { throw new WrongArgumentType(ast, ast.get(1), 1, "Factorization only implemented for univariate polynomials"); } try { IExpr expr = F.evalExpandAll(ast.get(1)); ASTRange r = new ASTRange(eVar.getVarList(), 1); List<IExpr> varList = r.toList(); if (ast.size() == 3) { return factorWithOption(ast, expr, varList, true); } return factor(expr, varList, true); } catch (JASConversionException jce) { // toInt() conversion failed if (Config.DEBUG) { jce.printStackTrace(); } } return null; }
JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> p1 = jas.expr2JAS(poly1); GenPolynomial<BigRational> p2 = jas.expr2JAS(poly2);
public static IExpr[] quotientRemainder(final IAST lst) { try { ExprVariables eVar = new ExprVariables(lst.get(1)); eVar.addVarList(lst.get(2)); IExpr expr = F.evalExpandAll(lst.get(1)); ASTRange r = new ASTRange(eVar.getVarList(), 1); JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> poly1 = jas.expr2JAS(expr); expr = F.evalExpandAll(lst.get(2)); GenPolynomial<BigRational> poly2 = jas.expr2JAS(expr); GenPolynomial<BigRational>[] divRem = poly1.quotientRemainder(poly2); IExpr[] result = new IExpr[2]; result[0] = jas.rationalPoly2Expr(divRem[0]); result[1] = jas.rationalPoly2Expr(divRem[1]); return result; } catch (JASConversionException e) { if (Config.DEBUG) { e.printStackTrace(); } } return null; }
IExpr expr = F.evalExpandAll(ast.get(1)); ASTRange r = new ASTRange(variableList, 1); JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> poly = jas.expr2JAS(expr); Object[] objects = jas.factorTerms(poly);
IExpr expr = F.evalExpandAll(ast.get(1)); ASTRange r = new ASTRange(eVar.getVarList(), 1); List<IExpr> varList = r.toList();
int intValue = ((IInteger) option).toInt(); ModIntegerRing modIntegerRing = new ModIntegerRing(intValue, value.isProbablePrime(32)); JASConvert<ModInteger> jas = new JASConvert<ModInteger>(r.toList(), modIntegerRing); GenPolynomial<ModInteger> poly = jas.expr2JAS(expr); GenPolynomial<ModInteger> temp; JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> poly = jas.expr2JAS(expr); GenPolynomial<BigRational> temp;
List<IExpr> varList = r.toList(); try { JASConvert<BigRational> jas = new JASConvert<BigRational>(varList, BigRational.ZERO);
int intValue = ((IInteger) option).toInt(); ModIntegerRing modIntegerRing = new ModIntegerRing(intValue, value.isProbablePrime(32)); JASConvert<ModInteger> jas = new JASConvert<ModInteger>(r.toList(), modIntegerRing); GenPolynomial<ModInteger> poly = jas.expr2JAS(expr); GenPolynomial<ModInteger> temp; JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> poly = jas.expr2JAS(expr); GenPolynomial<BigRational> temp;
List<IExpr> varList = r.toList(); final Options options = new Options(ast.topHead(), ast, 4); IExpr option = options.getOption("Modulus"); JASConvert<BigRational> jas = new JASConvert<BigRational>(r.toList(), BigRational.ZERO); GenPolynomial<BigRational> poly1 = jas.expr2JAS(expr1); GenPolynomial<BigRational> poly2 = jas.expr2JAS(expr2);
IExpr exprDenominator = F.evalExpandAll(parts[1]); ASTRange r = new ASTRange(variableList, 1); List<IExpr> varList = r.toList();
List<IExpr> varList = r.toList();