optimized tan

This commit is contained in:
Zoë Gidiere 2023-11-08 19:52:05 -07:00
parent 3f9f2bdce4
commit b3ef4ac79c
2 changed files with 5 additions and 1 deletions

View File

@ -111,7 +111,7 @@ public class StructureScript implements Structure, Keyed<StructureScript> {
.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())))

View File

@ -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);