package com.google.common.math;

import com.bumptech.glide.f;
import java.math.RoundingMode;

/* JADX INFO: loaded from: classes2.dex */
public abstract class c {

    /* JADX INFO: renamed from: a, reason: collision with root package name */
    public static final /* synthetic */ int f23756a = 0;

    static {
        Math.log(2.0d);
    }

    public static boolean a(double d10) {
        return f.k(d10) && (d10 == 0.0d || 52 - Long.numberOfTrailingZeros(f.i(d10)) <= Math.getExponent(d10));
    }

    public static boolean b(double d10) {
        if (d10 <= 0.0d || !f.k(d10)) {
            return false;
        }
        long jI = f.i(d10);
        return (jI & (jI - 1)) == 0;
    }

    /* JADX WARN: Removed duplicated region for block: B:38:? A[RETURN, SYNTHETIC] */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    public static int c(double d10, RoundingMode roundingMode) {
        boolean z10;
        boolean z11;
        boolean zB;
        if (!(d10 > 0.0d && f.k(d10))) {
            throw new IllegalArgumentException("x must be positive and finite");
        }
        int exponent = Math.getExponent(d10);
        if (Math.getExponent(d10) < -1022) {
            return c(d10 * 4.503599627370496E15d, roundingMode) - 52;
        }
        switch (b.f23755a[roundingMode.ordinal()]) {
            case 1:
                if (b(d10)) {
                    return exponent;
                }
                throw new ArithmeticException("mode was UNNECESSARY, but rounding was necessary");
            case 2:
                return exponent;
            case 3:
                z10 = !b(d10);
                if (!z10) {
                    return exponent;
                }
                return exponent + 1;
            case 4:
                z11 = exponent < 0;
                zB = b(d10);
                z10 = (!zB) & z11;
                if (!z10) {
                }
                return exponent + 1;
            case 5:
                z11 = exponent >= 0;
                zB = b(d10);
                z10 = (!zB) & z11;
                if (!z10) {
                }
                return exponent + 1;
            case 6:
            case 7:
            case 8:
                double dLongBitsToDouble = Double.longBitsToDouble((Double.doubleToRawLongBits(d10) & 4503599627370495L) | 4607182418800017408L);
                if (dLongBitsToDouble * dLongBitsToDouble <= 2.0d) {
                    return exponent;
                }
                return exponent + 1;
            default:
                throw new AssertionError();
        }
    }

    /* JADX WARN: Removed duplicated region for block: B:41:0x0088  */
    /* JADX WARN: Removed duplicated region for block: B:42:0x008a  */
    /* JADX WARN: Removed duplicated region for block: B:46:0x0092  */
    /* JADX WARN: Removed duplicated region for block: B:49:0x0096  */
    /* JADX WARN: Removed duplicated region for block: B:51:0x0098  */
    /*
        Code decompiled incorrectly, please refer to instructions dump.
    */
    public static long d(double d10, RoundingMode roundingMode) {
        double dRint;
        long j10;
        if (!f.k(d10)) {
            throw new ArithmeticException("input is infinite or NaN");
        }
        switch (b.f23755a[roundingMode.ordinal()]) {
            case 1:
                if (!a(d10)) {
                    throw new ArithmeticException("mode was UNNECESSARY, but rounding was necessary");
                }
                dRint = d10;
                if (!((-9.223372036854776E18d) - dRint >= 1.0d) || !(dRint < 9.223372036854776E18d)) {
                    return (long) dRint;
                }
                throw new ArithmeticException("rounded value is out of range for input " + d10 + " and rounding mode " + roundingMode);
            case 2:
                if (d10 >= 0.0d || a(d10)) {
                    dRint = d10;
                    if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                    }
                } else {
                    j10 = ((long) d10) - 1;
                    dRint = j10;
                    if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                    }
                }
                break;
            case 3:
                if (d10 <= 0.0d || a(d10)) {
                    dRint = d10;
                    if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                    }
                } else {
                    j10 = ((long) d10) + 1;
                    dRint = j10;
                    if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                    }
                }
                break;
            case 4:
                dRint = d10;
                if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                }
                break;
            case 5:
                if (a(d10)) {
                    dRint = d10;
                } else {
                    dRint = ((long) d10) + ((long) (d10 > 0.0d ? 1 : -1));
                }
                if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                }
                break;
            case 6:
                dRint = Math.rint(d10);
                if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                }
                break;
            case 7:
                dRint = Math.rint(d10);
                if (Math.abs(d10 - dRint) == 0.5d) {
                    dRint = Math.copySign(0.5d, d10) + d10;
                }
                if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                }
                break;
            case 8:
                dRint = Math.rint(d10);
                if (Math.abs(d10 - dRint) == 0.5d) {
                    dRint = d10;
                }
                if (!(((-9.223372036854776E18d) - dRint >= 1.0d) & (dRint < 9.223372036854776E18d))) {
                }
                break;
            default:
                throw new AssertionError();
        }
    }
}
