From d3e78ce6e9e85f374e80137993f6210a0c6dd4a2 Mon Sep 17 00:00:00 2001 From: skylarmt Date: Fri, 30 Jan 2015 12:47:28 -0700 Subject: [PATCH] Add vpa(expr) to turn input into a number. --- src/net/apocalypselabs/symat/Functions.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/net/apocalypselabs/symat/Functions.java b/src/net/apocalypselabs/symat/Functions.java index 383620c..37a8a24 100644 --- a/src/net/apocalypselabs/symat/Functions.java +++ b/src/net/apocalypselabs/symat/Functions.java @@ -49,6 +49,7 @@ import static java.lang.Math.*; import java.util.HashMap; import javax.swing.JOptionPane; import org.matheclipse.core.eval.EvalUtilities; +import org.matheclipse.core.interfaces.IExpr; import org.matheclipse.parser.client.math.MathException; /** @@ -109,6 +110,14 @@ public class Functions { public String simplify(String expr) { return sym("Simplify("+expr+")"); } + + public Object vpa(String expr) { + IExpr ans = util.evaluate("N("+expr+")"); + if (ans.isNumber()) { + return Double.parseDouble(ans.toString()); + } + return ans.toString(); + } public double rad(double degrees) { return degrees * (PI / 180); @@ -122,7 +131,7 @@ public class Functions { return util.evaluate(input).toString(); } - // Shortcut for non-JS math evaluation. + // Shortcut for symja evaluation. public String $(String input) { return sym(input); }