From 2611cf020a48446635f1d81fd7f9eea8504ebe98 Mon Sep 17 00:00:00 2001 From: skylarmt Date: Mon, 22 Dec 2014 03:01:09 -0700 Subject: [PATCH] Mess around with math functions, change version to 0.8 --- src/net/apocalypselabs/symat/Functions.java | 23 ++++++++++++++++++++- src/net/apocalypselabs/symat/MainGUI.java | 6 +++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/net/apocalypselabs/symat/Functions.java b/src/net/apocalypselabs/symat/Functions.java index 5454aae..4a08a9b 100644 --- a/src/net/apocalypselabs/symat/Functions.java +++ b/src/net/apocalypselabs/symat/Functions.java @@ -27,6 +27,8 @@ */ package net.apocalypselabs.symat; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; import javax.swing.JOptionPane; import org.matheclipse.core.eval.EvalUtilities; import org.matheclipse.parser.client.math.MathException; @@ -40,7 +42,8 @@ import org.matheclipse.parser.client.math.MathException; */ public class Functions { - EvalUtilities util = new EvalUtilities(false, true); + private ScriptEngine symja = new ScriptEngineManager().getEngineByExtension("m"); + private EvalUtilities util = new EvalUtilities(true, true); Graph graphwin = new Graph(true); /* @@ -57,9 +60,27 @@ public class Functions { /* Math commands */ + + // Derivative of function with respect to idv public String D(String function, String idv) { return util.evaluate("diff(" + function + "," + idv + ")").toString(); } + + public double cos(Object expression) { + return Double.parseDouble(util.evaluate("Cos("+expression+")").toString()); + } + + public double sin(Object expression) { + return Double.parseDouble(util.evaluate("Sin("+expression+")").toString()); + } + + public double tan(Object expression) { + return Double.parseDouble(util.evaluate("Tan("+expression+")").toString()); + } + + public String factor(String function) { + return sym("Factor(" + function + ")"); + } public String sym(String input) { return util.evaluate(input).toString(); diff --git a/src/net/apocalypselabs/symat/MainGUI.java b/src/net/apocalypselabs/symat/MainGUI.java index 66b49b6..ca8ce8f 100644 --- a/src/net/apocalypselabs/symat/MainGUI.java +++ b/src/net/apocalypselabs/symat/MainGUI.java @@ -44,9 +44,9 @@ import javax.swing.JInternalFrame; */ public class MainGUI extends javax.swing.JFrame { - public static final String APP_NAME = "SyMAT 0.7"; - public static final double APP_CODE = 7; - public static final String VERSION_NAME = "0.7"; + public static final String APP_NAME = "SyMAT 0.8"; + public static final double APP_CODE = 8; + public static final String VERSION_NAME = "0.8"; public static String argfile = ""; public static boolean skipPython = false; // Skip python init on start?