public class android.util.Spline$MonotoneCubicSpline extends android.util.Spline
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.util.Spline$MonotoneCubicSpline
super_class: android.util.Spline
{
private float[] mX;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private float[] mY;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private float[] mM;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
public void <init>(float[], float[]);
descriptor: ([F[F)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 // android.util.Spline$MonotoneCubicSpline this
start local 1 // float[] x
start local 2 // float[] y
0: .line 129
aload 0 /* this */
invokespecial android.util.Spline.<init>:()V
1: .line 130
aload 1 /* x */
ifnull 2
aload 2 /* y */
ifnull 2
aload 1 /* x */
arraylength
aload 2 /* y */
arraylength
if_icmpne 2
aload 1 /* x */
arraylength
iconst_2
if_icmpge 3
2: .line 131
StackMap locals: android.util.Spline$MonotoneCubicSpline float[] float[]
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "There must be at least two control points and the arrays must be of equal length."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: .line 135
StackMap locals:
StackMap stack:
aload 1 /* x */
arraylength
istore 3 /* n */
start local 3 // int n
4: .line 136
iload 3 /* n */
iconst_1
isub
newarray 6
astore 4 /* d */
start local 4 // float[] d
5: .line 137
iload 3 /* n */
newarray 6
astore 5 /* m */
start local 5 // float[] m
6: .line 140
iconst_0
istore 6 /* i */
start local 6 // int i
7: goto 13
8: .line 141
StackMap locals: android.util.Spline$MonotoneCubicSpline float[] float[] int float[] float[] int
StackMap stack:
aload 1 /* x */
iload 6 /* i */
iconst_1
iadd
faload
aload 1 /* x */
iload 6 /* i */
faload
fsub
fstore 7 /* h */
start local 7 // float h
9: .line 142
fload 7 /* h */
fconst_0
fcmpg
ifgt 11
10: .line 143
new java.lang.IllegalArgumentException
dup
ldc "The control points must all have strictly increasing X values."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: .line 146
StackMap locals: float
StackMap stack:
aload 4 /* d */
iload 6 /* i */
aload 2 /* y */
iload 6 /* i */
iconst_1
iadd
faload
aload 2 /* y */
iload 6 /* i */
faload
fsub
fload 7 /* h */
fdiv
fastore
end local 7 // float h
12: .line 140
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 6 /* i */
iload 3 /* n */
iconst_1
isub
if_icmplt 8
end local 6 // int i
14: .line 150
aload 5 /* m */
iconst_0
aload 4 /* d */
iconst_0
faload
fastore
15: .line 151
iconst_1
istore 6 /* i */
start local 6 // int i
16: goto 19
17: .line 152
StackMap locals:
StackMap stack:
aload 5 /* m */
iload 6 /* i */
aload 4 /* d */
iload 6 /* i */
iconst_1
isub
faload
aload 4 /* d */
iload 6 /* i */
faload
fadd
ldc 0.5
fmul
fastore
18: .line 151
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
19: iload 6 /* i */
iload 3 /* n */
iconst_1
isub
if_icmplt 17
end local 6 // int i
20: .line 154
aload 5 /* m */
iload 3 /* n */
iconst_1
isub
aload 4 /* d */
iload 3 /* n */
iconst_2
isub
faload
fastore
21: .line 157
iconst_0
istore 6 /* i */
start local 6 // int i
22: goto 37
23: .line 158
StackMap locals:
StackMap stack:
aload 4 /* d */
iload 6 /* i */
faload
fconst_0
fcmpl
ifne 27
24: .line 159
aload 5 /* m */
iload 6 /* i */
fconst_0
fastore
25: .line 160
aload 5 /* m */
iload 6 /* i */
iconst_1
iadd
fconst_0
fastore
26: .line 161
goto 36
27: .line 162
StackMap locals:
StackMap stack:
aload 5 /* m */
iload 6 /* i */
faload
aload 4 /* d */
iload 6 /* i */
faload
fdiv
fstore 7 /* a */
start local 7 // float a
28: .line 163
aload 5 /* m */
iload 6 /* i */
iconst_1
iadd
faload
aload 4 /* d */
iload 6 /* i */
faload
fdiv
fstore 8 /* b */
start local 8 // float b
29: .line 164
fload 7 /* a */
fconst_0
fcmpg
iflt 30
fload 8 /* b */
fconst_0
fcmpg
ifge 31
30: .line 165
StackMap locals: float float
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "The control points must have monotonic Y values."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
31: .line 168
StackMap locals:
StackMap stack:
fload 7 /* a */
f2d
fload 8 /* b */
f2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fstore 9 /* h */
start local 9 // float h
32: .line 169
fload 9 /* h */
ldc 3.0
fcmpl
ifle 36
33: .line 170
ldc 3.0
fload 9 /* h */
fdiv
fstore 10 /* t */
start local 10 // float t
34: .line 171
aload 5 /* m */
iload 6 /* i */
dup2
faload
fload 10 /* t */
fmul
fastore
35: .line 172
aload 5 /* m */
iload 6 /* i */
iconst_1
iadd
dup2
faload
fload 10 /* t */
fmul
fastore
end local 10 // float t
end local 9 // float h
end local 8 // float b
end local 7 // float a
36: .line 157
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
37: iload 6 /* i */
iload 3 /* n */
iconst_1
isub
if_icmplt 23
end local 6 // int i
38: .line 177
aload 0 /* this */
aload 1 /* x */
putfield android.util.Spline$MonotoneCubicSpline.mX:[F
39: .line 178
aload 0 /* this */
aload 2 /* y */
putfield android.util.Spline$MonotoneCubicSpline.mY:[F
40: .line 179
aload 0 /* this */
aload 5 /* m */
putfield android.util.Spline$MonotoneCubicSpline.mM:[F
41: .line 180
return
end local 5 // float[] m
end local 4 // float[] d
end local 3 // int n
end local 2 // float[] y
end local 1 // float[] x
end local 0 // android.util.Spline$MonotoneCubicSpline this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Landroid/util/Spline$MonotoneCubicSpline;
0 42 1 x [F
0 42 2 y [F
4 42 3 n I
5 42 4 d [F
6 42 5 m [F
7 14 6 i I
9 12 7 h F
16 20 6 i I
22 38 6 i I
28 36 7 a F
29 36 8 b F
32 36 9 h F
34 36 10 t F
MethodParameters:
Name Flags
x
y
public float interpolate(float);
descriptor: (F)F
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=2
start local 0 // android.util.Spline$MonotoneCubicSpline this
start local 1 // float x
0: .line 185
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
arraylength
istore 2 /* n */
start local 2 // int n
1: .line 186
fload 1 /* x */
invokestatic java.lang.Float.isNaN:(F)Z
ifeq 3
2: .line 187
fload 1 /* x */
freturn
3: .line 189
StackMap locals: int
StackMap stack:
fload 1 /* x */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iconst_0
faload
fcmpg
ifgt 5
4: .line 190
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iconst_0
faload
freturn
5: .line 192
StackMap locals:
StackMap stack:
fload 1 /* x */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 2 /* n */
iconst_1
isub
faload
fcmpl
iflt 7
6: .line 193
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iload 2 /* n */
iconst_1
isub
faload
freturn
7: .line 198
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* i */
start local 3 // int i
8: .line 199
goto 12
9: .line 200
StackMap locals: int
StackMap stack:
iinc 3 /* i */ 1
10: .line 201
fload 1 /* x */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
faload
fcmpl
ifne 12
11: .line 202
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iload 3 /* i */
faload
freturn
12: .line 199
StackMap locals:
StackMap stack:
fload 1 /* x */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
iconst_1
iadd
faload
fcmpl
ifge 9
13: .line 207
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
iconst_1
iadd
faload
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
faload
fsub
fstore 4 /* h */
start local 4 // float h
14: .line 208
fload 1 /* x */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
faload
fsub
fload 4 /* h */
fdiv
fstore 5 /* t */
start local 5 // float t
15: .line 209
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iload 3 /* i */
faload
fconst_1
fconst_2
fload 5 /* t */
fmul
fadd
fmul
fload 4 /* h */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mM:[F
iload 3 /* i */
faload
fmul
fload 5 /* t */
fmul
fadd
fconst_1
fload 5 /* t */
fsub
fmul
fconst_1
fload 5 /* t */
fsub
fmul
16: .line 210
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iload 3 /* i */
iconst_1
iadd
faload
ldc 3.0
fconst_2
fload 5 /* t */
fmul
fsub
fmul
fload 4 /* h */
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mM:[F
iload 3 /* i */
iconst_1
iadd
faload
fmul
fload 5 /* t */
fconst_1
fsub
fmul
fadd
fload 5 /* t */
fmul
fload 5 /* t */
fmul
17: .line 209
fadd
freturn
end local 5 // float t
end local 4 // float h
end local 3 // int i
end local 2 // int n
end local 1 // float x
end local 0 // android.util.Spline$MonotoneCubicSpline this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/util/Spline$MonotoneCubicSpline;
0 18 1 x F
1 18 2 n I
8 18 3 i I
14 18 4 h F
15 18 5 t F
MethodParameters:
Name Flags
x
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 // android.util.Spline$MonotoneCubicSpline this
0: .line 216
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1 /* str */
start local 1 // java.lang.StringBuilder str
1: .line 217
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
arraylength
istore 2 /* n */
start local 2 // int n
2: .line 218
aload 1 /* str */
ldc "MonotoneCubicSpline{["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: .line 219
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 11
5: .line 220
StackMap locals: java.lang.StringBuilder int int
StackMap stack:
iload 3 /* i */
ifeq 7
6: .line 221
aload 1 /* str */
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: .line 223
StackMap locals:
StackMap stack:
aload 1 /* str */
ldc "("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mX:[F
iload 3 /* i */
faload
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
pop
8: .line 224
aload 1 /* str */
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mY:[F
iload 3 /* i */
faload
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
pop
9: .line 225
aload 1 /* str */
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0 /* this */
getfield android.util.Spline$MonotoneCubicSpline.mM:[F
iload 3 /* i */
faload
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: .line 219
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 3 /* i */
iload 2 /* n */
if_icmplt 5
end local 3 // int i
12: .line 227
aload 1 /* str */
ldc "]}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: .line 228
aload 1 /* str */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 // int n
end local 1 // java.lang.StringBuilder str
end local 0 // android.util.Spline$MonotoneCubicSpline this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/util/Spline$MonotoneCubicSpline;
1 14 1 str Ljava/lang/StringBuilder;
2 14 2 n I
4 12 3 i I
}
SourceFile: "Spline.java"
NestHost: android.util.Spline
InnerClasses:
public MonotoneCubicSpline = android.util.Spline$MonotoneCubicSpline of android.util.Spline