geforkt von Mirrors/FastAsyncWorldEdit
Renamed RValue.invoke() to getValue.
Dieser Commit ist enthalten in:
Ursprung
93f073f264
Commit
e70446e82e
@ -67,7 +67,7 @@ public class Expression {
|
|||||||
((Variable) invokable).value = values[i];
|
((Variable) invokable).value = values[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
return root.invoke();
|
return root.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void optimize() throws EvaluationException {
|
public void optimize() throws EvaluationException {
|
||||||
|
@ -28,7 +28,7 @@ public final class Constant extends RValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double invoke() {
|
public double getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public class Function extends RValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final double invoke() throws EvaluationException {
|
public final double getValue() throws EvaluationException {
|
||||||
try {
|
try {
|
||||||
return (Double) method.invoke(null, (Object[]) args);
|
return (Double) method.invoke(null, (Object[]) args);
|
||||||
}
|
}
|
||||||
@ -90,7 +90,7 @@ public class Function extends RValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (optimizable) {
|
if (optimizable) {
|
||||||
return new Constant(position, invoke());
|
return new Constant(position, getValue());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return new Function(position, method, optimizedArgs);
|
return new Function(position, method, optimizedArgs);
|
||||||
|
@ -30,108 +30,108 @@ public final class Functions {
|
|||||||
|
|
||||||
|
|
||||||
public static final double sin(RValue x) throws Exception {
|
public static final double sin(RValue x) throws Exception {
|
||||||
return Math.sin(x.invoke());
|
return Math.sin(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double cos(RValue x) throws Exception {
|
public static final double cos(RValue x) throws Exception {
|
||||||
return Math.cos(x.invoke());
|
return Math.cos(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double tan(RValue x) throws Exception {
|
public static final double tan(RValue x) throws Exception {
|
||||||
return Math.tan(x.invoke());
|
return Math.tan(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double asin(RValue x) throws Exception {
|
public static final double asin(RValue x) throws Exception {
|
||||||
return Math.asin(x.invoke());
|
return Math.asin(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double acos(RValue x) throws Exception {
|
public static final double acos(RValue x) throws Exception {
|
||||||
return Math.acos(x.invoke());
|
return Math.acos(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double atan(RValue x) throws Exception {
|
public static final double atan(RValue x) throws Exception {
|
||||||
return Math.atan(x.invoke());
|
return Math.atan(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double atan2(RValue y, RValue x) throws Exception {
|
public static final double atan2(RValue y, RValue x) throws Exception {
|
||||||
return Math.atan2(y.invoke(), x.invoke());
|
return Math.atan2(y.getValue(), x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double sinh(RValue x) throws Exception {
|
public static final double sinh(RValue x) throws Exception {
|
||||||
return Math.sinh(x.invoke());
|
return Math.sinh(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double cosh(RValue x) throws Exception {
|
public static final double cosh(RValue x) throws Exception {
|
||||||
return Math.cosh(x.invoke());
|
return Math.cosh(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double tanh(RValue x) throws Exception {
|
public static final double tanh(RValue x) throws Exception {
|
||||||
return Math.tanh(x.invoke());
|
return Math.tanh(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double sqrt(RValue x) throws Exception {
|
public static final double sqrt(RValue x) throws Exception {
|
||||||
return Math.sqrt(x.invoke());
|
return Math.sqrt(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double cbrt(RValue x) throws Exception {
|
public static final double cbrt(RValue x) throws Exception {
|
||||||
return Math.cbrt(x.invoke());
|
return Math.cbrt(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double abs(RValue x) throws Exception {
|
public static final double abs(RValue x) throws Exception {
|
||||||
return Math.abs(x.invoke());
|
return Math.abs(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double min(RValue a, RValue b) throws Exception {
|
public static final double min(RValue a, RValue b) throws Exception {
|
||||||
return Math.min(a.invoke(), b.invoke());
|
return Math.min(a.getValue(), b.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double min(RValue a, RValue b, RValue c) throws Exception {
|
public static final double min(RValue a, RValue b, RValue c) throws Exception {
|
||||||
return Math.min(a.invoke(), Math.min(b.invoke(), c.invoke()));
|
return Math.min(a.getValue(), Math.min(b.getValue(), c.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double max(RValue a, RValue b) throws Exception {
|
public static final double max(RValue a, RValue b) throws Exception {
|
||||||
return Math.max(a.invoke(), b.invoke());
|
return Math.max(a.getValue(), b.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double max(RValue a, RValue b, RValue c) throws Exception {
|
public static final double max(RValue a, RValue b, RValue c) throws Exception {
|
||||||
return Math.max(a.invoke(), Math.max(b.invoke(), c.invoke()));
|
return Math.max(a.getValue(), Math.max(b.getValue(), c.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double ceil(RValue x) throws Exception {
|
public static final double ceil(RValue x) throws Exception {
|
||||||
return Math.ceil(x.invoke());
|
return Math.ceil(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double floor(RValue x) throws Exception {
|
public static final double floor(RValue x) throws Exception {
|
||||||
return Math.floor(x.invoke());
|
return Math.floor(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double rint(RValue x) throws Exception {
|
public static final double rint(RValue x) throws Exception {
|
||||||
return Math.rint(x.invoke());
|
return Math.rint(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double round(RValue x) throws Exception {
|
public static final double round(RValue x) throws Exception {
|
||||||
return Math.round(x.invoke());
|
return Math.round(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double exp(RValue x) throws Exception {
|
public static final double exp(RValue x) throws Exception {
|
||||||
return Math.exp(x.invoke());
|
return Math.exp(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double ln(RValue x) throws Exception {
|
public static final double ln(RValue x) throws Exception {
|
||||||
return Math.log(x.invoke());
|
return Math.log(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double log(RValue x) throws Exception {
|
public static final double log(RValue x) throws Exception {
|
||||||
return Math.log(x.invoke());
|
return Math.log(x.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double log10(RValue x) throws Exception {
|
public static final double log10(RValue x) throws Exception {
|
||||||
return Math.log10(x.invoke());
|
return Math.log10(x.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,126 +42,126 @@ public final class Operators {
|
|||||||
|
|
||||||
|
|
||||||
public static final double add(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double add(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() + rhs.invoke();
|
return lhs.getValue() + rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double sub(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double sub(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() - rhs.invoke();
|
return lhs.getValue() - rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double mul(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double mul(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() * rhs.invoke();
|
return lhs.getValue() * rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double div(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double div(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() / rhs.invoke();
|
return lhs.getValue() / rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double mod(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double mod(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() % rhs.invoke();
|
return lhs.getValue() % rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double pow(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double pow(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return Math.pow(lhs.invoke(), rhs.invoke());
|
return Math.pow(lhs.getValue(), rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double neg(RValue x) throws EvaluationException {
|
public static final double neg(RValue x) throws EvaluationException {
|
||||||
return -x.invoke();
|
return -x.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double not(RValue x) throws EvaluationException {
|
public static final double not(RValue x) throws EvaluationException {
|
||||||
return x.invoke() > 0.0 ? 0.0 : 1.0;
|
return x.getValue() > 0.0 ? 0.0 : 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double inv(RValue x) throws EvaluationException {
|
public static final double inv(RValue x) throws EvaluationException {
|
||||||
return ~(long) x.invoke();
|
return ~(long) x.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double lth(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double lth(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() < rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() < rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double gth(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double gth(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() > rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() > rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double leq(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double leq(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() <= rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() <= rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double geq(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double geq(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() >= rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() >= rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double equ(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double equ(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() == rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() == rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double neq(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double neq(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() != rhs.invoke() ? 1.0 : 0.0;
|
return lhs.getValue() != rhs.getValue() ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double near(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double near(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return almostEqual2sComplement(lhs.invoke(), rhs.invoke(), 450359963L) ? 1.0 : 0.0;
|
return almostEqual2sComplement(lhs.getValue(), rhs.getValue(), 450359963L) ? 1.0 : 0.0;
|
||||||
//return Math.abs(lhs.invoke() - rhs.invoke()) < 1e-7 ? 1.0 : 0.0;
|
//return Math.abs(lhs.invoke() - rhs.invoke()) < 1e-7 ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double or(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double or(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() > 0.0 || rhs.invoke() > 0.0 ? 1.0 : 0.0;
|
return lhs.getValue() > 0.0 || rhs.getValue() > 0.0 ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double and(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double and(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.invoke() > 0.0 && rhs.invoke() > 0.0 ? 1.0 : 0.0;
|
return lhs.getValue() > 0.0 && rhs.getValue() > 0.0 ? 1.0 : 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double shl(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double shl(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return (long) lhs.invoke() << (long) rhs.invoke();
|
return (long) lhs.getValue() << (long) rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double shr(RValue lhs, RValue rhs) throws EvaluationException {
|
public static final double shr(RValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return (long) lhs.invoke() >> (long) rhs.invoke();
|
return (long) lhs.getValue() >> (long) rhs.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static final double ass(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double ass(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(rhs.invoke());
|
return lhs.assign(rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double aadd(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double aadd(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(lhs.invoke() + rhs.invoke());
|
return lhs.assign(lhs.getValue() + rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double asub(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double asub(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(lhs.invoke() - rhs.invoke());
|
return lhs.assign(lhs.getValue() - rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double amul(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double amul(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(lhs.invoke() * rhs.invoke());
|
return lhs.assign(lhs.getValue() * rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double adiv(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double adiv(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(lhs.invoke() / rhs.invoke());
|
return lhs.assign(lhs.getValue() / rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double amod(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double amod(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(lhs.invoke() % rhs.invoke());
|
return lhs.assign(lhs.getValue() % rhs.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double aexp(LValue lhs, RValue rhs) throws EvaluationException {
|
public static final double aexp(LValue lhs, RValue rhs) throws EvaluationException {
|
||||||
return lhs.assign(Math.pow(lhs.invoke(), rhs.invoke()));
|
return lhs.assign(Math.pow(lhs.getValue(), rhs.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double inc(LValue x) throws EvaluationException {
|
public static final double inc(LValue x) throws EvaluationException {
|
||||||
return x.assign(x.invoke() + 1);
|
return x.assign(x.getValue() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final double dec(LValue x) throws EvaluationException {
|
public static final double dec(LValue x) throws EvaluationException {
|
||||||
return x.assign(x.invoke() - 1);
|
return x.assign(x.getValue() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public abstract class RValue implements Identifiable {
|
|||||||
this.position = position;
|
this.position = position;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract double invoke() throws EvaluationException;
|
public abstract double getValue() throws EvaluationException;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public abstract String toString();
|
public abstract String toString();
|
||||||
|
@ -38,10 +38,10 @@ public class Sequence extends RValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double invoke() throws EvaluationException {
|
public double getValue() throws EvaluationException {
|
||||||
double ret = 0;
|
double ret = 0;
|
||||||
for (RValue invokable : sequence) {
|
for (RValue invokable : sequence) {
|
||||||
ret = invokable.invoke();
|
ret = invokable.getValue();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ public final class Variable extends LValue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double invoke() {
|
public double getValue() {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,9 +64,9 @@ public class ExpressionTest {
|
|||||||
public void testAssign() throws ExpressionException {
|
public void testAssign() throws ExpressionException {
|
||||||
Expression foo = Expression.compile("{a=x} b=y; c=z", "x", "y", "z", "a", "b", "c");
|
Expression foo = Expression.compile("{a=x} b=y; c=z", "x", "y", "z", "a", "b", "c");
|
||||||
foo.evaluate(2, 3, 5);
|
foo.evaluate(2, 3, 5);
|
||||||
assertEquals(2, foo.getVariable("a").invoke(), 0);
|
assertEquals(2, foo.getVariable("a").getValue(), 0);
|
||||||
assertEquals(3, foo.getVariable("b").invoke(), 0);
|
assertEquals(3, foo.getVariable("b").getValue(), 0);
|
||||||
assertEquals(5, foo.getVariable("c").invoke(), 0);
|
assertEquals(5, foo.getVariable("c").getValue(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private double simpleEval(String expression) throws Exception {
|
private double simpleEval(String expression) throws Exception {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren