diff --git a/src/net/apocalypselabs/symat/Functions.java b/src/net/apocalypselabs/symat/Functions.java index 2e3c0e3..c22dc26 100644 --- a/src/net/apocalypselabs/symat/Functions.java +++ b/src/net/apocalypselabs/symat/Functions.java @@ -246,7 +246,7 @@ public class Functions { return diff(function, idv); } - public double[] solve(String function, String idv, String eq) { + public double[] solve(String function, String idv, int eq) { String res = $("Solve[" + function + "==" + eq + ", " + idv + "]"); res = res.substring(1, res.length() - 1); String[] cmp = res.split(","); @@ -257,16 +257,24 @@ public class Functions { double[] out = new double[cmp.length]; for (int i = 0; i < cmp.length; i++) { try { - out[i] = Double.parseDouble(cmp[i]); + if (cmp[i].contains("I")) { + if (cmp[i].contains("-I")) { + out[i] = Double.NEGATIVE_INFINITY; + } else { + out[i] = Double.POSITIVE_INFINITY; + } + } else { + out[i] = Double.parseDouble(cmp[i]); + } } catch (Exception ex) { - Debug.stacktrace(ex); + return new double[]{Double.NaN}; } } return out; } public double[] solve(String function, String idv) { - return solve(function, idv, "0"); + return solve(function, idv, 0); } public double[] solve(String function) { diff --git a/src/net/apocalypselabs/symat/functions.py b/src/net/apocalypselabs/symat/functions.py index bc6a16b..537cd7d 100644 --- a/src/net/apocalypselabs/symat/functions.py +++ b/src/net/apocalypselabs/symat/functions.py @@ -72,11 +72,7 @@ def powermod(a,b,m): return _.powermod(a,b,m) def gcd(a,b): return _.gcd(a,b) -def solve(a,b,c): +def solve(a,b='x',c=0): return _.solve(a,b,c) -def solve(a,b): - return _.solve(a,b) -def solve(a): - return _.solve(a) def printa(a): return _.printa(a) \ No newline at end of file