EvalDouble parser = new EvalDouble(true); String var = v; ASTNode fun, val; parser.defineVariable(var); try { fun = parser.parse(f); } catch (MathException e) { val = parser.parse(x); } catch (MathException e) { parser.defineVariable(var, parser.evaluateNode(val)); return parser.evaluateNode(fun);
public static double arcLength(String f, String v, String a, String b) throws MathException { // Expression fun; // Variable var = new Variable(v); // Parser parser = new Parser(Parser.STANDARD_FUNCTIONS | // Parser.OPTIONAL_PARENS // | Parser.OPTIONAL_STARS | Parser.OPTIONAL_SPACES // | Parser.BRACES | Parser.BRACKETS| Parser.BOOLEANS); // parser.add(var); // setUpParser(parser); ASTNode fun; String var = v; EvalDouble parser = new EvalDouble(true); parser.defineVariable(var); try { fun = parser.parse(f); } catch (MathException e) { throw e; } String integrand = "sqrt(1+(" + parser.derivative(fun, var) + ")^2)"; return integrate(integrand, v, a, b); }
public static double eval(final double[] stack, final int top, final IExpr expr) { if (expr instanceof IAST) { return evalAST(stack, top, (IAST) expr); } if (expr instanceof ISignedNumber) { return ((ISignedNumber) expr).doubleValue(); } if (expr instanceof ISymbol) { return evalSymbol(((ISymbol) expr)); } throw new UnsupportedOperationException("EvalDouble#eval()"); }
public static boolean isValid(String fun, String[] var) { EvalDouble dEval = new EvalDouble(true); for (String v : var) { dEval.defineVariable(v, new DoubleVariable(0.0)); } try { dEval.parse(fun); return true; } catch (Exception e) { return false; } }
public double value(double x) { double result = 0.0; Alloc alloc = Alloc.get(); final double[] stack = alloc.vector(10); try { fVariable.pushLocalVariable(Num.valueOf(x)); result = EvalDouble.eval(stack, 0, fFunction); } finally { fVariable.popLocalVariable(); alloc.freeVector(10); } return result; }
public EvalDouble(ASTNode node, boolean relaxedSyntax) { super(node, relaxedSyntax); setCallbackFunction(CoreCallbackFunction.CONST); } }
public static boolean[] isValid(String[] fun, String[] var) { EvalDouble dEval = new EvalDouble(true); for (String v : var) { dEval.defineVariable(v, new DoubleVariable(0.0)); } boolean[] b = new boolean[fun.length]; for (int i = 0; i < fun.length; i++) { try { dEval.parse(fun[i]); b[i] = true; } catch (Exception e) { b[i] = false; } } return b; }
public double value(double x, double y) { double result = 0.0; try { variable1.pushLocalVariable(Num.valueOf(x)); variable2.pushLocalVariable(Num.valueOf(y)); Alloc alloc = Alloc.get(); final double[] stack = alloc.vector(10); result = EvalDouble.eval(stack, 0, fun); alloc.freeVector(10); } finally { variable2.popLocalVariable(); variable1.popLocalVariable(); } return result; }
EvalDouble parser = new EvalDouble(true); parser.defineVariable(var); try { fun = parser.parse(f); } catch (MathException e) { parser.defineVariable(var, parser.evaluateNode(parser.parse(x))); try { double m = parser.evaluateNode(parser.derivative(fun, var)); String out; if (m == 1) { out = m + "*" + var; double b = parser.evaluateNode(fun) - m * parser.evaluate(var); if (b > 0) { if (!out.equals("")) {
EvalDouble integParser = new EvalDouble(true); integParser.defineVariable(integVarX); integParser.defineVariable(integVarY); try { String funX = integParser.derivative(integParser.parse(fun), integVarX).toString(); String funY = integParser.derivative(integParser.parse(fun), integVarY).toString(); fun = "sqrt(1+(" + funX + ")^2+(" + funY + ")^2)"; return integrate(fun, v1, v2, bounds);
public static double evalAST(double[] stack, final int top, final IAST ast) { final ISymbol symbol = (ISymbol) ast.get(0); final IEvaluator module = symbol.getEvaluator(); if (module instanceof INumeric) { int newTop = top; // fast evaluation path if (top + ast.size() >= stack.length) { Alloc alloc = Alloc.get(); stack = alloc.vector(ast.size() + 50); } for (int i = 1; i < ast.size(); i++) { ++newTop; stack[newTop] = eval(stack, newTop, ast.get(i)); } return ((INumeric) module).evalReal(stack, newTop, ast.size() - 1); } // slow evaluation path final IExpr result = F.evaln(ast); if (result instanceof Num) { return ((Num) result).doubleValue(); } throw new UnsupportedOperationException("EvalDouble#evalAST(): "+ast); }
String integVarX = v1; String integVarY = v2; EvalDouble integParser = new EvalDouble(true); integParser.defineVariable(integVarX); integParser.defineVariable(integVarY); try { x1 = integParser.evaluate(bounds[0]); } catch (MathException e) { x2 = integParser.evaluate(bounds[1]); } catch (MathException e) { y1 = integParser.parse(bounds[2]); } catch (MathException e) { y2 = integParser.parse(bounds[3]); } catch (MathException e) { integFun = integParser.parse(fun); } catch (MathException e) { integParser.defineVariable(integVarX, aTemp); double a = integParser.evaluateNode(y1); double b = integParser.evaluateNode(y2); integParser.defineVariable(integVarY, a); double valueY = integParser.evaluateNode(integFun) / 2; for (int k = 0; k < Math.pow(2, j) - 1; k++) { aTempY += stepY;