h.smali

.class public Lcom/ss/android/downloadlib/guide/install/h;
.super Ljava/lang/Object;
.source "CubicBezierInterpolator.java"

# interfaces
.implements Landroid/view/animation/Interpolator;


# instance fields
.field private a:I

.field private final b:Landroid/graphics/PointF;

.field private final c:Landroid/graphics/PointF;


# direct methods
.method public constructor <init>(FFFF)V
    .registers 6

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

    .line 12
    const/4 v0, 0x0

    iput v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->a:I

    .line 15
    new-instance v0, Landroid/graphics/PointF;

    invoke-direct {v0}, Landroid/graphics/PointF;-><init>()V

    iput-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->b:Landroid/graphics/PointF;

    .line 16
    new-instance v0, Landroid/graphics/PointF;

    invoke-direct {v0}, Landroid/graphics/PointF;-><init>()V

    iput-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->c:Landroid/graphics/PointF;

    .line 19
    iget-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->b:Landroid/graphics/PointF;

    iput p1, v0, Landroid/graphics/PointF;->x:F

    .line 20
    iget-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->b:Landroid/graphics/PointF;

    iput p2, v0, Landroid/graphics/PointF;->y:F

    .line 21
    iget-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->c:Landroid/graphics/PointF;

    iput p3, v0, Landroid/graphics/PointF;->x:F

    .line 22
    iget-object v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->c:Landroid/graphics/PointF;

    iput p4, v0, Landroid/graphics/PointF;->y:F

    .line 23
    return-void
.end method

.method public static a(DDD)D
    .registers 16

    .prologue
    const-wide/high16 v8, 0x4008000000000000L    # 3.0

    .line 52
    const-wide/high16 v0, 0x3ff0000000000000L    # 1.0

    sub-double/2addr v0, p0

    .line 53
    mul-double v2, p0, p0

    .line 54
    mul-double v4, v0, v0

    .line 55
    mul-double v6, v2, p0

    .line 56
    mul-double/2addr v4, v8

    mul-double/2addr v4, p0

    mul-double/2addr v4, p2

    mul-double/2addr v0, v8

    mul-double/2addr v0, v2

    mul-double/2addr v0, p4

    add-double/2addr v0, v4

    add-double/2addr v0, v6

    return-wide v0
.end method


# virtual methods
.method public getInterpolation(F)F
    .registers 11

    .prologue
    const/4 v8, 0x0

    .line 27
    .line 29
    const/4 v0, 0x0

    cmpl-float v0, p1, v0

    if-nez v0, :cond_8

    .line 30
    iput v8, p0, Lcom/ss/android/downloadlib/guide/install/h;->a:I

    .line 34
    :cond_8
    iget v0, p0, Lcom/ss/android/downloadlib/guide/install/h;->a:I

    move v7, v0

    move v0, p1

    :goto_c
    const/16 v1, 0x80

    if-ge v7, v1, :cond_2c

    .line 35
    int-to-float v0, v7

    const/high16 v1, 0x3c000000    # 0.0078125f

    mul-float v6, v0, v1

    .line 36
    float-to-double v0, v6

    iget-object v2, p0, Lcom/ss/android/downloadlib/guide/install/h;->b:Landroid/graphics/PointF;

    iget v2, v2, Landroid/graphics/PointF;->x:F

    float-to-double v2, v2

    iget-object v4, p0, Lcom/ss/android/downloadlib/guide/install/h;->c:Landroid/graphics/PointF;

    iget v4, v4, Landroid/graphics/PointF;->x:F

    float-to-double v4, v4

    invoke-static/range {v0 .. v5}, Lcom/ss/android/downloadlib/guide/install/h;->a(DDD)D

    move-result-wide v0

    .line 37
    float-to-double v2, p1

    cmpl-double v0, v0, v2

    if-ltz v0, :cond_45

    .line 38
    iput v7, p0, Lcom/ss/android/downloadlib/guide/install/h;->a:I

    move v0, v6

    .line 42
    :cond_2c
    float-to-double v0, v0

    iget-object v2, p0, Lcom/ss/android/downloadlib/guide/install/h;->b:Landroid/graphics/PointF;

    iget v2, v2, Landroid/graphics/PointF;->y:F

    float-to-double v2, v2

    iget-object v4, p0, Lcom/ss/android/downloadlib/guide/install/h;->c:Landroid/graphics/PointF;

    iget v4, v4, Landroid/graphics/PointF;->y:F

    float-to-double v4, v4

    invoke-static/range {v0 .. v5}, Lcom/ss/android/downloadlib/guide/install/h;->a(DDD)D

    move-result-wide v0

    .line 45
    const/high16 v2, 0x3f800000    # 1.0f

    cmpl-float v2, p1, v2

    if-nez v2, :cond_43

    .line 46
    iput v8, p0, Lcom/ss/android/downloadlib/guide/install/h;->a:I

    .line 48
    :cond_43
    double-to-float v0, v0

    return v0

    .line 34
    :cond_45
    add-int/lit8 v0, v7, 0x1

    move v7, v0

    move v0, v6

    goto :goto_c
.end method