a.smali
.class public final Lcom/google/common/a/a;
.super Ljava/lang/Object;
.source "IntMath.java"
# direct methods
.method static constructor <clinit>()V
.registers 8
.prologue
const/4 v7, 0x2
const/4 v6, 0x0
const/4 v5, 0x6
const/4 v4, 0x3
const/4 v3, 0x1
.line 169
const/16 v0, 0x21
new-array v0, v0, [B
const/16 v1, 0x9
aput-byte v1, v0, v6
const/16 v1, 0x9
aput-byte v1, v0, v3
const/16 v1, 0x9
aput-byte v1, v0, v7
const/16 v1, 0x8
aput-byte v1, v0, v4
const/4 v1, 0x4
const/16 v2, 0x8
aput-byte v2, v0, v1
const/4 v1, 0x5
const/16 v2, 0x8
aput-byte v2, v0, v1
const/4 v1, 0x7
aput-byte v1, v0, v5
const/4 v1, 0x7
const/4 v2, 0x7
aput-byte v2, v0, v1
const/16 v1, 0x8
const/4 v2, 0x7
aput-byte v2, v0, v1
const/16 v1, 0x9
aput-byte v5, v0, v1
const/16 v1, 0xa
aput-byte v5, v0, v1
const/16 v1, 0xb
aput-byte v5, v0, v1
const/16 v1, 0xc
aput-byte v5, v0, v1
const/16 v1, 0xd
const/4 v2, 0x5
aput-byte v2, v0, v1
const/16 v1, 0xe
const/4 v2, 0x5
aput-byte v2, v0, v1
const/16 v1, 0xf
const/4 v2, 0x5
aput-byte v2, v0, v1
const/16 v1, 0x10
const/4 v2, 0x4
aput-byte v2, v0, v1
const/16 v1, 0x11
const/4 v2, 0x4
aput-byte v2, v0, v1
const/16 v1, 0x12
const/4 v2, 0x4
aput-byte v2, v0, v1
const/16 v1, 0x13
aput-byte v4, v0, v1
const/16 v1, 0x14
aput-byte v4, v0, v1
const/16 v1, 0x15
aput-byte v4, v0, v1
const/16 v1, 0x16
aput-byte v4, v0, v1
const/16 v1, 0x17
aput-byte v7, v0, v1
const/16 v1, 0x18
aput-byte v7, v0, v1
const/16 v1, 0x19
aput-byte v7, v0, v1
const/16 v1, 0x1a
aput-byte v3, v0, v1
const/16 v1, 0x1b
aput-byte v3, v0, v1
const/16 v1, 0x1c
aput-byte v3, v0, v1
const/16 v1, 0x1d
aput-byte v6, v0, v1
const/16 v1, 0x1e
aput-byte v6, v0, v1
const/16 v1, 0x1f
aput-byte v6, v0, v1
const/16 v1, 0x20
aput-byte v6, v0, v1
.line 172
const/16 v0, 0xa
new-array v0, v0, [I
aput v3, v0, v6
const/16 v1, 0xa
aput v1, v0, v3
const/16 v1, 0x64
aput v1, v0, v7
const/16 v1, 0x3e8
aput v1, v0, v4
const/4 v1, 0x4
const/16 v2, 0x2710
aput v2, v0, v1
const/4 v1, 0x5
const v2, 0x186a0
aput v2, v0, v1
const v1, 0xf4240
aput v1, v0, v5
const/4 v1, 0x7
const v2, 0x989680
aput v2, v0, v1
const/16 v1, 0x8
const v2, 0x5f5e100
aput v2, v0, v1
const/16 v1, 0x9
const v2, 0x3b9aca00
aput v2, v0, v1
.line 176
const/16 v0, 0xa
new-array v0, v0, [I
aput v4, v0, v6
const/16 v1, 0x1f
aput v1, v0, v3
const/16 v1, 0x13c
aput v1, v0, v7
const/16 v1, 0xc5a
aput v1, v0, v4
const/4 v1, 0x4
const/16 v2, 0x7b86
aput v2, v0, v1
const/4 v1, 0x5
const v2, 0x4d343
aput v2, v0, v1
const v1, 0x3040a5
aput v1, v0, v5
const/4 v1, 0x7
const v2, 0x1e28678
aput v2, v0, v1
const/16 v1, 0x8
const v2, 0x12d940b6
aput v2, v0, v1
const/16 v1, 0x9
const v2, 0x7fffffff
aput v2, v0, v1
.line 502
const/16 v0, 0xd
new-array v0, v0, [I
aput v3, v0, v6
aput v3, v0, v3
aput v7, v0, v7
aput v5, v0, v4
const/4 v1, 0x4
const/16 v2, 0x18
aput v2, v0, v1
const/4 v1, 0x5
const/16 v2, 0x78
aput v2, v0, v1
const/16 v1, 0x2d0
aput v1, v0, v5
const/4 v1, 0x7
const/16 v2, 0x13b0
aput v2, v0, v1
const/16 v1, 0x8
const v2, 0x9d80
aput v2, v0, v1
const/16 v1, 0x9
const v2, 0x58980
aput v2, v0, v1
const/16 v1, 0xa
const v2, 0x375f00
aput v2, v0, v1
const/16 v1, 0xb
const v2, 0x2611500
aput v2, v0, v1
const/16 v1, 0xc
const v2, 0x1c8cfc00
aput v2, v0, v1
.line 550
const/16 v0, 0x11
new-array v0, v0, [I
const v1, 0x7fffffff
aput v1, v0, v6
const v1, 0x7fffffff
aput v1, v0, v3
const/high16 v1, 0x10000
aput v1, v0, v7
const/16 v1, 0x929
aput v1, v0, v4
const/4 v1, 0x4
const/16 v2, 0x1dd
aput v2, v0, v1
const/4 v1, 0x5
const/16 v2, 0xc1
aput v2, v0, v1
const/16 v1, 0x6e
aput v1, v0, v5
const/4 v1, 0x7
const/16 v2, 0x4b
aput v2, v0, v1
const/16 v1, 0x8
const/16 v2, 0x3a
aput v2, v0, v1
const/16 v1, 0x9
const/16 v2, 0x31
aput v2, v0, v1
const/16 v1, 0xa
const/16 v2, 0x2b
aput v2, v0, v1
const/16 v1, 0xb
const/16 v2, 0x27
aput v2, v0, v1
const/16 v1, 0xc
const/16 v2, 0x25
aput v2, v0, v1
const/16 v1, 0xd
const/16 v2, 0x23
aput v2, v0, v1
const/16 v1, 0xe
const/16 v2, 0x22
aput v2, v0, v1
const/16 v1, 0xf
const/16 v2, 0x22
aput v2, v0, v1
const/16 v1, 0x10
const/16 v2, 0x21
aput v2, v0, v1
return-void
.end method
.method public static a(IILjava/math/RoundingMode;)I
.registers 10
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 279
invoke-static {p2}, Lcom/google/common/base/n;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 280
if-nez p1, :cond_f
.line 281
new-instance v0, Ljava/lang/ArithmeticException;
const-string v1, "/ by zero"
invoke-direct {v0, v1}, Ljava/lang/ArithmeticException;-><init>(Ljava/lang/String;)V
throw v0
.line 283
:cond_f
div-int v2, p0, p1
.line 284
mul-int v3, p1, v2
sub-int v3, p0, v3
.line 286
if-nez v3, :cond_19
move v0, v2
.line 331
:goto_18
return v0
.line 297
:cond_19
xor-int v4, p0, p1
shr-int/lit8 v4, v4, 0x1f
or-int/lit8 v5, v4, 0x1
.line 299
sget-object v4, Lcom/google/common/a/a$1;->aXT:[I
invoke-virtual {p2}, Ljava/math/RoundingMode;->ordinal()I
move-result v6
aget v4, v4, v6
packed-switch v4, :pswitch_data_70
.line 329
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 301
:pswitch_30
if-nez v3, :cond_3b
:goto_32
invoke-static {v0}, Lcom/google/common/a/c;->aP(Z)V
:pswitch_35
move v0, v1
.line 331
:cond_36
:goto_36
:pswitch_36
if-eqz v0, :cond_6d
add-int v0, v2, v5
goto :goto_18
:cond_3b
move v0, v1
.line 301
goto :goto_32
.line 310
:pswitch_3d
if-gtz v5, :cond_36
move v0, v1
goto :goto_36
.line 313
:pswitch_41
if-ltz v5, :cond_36
move v0, v1
goto :goto_36
.line 318
:pswitch_45
invoke-static {v3}, Ljava/lang/Math;->abs(I)I
move-result v3
.line 319
invoke-static {p1}, Ljava/lang/Math;->abs(I)I
move-result v4
sub-int/2addr v4, v3
sub-int/2addr v3, v4
.line 322
if-nez v3, :cond_69
.line 323
sget-object v3, Ljava/math/RoundingMode;->HALF_UP:Ljava/math/RoundingMode;
if-eq p2, v3, :cond_62
sget-object v3, Ljava/math/RoundingMode;->HALF_EVEN:Ljava/math/RoundingMode;
if-ne p2, v3, :cond_65
move v4, v0
:goto_5a
and-int/lit8 v3, v2, 0x1
if-eqz v3, :cond_67
move v3, v0
:goto_5f
and-int/2addr v3, v4
if-eqz v3, :cond_63
:cond_62
move v1, v0
:cond_63
move v0, v1
goto :goto_36
:cond_65
move v4, v1
goto :goto_5a
:cond_67
move v3, v1
goto :goto_5f
.line 325
:cond_69
if-gtz v3, :cond_36
move v0, v1
goto :goto_36
:cond_6d
move v0, v2
.line 331
goto :goto_18
.line 299
nop
:pswitch_data_70
.packed-switch 0x1
:pswitch_30
:pswitch_35
:pswitch_41
:pswitch_36
:pswitch_3d
:pswitch_45
:pswitch_45
:pswitch_45
.end packed-switch
.end method
.method public static a(ILjava/math/RoundingMode;)I
.registers 6
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 88
const-string v2, "x"
.line 1031
if-gtz p0, :cond_37
.line 1032
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x1a
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " ("
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ") must be > 0"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 89
:cond_37
sget-object v2, Lcom/google/common/a/a$1;->aXT:[I
invoke-virtual {p1}, Ljava/math/RoundingMode;->ordinal()I
move-result v3
aget v2, v2, v3
packed-switch v2, :pswitch_data_7c
.line 112
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 1063
:pswitch_48
if-lez p0, :cond_5b
move v2, v0
:goto_4b
add-int/lit8 v3, p0, -0x1
and-int/2addr v3, p0
if-nez v3, :cond_5d
:goto_50
and-int/2addr v0, v2
.line 91
invoke-static {v0}, Lcom/google/common/a/c;->aP(Z)V
.line 95
:pswitch_54
invoke-static {p0}, Ljava/lang/Integer;->numberOfLeadingZeros(I)I
move-result v0
rsub-int/lit8 v0, v0, 0x1f
.line 109
:goto_5a
return v0
:cond_5b
move v2, v1
.line 1063
goto :goto_4b
:cond_5d
move v0, v1
goto :goto_50
.line 99
:pswitch_5f
add-int/lit8 v0, p0, -0x1
invoke-static {v0}, Ljava/lang/Integer;->numberOfLeadingZeros(I)I
move-result v0
rsub-int/lit8 v0, v0, 0x20
goto :goto_5a
.line 105
:pswitch_68
invoke-static {p0}, Ljava/lang/Integer;->numberOfLeadingZeros(I)I
move-result v0
.line 106
const v1, -0x4afb0ccd
ushr-int/2addr v1, v0
.line 108
rsub-int/lit8 v0, v0, 0x1f
.line 1075
sub-int/2addr v1, p0
xor-int/lit8 v1, v1, -0x1
xor-int/lit8 v1, v1, -0x1
ushr-int/lit8 v1, v1, 0x1f
.line 109
add-int/2addr v0, v1
goto :goto_5a
.line 89
nop
:pswitch_data_7c
.packed-switch 0x1
:pswitch_48
:pswitch_54
:pswitch_54
:pswitch_5f
:pswitch_5f
:pswitch_68
:pswitch_68
:pswitch_68
.end packed-switch
.end method