/** * Bell number. * * @param a0 * @return */ public static IAST BellB(final IExpr a0) { return unaryAST1(F.BellB, a0); }
/** * * @param a0 * @return * @deprecated use HoldPattern */ public static IAST Literal(final IExpr a0) { return unaryAST1(Literal, a0); }
/** * Full symmetry * * @param a0 * @return */ public static IAST Symmetric(final IExpr a0) { return unaryAST1(Symmetric, a0); }
/** * Symmetry of a zero tensor. * * @param a0 * @return */ public static IAST ZeroSymmetric(final IExpr a0) { return unaryAST1(ZeroSymmetric, a0); }
/** * Create an "interval" expression: <code>Interval(list)</code>. * * @param list * @return */ public static IAST Interval(final IExpr list) { return unaryAST1(Interval, list); }
/** * Evaluate the given expression in numeric mode * * @param a0 * @return */ public static IAST N(final IExpr a0) { return unaryAST1(N, a0); }
public static IAST Cot(final IExpr a0) { return unaryAST1(Cot, a0); }
/** * Create an "interval" expression: <code>Interval(List(from, to))</code>. * * @param min * minimum value of the interval * @param max * maximum value of the interval * @return */ public static IAST Interval(final IExpr min, final IExpr max) { return unaryAST1(Interval, binaryAST2(List, min, max)); }
public static IExpr nestWhile(final IExpr expr, final IExpr test, final Function<IExpr, IExpr> fn, EvalEngine engine) { IExpr temp = expr; while (engine.evalTrue(F.unaryAST1(test, temp))) { temp = engine.evaluate(fn.apply(temp)); } return temp; }
public static IExpr Re(final IExpr a0) { if (a0 != null && a0.isNumber()) { return ((INumber) a0).re(); } return unaryAST1(Re, a0); }
public static IExpr Im(final IExpr a0) { if (a0 != null && a0.isNumber()) { return ((INumber) a0).im(); } return unaryAST1(Im, a0); }
/** {@inheritDoc} */ @Override public final IAST filter(IASTAppendable filterAST, IExpr expr) { EvalEngine engine = EvalEngine.get(); return filter(filterAST, x -> engine.evalTrue(F.unaryAST1(expr, x))); }
public static IAST nestList(final IExpr expr, final IExpr test, final Function<IExpr, IExpr> fn, final IASTAppendable resultList, EvalEngine engine) { IExpr temp = expr; while (engine.evalTrue(F.unaryAST1(test, temp))) { resultList.append(temp); temp = engine.evaluate(fn.apply(temp)); } resultList.append(temp); return resultList; }
private static boolean anyTrueArgument(IExpr x, IExpr head, IASTAppendable resultCollector, EvalEngine engine) { IExpr temp = engine.evaluate(F.unaryAST1(head, x)); if (temp.isTrue()) { return true; } else if (!temp.isFalse()) { resultCollector.append(temp); } return false; }
private static boolean noneTrueArgument(IExpr x, IExpr head, IASTAppendable resultCollector, EvalEngine engine) { IExpr temp = engine.evaluate(F.unaryAST1(head, x)); if (temp.isTrue()) { return true; } else if (!temp.isFalse()) { resultCollector.append(temp); } return false; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 4); return nestWhile(ast.arg2(), engine.evaluate(ast.arg3()), x -> F.unaryAST1(ast.arg1(), x), engine); }
public static IExpr evaluateNest(final IAST ast, EvalEngine engine) { IExpr arg3 = engine.evaluate(ast.arg3()); if (arg3.isInteger()) { final int n = Validate.checkIntType(arg3); return nest(ast.arg2(), n, x -> F.unaryAST1(ast.arg1(), x), engine); } return F.NIL; }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkSize(ast, 4); IExpr arg1 = ast.arg1(); return nestList(ast.arg2(), engine.evaluate(ast.arg3()), x -> F.unaryAST1(arg1, x), F.ListAlloc(), engine); // Functors.append(F.ast(ast.arg1())), List(), engine); }
@Override public IExpr evaluate(final IAST ast, EvalEngine engine) { Validate.checkRange(ast, 3); final IExpr arg1 = ast.arg1(); final VisitorLevelSpecification level = new VisitorLevelSpecification(x -> F.unaryAST1(arg1, x), 0, Integer.MAX_VALUE, false); final IExpr result = ast.arg2().accept(level); return result.isPresent() ? result : ast.arg2(); }
public static IExpr evaluateNestList(final IAST ast, final IASTAppendable resultList, EvalEngine engine) { IExpr arg3 = engine.evaluate(ast.arg3()); if (arg3.isInteger()) { final int n = Validate.checkIntType(arg3); IExpr arg1 = ast.arg1(); nestList(ast.arg2(), n, x -> F.unaryAST1(arg1, x), resultList, engine); return resultList; } return F.NIL; }