Add StrictMath emulation PiperOrigin-RevId: 323720845 Change-Id: I58279b243a5bef9eadc8e43f41d24f9c86793f16
diff --git a/user/super/com/google/gwt/emul/java/lang/StrictMath.java b/user/super/com/google/gwt/emul/java/lang/StrictMath.java new file mode 100644 index 0000000..d40b464 --- /dev/null +++ b/user/super/com/google/gwt/emul/java/lang/StrictMath.java
@@ -0,0 +1,239 @@ +/* + * Copyright 2020 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package java.lang; + +/** StrictMath utility methods and constants. */ +public final class StrictMath { + + public static final double E = Math.E; + public static final double PI = Math.PI; + + public static double abs(double x) { + return Math.abs(x); + } + + public static float abs(float x) { + return Math.abs(x); + } + + public static int abs(int x) { + return Math.abs(x); + } + + public static double acos(double x) { + return Math.acos(x); + } + + public static int addExact(int x, int y) { + return Math.addExact(x, y); + } + + public static long addExact(long x, long y) { + return Math.addExact(x, y); + } + + public static double asin(double x) { + return Math.asin(x); + } + + public static double atan(double x) { + return Math.atan(x); + } + + public static double atan2(double y, double x) { + return Math.atan(x); + } + + public static double ceil(double x) { + return Math.ceil(x); + } + + public static double copySign(double magnitude, double sign) { + return Math.copySign(magnitude, sign); + } + + public static float copySign(float magnitude, float sign) { + return Math.copySign(magnitude, sign); + } + + public static double cos(double x) { + return Math.cos(x); + } + + public static double cosh(double x) { + return Math.cosh(x); + } + + public static double exp(double x) { + return Math.exp(x); + } + + public static double expm1(double x) { + return Math.expm1(x); + } + + public static double floor(double x) { + return Math.floor(x); + } + + public static int floorDiv(int dividend, int divisor) { + return Math.floorDiv(dividend, divisor); + } + + public static long floorDiv(long dividend, long divisor) { + return Math.floorDiv(dividend, divisor); + } + + public static int floorMod(int dividend, int divisor) { + return Math.floorMod(dividend, divisor); + } + + public static long floorMod(long dividend, long divisor) { + return Math.floorMod(dividend, divisor); + } + + public static double hypot(double x, double y) { + return Math.hypot(x, y); + } + + public static double log(double x) { + return Math.log(x); + } + + public static double log10(double x) { + return Math.log10(x); + } + + public static double log1p(double x) { + return Math.log1p(x); + } + + public static double max(double x, double y) { + return Math.max(x, y); + } + + public static float max(float x, float y) { + return Math.max(x, y); + } + + public static int max(int x, int y) { + return Math.max(x, y); + } + + public static long max(long x, long y) { + return Math.max(x, y); + } + + public static double min(double x, double y) { + return Math.min(x, y); + } + + public static float min(float x, float y) { + return Math.min(x, y); + } + + public static int min(int x, int y) { + return Math.min(x, y); + } + + public static long min(long x, long y) { + return Math.min(x, y); + } + + public static int multiplyExact(int x, int y) { + return Math.multiplyExact(x, y); + } + + public static long multiplyExact(long x, long y) { + return Math.multiplyExact(x, y); + } + + public static double pow(double x, double exp) { + return Math.pow(x, exp); + } + + public static double random() { + return Math.random(); + } + + public static double rint(double x) { + return Math.rint(x); + } + + public static long round(double x) { + return Math.round(x); + } + + public static int round(float x) { + return Math.round(x); + } + + public static double scalb(double d, int scaleFactor) { + return Math.scalb(d, scaleFactor); + } + + public static float scalb(float f, int scaleFactor) { + return Math.scalb(f, scaleFactor); + } + + public static double signum(double d) { + return Math.signum(d); + } + + public static float signum(float f) { + return Math.signum(f); + } + + public static double sin(double x) { + return Math.sin(x); + } + + public static double sinh(double x) { + return Math.sinh(x); + } + + public static double sqrt(double x) { + return Math.sqrt(x); + } + + public static int subtractExact(int x, int y) { + return Math.subtractExact(x, y); + } + + public static long subtractExact(long x, long y) { + return Math.subtractExact(x, y); + } + + public static double tan(double x) { + return Math.tan(x); + } + + public static double tanh(double x) { + return Math.tanh(x); + } + + public static double toDegrees(double x) { + return Math.toDegrees(x); + } + + public static int toIntExact(long x) { + return Math.toIntExact(x); + } + + public static double toRadians(double x) { + return Math.toRadians(x); + } +}