PlatformMathUtils.smali

.class Lorg/jbox2d/common/PlatformMathUtils;
.super Ljava/lang/Object;
.source "PlatformMathUtils.java"


# static fields
.field private static final INV_SHIFT23:F = 1.1920929E-7f

.field private static final SHIFT23:F = 8388608.0f


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

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

    return-void
.end method

.method public static final fastPow(FF)F
    .registers 7

    .prologue
    const/high16 v4, 0x42fe0000    # 127.0f

    const/4 v3, 0x0

    .line 36
    invoke-static {p0}, Ljava/lang/Float;->floatToRawIntBits(F)I

    move-result v0

    int-to-float v0, v0

    .line 37
    const/high16 v1, 0x34000000

    mul-float/2addr v0, v1

    .line 38
    sub-float v1, v0, v4

    .line 39
    cmpl-float v0, v1, v3

    if-ltz v0, :cond_3a

    float-to-int v0, v1

    :goto_12
    int-to-float v0, v0

    sub-float v0, v1, v0

    .line 40
    mul-float v2, v0, v0

    sub-float/2addr v0, v2

    const v2, 0x3eb17679    # 0.346607f

    mul-float/2addr v0, v2

    add-float/2addr v0, v1

    mul-float v1, p1, v0

    .line 41
    cmpl-float v0, v1, v3

    if-ltz v0, :cond_3e

    float-to-int v0, v1

    :goto_24
    int-to-float v0, v0

    sub-float v0, v1, v0

    .line 42
    mul-float v2, v0, v0

    sub-float/2addr v0, v2

    const v2, 0x3eadee78    # 0.33971f

    mul-float/2addr v0, v2

    .line 43
    add-float/2addr v1, v4

    sub-float v0, v1, v0

    const/high16 v1, 0x4b000000    # 8388608.0f

    mul-float/2addr v0, v1

    float-to-int v0, v0

    invoke-static {v0}, Ljava/lang/Float;->intBitsToFloat(I)F

    move-result v0

    return v0

    .line 39
    :cond_3a
    float-to-int v0, v1

    add-int/lit8 v0, v0, -0x1

    goto :goto_12

    .line 41
    :cond_3e
    float-to-int v0, v1

    add-int/lit8 v0, v0, -0x1

    goto :goto_24
.end method