- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
129 lines
3.4 KiB
Java
129 lines
3.4 KiB
Java
package androidx.core.math;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class MathUtils {
|
|
public static double clamp(double d, double d2, double d3) {
|
|
return d < d2 ? d2 : d > d3 ? d3 : d;
|
|
}
|
|
|
|
public static float clamp(float f, float f2, float f3) {
|
|
return f < f2 ? f2 : f > f3 ? f3 : f;
|
|
}
|
|
|
|
public static int clamp(int i, int i2, int i3) {
|
|
return i < i2 ? i2 : i > i3 ? i3 : i;
|
|
}
|
|
|
|
public static long clamp(long j, long j2, long j3) {
|
|
return j < j2 ? j2 : j > j3 ? j3 : j;
|
|
}
|
|
|
|
private MathUtils() {
|
|
}
|
|
|
|
public static int addExact(int i, int i2) {
|
|
int i3 = i + i2;
|
|
if ((i >= 0) == (i2 >= 0)) {
|
|
if ((i >= 0) != (i3 >= 0)) {
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
}
|
|
return i3;
|
|
}
|
|
|
|
public static long addExact(long j, long j2) {
|
|
long j3 = j + j2;
|
|
if ((j >= 0) == (j2 >= 0)) {
|
|
if ((j >= 0) != (j3 >= 0)) {
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
}
|
|
return j3;
|
|
}
|
|
|
|
public static int subtractExact(int i, int i2) {
|
|
int i3 = i - i2;
|
|
if ((i < 0) != (i2 < 0)) {
|
|
if ((i < 0) != (i3 < 0)) {
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
}
|
|
return i3;
|
|
}
|
|
|
|
public static long subtractExact(long j, long j2) {
|
|
long j3 = j - j2;
|
|
if ((j < 0) != (j2 < 0)) {
|
|
if ((j < 0) != (j3 < 0)) {
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
}
|
|
return j3;
|
|
}
|
|
|
|
public static int multiplyExact(int i, int i2) {
|
|
int i3 = i * i2;
|
|
if (i == 0 || i2 == 0 || (i3 / i == i2 && i3 / i2 == i)) {
|
|
return i3;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static long multiplyExact(long j, long j2) {
|
|
long j3 = j * j2;
|
|
if (j == 0 || j2 == 0 || (j3 / j == j2 && j3 / j2 == j)) {
|
|
return j3;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static int incrementExact(int i) {
|
|
if (i != Integer.MAX_VALUE) {
|
|
return i + 1;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static long incrementExact(long j) {
|
|
if (j != Long.MAX_VALUE) {
|
|
return j + 1;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static int decrementExact(int i) {
|
|
if (i != Integer.MIN_VALUE) {
|
|
return i - 1;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static long decrementExact(long j) {
|
|
if (j != Long.MIN_VALUE) {
|
|
return j - 1;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static int negateExact(int i) {
|
|
if (i != Integer.MIN_VALUE) {
|
|
return -i;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static long negateExact(long j) {
|
|
if (j != Long.MIN_VALUE) {
|
|
return -j;
|
|
}
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
|
|
public static int toIntExact(long j) {
|
|
if (j > 2147483647L || j < -2147483648L) {
|
|
throw new ArithmeticException("integer overflow");
|
|
}
|
|
return (int) j;
|
|
}
|
|
}
|