HyperSpline$Cubic.smali

.class public Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;
.super Ljava/lang/Object;
.source "HyperSpline.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Landroidx/constraintlayout/motion/utils/HyperSpline;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x9
    name = "Cubic"
.end annotation


# static fields
.field public static final HALF:D = 0.5

.field public static final THIRD:D = 0.3333333333333333


# instance fields
.field public mA:D

.field public mB:D

.field public mC:D

.field public mD:D


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

    return-void
.end method

.method public constructor <init>(DDDD)V
    .registers 9

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

    iput-wide p1, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mA:D

    iput-wide p3, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mB:D

    iput-wide p5, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mC:D

    iput-wide p7, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mD:D

    return-void
.end method


# virtual methods
.method public eval(D)D
    .registers 7

    iget-wide v0, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mD:D

    mul-double v0, v0, p1

    iget-wide v2, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mC:D

    add-double/2addr v0, v2

    mul-double v0, v0, p1

    iget-wide v2, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mB:D

    add-double/2addr v0, v2

    mul-double v0, v0, p1

    iget-wide p1, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mA:D

    add-double/2addr v0, p1

    return-wide v0
.end method

.method public vel(D)D
    .registers 9

    iget-wide v0, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mD:D

    const-wide v2, 0x3fd5555555555555L    # 0.3333333333333333

    mul-double v0, v0, v2

    mul-double v0, v0, p1

    iget-wide v2, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mC:D

    const-wide/high16 v4, 0x3fe0000000000000L    # 0.5

    mul-double v2, v2, v4

    add-double/2addr v0, v2

    mul-double v0, v0, p1

    iget-wide p1, p0, Landroidx/constraintlayout/motion/utils/HyperSpline$Cubic;->mB:D

    add-double/2addr v0, p1

    return-wide v0
.end method