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