MathUtils.smali

.class public Lcom/cleanmaster/util/MathUtils;
.super Ljava/lang/Object;
.source "MathUtils.java"


# static fields
.field private static final DEG_TO_RAD:F = 0.017453292f

.field private static final RAD_TO_DEG:F = 57.295784f

.field private static final sRandom:Ljava/util/Random;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 10
    new-instance v0, Ljava/util/Random;

    invoke-direct {v0}, Ljava/util/Random;-><init>()V

    sput-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    return-void
.end method

.method private constructor <init>()V
    .registers 1

    .prologue
    .line 14
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 15
    return-void
.end method

.method public static abs(F)F
    .registers 2

    .prologue
    .line 18
    const/4 v0, 0x0

    cmpl-float v0, p0, v0

    if-lez v0, :cond_6

    :goto_5
    return p0

    :cond_6
    neg-float p0, p0

    goto :goto_5
.end method

.method public static acos(F)F
    .registers 3

    .prologue
    .line 119
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->acos(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static asin(F)F
    .registers 3

    .prologue
    .line 123
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->asin(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static atan(F)F
    .registers 3

    .prologue
    .line 127
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->atan(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static atan2(FF)F
    .registers 6

    .prologue
    .line 131
    float-to-double v0, p0

    float-to-double v2, p1

    invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->atan2(DD)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static constrain(FFF)F
    .registers 4

    .prologue
    .line 30
    cmpg-float v0, p0, p1

    if-gez v0, :cond_5

    :goto_4
    return p1

    :cond_5
    cmpl-float v0, p0, p2

    if-lez v0, :cond_b

    move p1, p2

    goto :goto_4

    :cond_b
    move p1, p0

    goto :goto_4
.end method

.method public static constrain(III)I
    .registers 3

    .prologue
    .line 22
    if-ge p0, p1, :cond_3

    :goto_2
    return p1

    :cond_3
    if-le p0, p2, :cond_7

    move p1, p2

    goto :goto_2

    :cond_7
    move p1, p0

    goto :goto_2
.end method

.method public static constrain(JJJ)J
    .registers 8

    .prologue
    .line 26
    cmp-long v0, p0, p2

    if-gez v0, :cond_5

    :goto_4
    return-wide p2

    :cond_5
    cmp-long v0, p0, p4

    if-lez v0, :cond_b

    move-wide p2, p4

    goto :goto_4

    :cond_b
    move-wide p2, p0

    goto :goto_4
.end method

.method public static cross(FFFF)F
    .registers 6

    .prologue
    .line 107
    mul-float v0, p0, p3

    mul-float v1, p1, p2

    sub-float/2addr v0, v1

    return v0
.end method

.method public static degrees(F)F
    .registers 2

    .prologue
    .line 115
    const v0, 0x42652ee2

    mul-float/2addr v0, p0

    return v0
.end method

.method public static dist(FFFF)F
    .registers 8

    .prologue
    .line 78
    sub-float v0, p2, p0

    .line 79
    sub-float v1, p3, p1

    .line 80
    float-to-double v2, v0

    float-to-double v0, v1

    invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->hypot(DD)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static dist(FFFFFF)F
    .registers 9

    .prologue
    .line 84
    sub-float v0, p3, p0

    .line 85
    sub-float v1, p4, p1

    .line 86
    sub-float v2, p5, p2

    .line 87
    mul-float/2addr v0, v0

    mul-float/2addr v1, v1

    add-float/2addr v0, v1

    mul-float v1, v2, v2

    add-float/2addr v0, v1

    float-to-double v0, v0

    invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static dot(FFFF)F
    .registers 6

    .prologue
    .line 103
    mul-float v0, p0, p2

    mul-float v1, p1, p3

    add-float/2addr v0, v1

    return v0
.end method

.method public static exp(F)F
    .registers 3

    .prologue
    .line 38
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->exp(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static lerp(FFF)F
    .registers 4

    .prologue
    .line 139
    sub-float v0, p1, p0

    mul-float/2addr v0, p2

    add-float/2addr v0, p0

    return v0
.end method

.method public static log(F)F
    .registers 3

    .prologue
    .line 34
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->log(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static mag(FF)F
    .registers 6

    .prologue
    .line 91
    float-to-double v0, p0

    float-to-double v2, p1

    invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->hypot(DD)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static mag(FFF)F
    .registers 5

    .prologue
    .line 95
    mul-float v0, p0, p0

    mul-float v1, p1, p1

    add-float/2addr v0, v1

    mul-float v1, p2, p2

    add-float/2addr v0, v1

    float-to-double v0, v0

    invoke-static {v0, v1}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static map(FFFFF)F
    .registers 8

    .prologue
    .line 147
    sub-float v0, p2, p3

    sub-float v1, p4, p0

    sub-float v2, p1, p0

    div-float/2addr v1, v2

    mul-float/2addr v0, v1

    add-float/2addr v0, p2

    return v0
.end method

.method public static max(FF)F
    .registers 3

    .prologue
    .line 46
    cmpl-float v0, p0, p1

    if-lez v0, :cond_5

    :goto_4
    return p0

    :cond_5
    move p0, p1

    goto :goto_4
.end method

.method public static max(FFF)F
    .registers 4

    .prologue
    .line 54
    cmpl-float v0, p0, p1

    if-lez v0, :cond_a

    cmpl-float v0, p0, p2

    if-lez v0, :cond_9

    move p2, p0

    :cond_9
    :goto_9
    return p2

    :cond_a
    cmpl-float v0, p1, p2

    if-lez v0, :cond_9

    move p2, p1

    goto :goto_9
.end method

.method public static max(II)F
    .registers 3

    .prologue
    .line 50
    if-le p0, p1, :cond_4

    int-to-float v0, p0

    :goto_3
    return v0

    :cond_4
    int-to-float v0, p1

    goto :goto_3
.end method

.method public static max(III)F
    .registers 4

    .prologue
    .line 58
    if-le p0, p1, :cond_8

    if-le p0, p2, :cond_6

    :goto_4
    int-to-float v0, p0

    :goto_5
    return v0

    :cond_6
    move p0, p2

    goto :goto_4

    :cond_8
    if-le p1, p2, :cond_c

    :goto_a
    int-to-float v0, p1

    goto :goto_5

    :cond_c
    move p1, p2

    goto :goto_a
.end method

.method public static min(FF)F
    .registers 3

    .prologue
    .line 62
    cmpg-float v0, p0, p1

    if-gez v0, :cond_5

    :goto_4
    return p0

    :cond_5
    move p0, p1

    goto :goto_4
.end method

.method public static min(FFF)F
    .registers 4

    .prologue
    .line 70
    cmpg-float v0, p0, p1

    if-gez v0, :cond_a

    cmpg-float v0, p0, p2

    if-gez v0, :cond_9

    move p2, p0

    :cond_9
    :goto_9
    return p2

    :cond_a
    cmpg-float v0, p1, p2

    if-gez v0, :cond_9

    move p2, p1

    goto :goto_9
.end method

.method public static min(II)F
    .registers 3

    .prologue
    .line 66
    if-ge p0, p1, :cond_4

    int-to-float v0, p0

    :goto_3
    return v0

    :cond_4
    int-to-float v0, p1

    goto :goto_3
.end method

.method public static min(III)F
    .registers 4

    .prologue
    .line 74
    if-ge p0, p1, :cond_8

    if-ge p0, p2, :cond_6

    :goto_4
    int-to-float v0, p0

    :goto_5
    return v0

    :cond_6
    move p0, p2

    goto :goto_4

    :cond_8
    if-ge p1, p2, :cond_c

    :goto_a
    int-to-float v0, p1

    goto :goto_5

    :cond_c
    move p1, p2

    goto :goto_a
.end method

.method public static norm(FFF)F
    .registers 5

    .prologue
    .line 143
    sub-float v0, p2, p0

    sub-float v1, p1, p0

    div-float/2addr v0, v1

    return v0
.end method

.method public static pow(FF)F
    .registers 6

    .prologue
    .line 42
    float-to-double v0, p0

    float-to-double v2, p1

    invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->pow(DD)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method

.method public static radians(F)F
    .registers 2

    .prologue
    .line 111
    const v0, 0x3c8efa35

    mul-float/2addr v0, p0

    return v0
.end method

.method public static random(F)F
    .registers 2

    .prologue
    .line 159
    sget-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    invoke-virtual {v0}, Ljava/util/Random;->nextFloat()F

    move-result v0

    mul-float/2addr v0, p0

    return v0
.end method

.method public static random(FF)F
    .registers 4

    .prologue
    .line 163
    cmpl-float v0, p0, p1

    if-ltz v0, :cond_5

    :goto_4
    return p0

    :cond_5
    sget-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    invoke-virtual {v0}, Ljava/util/Random;->nextFloat()F

    move-result v0

    sub-float v1, p1, p0

    mul-float/2addr v0, v1

    add-float/2addr p0, v0

    goto :goto_4
.end method

.method public static random(I)I
    .registers 3

    .prologue
    .line 151
    sget-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    invoke-virtual {v0}, Ljava/util/Random;->nextFloat()F

    move-result v0

    int-to-float v1, p0

    mul-float/2addr v0, v1

    float-to-int v0, v0

    return v0
.end method

.method public static random(II)I
    .registers 4

    .prologue
    .line 155
    if-lt p0, p1, :cond_3

    :goto_2
    return p0

    :cond_3
    sget-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    invoke-virtual {v0}, Ljava/util/Random;->nextFloat()F

    move-result v0

    sub-int v1, p1, p0

    int-to-float v1, v1

    mul-float/2addr v0, v1

    int-to-float v1, p0

    add-float/2addr v0, v1

    float-to-int p0, v0

    goto :goto_2
.end method

.method public static randomSeed(J)V
    .registers 4

    .prologue
    .line 167
    sget-object v0, Lcom/cleanmaster/util/MathUtils;->sRandom:Ljava/util/Random;

    invoke-virtual {v0, p0, p1}, Ljava/util/Random;->setSeed(J)V

    .line 168
    return-void
.end method

.method public static sq(F)F
    .registers 2

    .prologue
    .line 99
    mul-float v0, p0, p0

    return v0
.end method

.method public static tan(F)F
    .registers 3

    .prologue
    .line 135
    float-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Math;->tan(D)D

    move-result-wide v0

    double-to-float v0, v0

    return v0
.end method