From b3ef4ac79c6e87b4ebf28437008dd33c13c09b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Wed, 8 Nov 2023 19:52:05 -0700 Subject: [PATCH 1/2] optimized tan --- .../terra/addons/terrascript/script/StructureScript.java | 2 +- .../api/src/main/java/com/dfsek/terra/api/util/MathUtil.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 032108784..0657a4281 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -111,7 +111,7 @@ public class StructureScript implements Structure, Keyed { .registerFunction("round", new UnaryNumberFunctionBuilder(number -> Math.round(number.doubleValue()))) .registerFunction("sin", new UnaryNumberFunctionBuilder(number -> MathUtil.sin(number.doubleValue()))) .registerFunction("cos", new UnaryNumberFunctionBuilder(number -> MathUtil.cos(number.doubleValue()))) - .registerFunction("tan", new UnaryNumberFunctionBuilder(number -> Math.tan(number.doubleValue()))) + .registerFunction("tan", new UnaryNumberFunctionBuilder(number -> MathUtil.tan(number.doubleValue()))) .registerFunction("asin", new UnaryNumberFunctionBuilder(number -> Math.asin(number.doubleValue()))) .registerFunction("acos", new UnaryNumberFunctionBuilder(number -> Math.acos(number.doubleValue()))) .registerFunction("atan", new UnaryNumberFunctionBuilder(number -> Math.atan(number.doubleValue()))) diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java index 716b879af..7227d9c0e 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/MathUtil.java @@ -55,6 +55,10 @@ public final class MathUtil { return cos[(int) (rad * radToIndex) & SIN_MASK]; } + public static double tan(double rad) { + return sin(rad)/cos(rad); + } + public static double invSqrt(double x) { double xhalf = 0.5d * x; long i = Double.doubleToLongBits(x); From 020033f8390454d638459f9ea4bbb36eb03d2ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Wed, 8 Nov 2023 19:53:36 -0700 Subject: [PATCH 2/2] add rsqrt ts function --- .../dfsek/terra/addons/terrascript/script/StructureScript.java | 1 + 1 file changed, 1 insertion(+) diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 0657a4281..bbf9394b7 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -105,6 +105,7 @@ public class StructureScript implements Structure, Keyed { .registerFunction("pow", new BinaryNumberFunctionBuilder( (number, number2) -> Math.pow(number.doubleValue(), number2.doubleValue()))) .registerFunction("sqrt", new UnaryNumberFunctionBuilder(number -> Math.sqrt(number.doubleValue()))) + .registerFunction("rsqrt", new UnaryNumberFunctionBuilder(number -> MathUtil.invSqrt(number.doubleValue()))) .registerFunction("floor", new UnaryNumberFunctionBuilder(number -> Math.floor(number.doubleValue()))) .registerFunction("ceil", new UnaryNumberFunctionBuilder(number -> Math.ceil(number.doubleValue()))) .registerFunction("log", new UnaryNumberFunctionBuilder(number -> Math.log(number.doubleValue())))