public final class android.gesture.GestureUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.gesture.GestureUtils
super_class: java.lang.Object
{
private static final float SCALING_THRESHOLD;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.26
private static final float NONUNIFORM_SCALE;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 42
ldc 2.0
invokestatic java.lang.Math.sqrt:(D)D
d2f
putstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // android.gesture.GestureUtils this
0: .line 44
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 45
return
end local 0 // android.gesture.GestureUtils this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/gesture/GestureUtils;
static void closeStream(java.io.Closeable);
descriptor: (Ljava/io/Closeable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // java.io.Closeable stream
0: .line 53
aload 0 /* stream */
ifnull 5
1: .line 55
aload 0 /* stream */
invokeinterface java.io.Closeable.close:()V
2: .line 56
goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 1 /* e */
start local 1 // java.io.IOException e
4: .line 57
ldc "Gestures"
ldc "Could not close stream"
aload 1 /* e */
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 // java.io.IOException e
5: .line 60
StackMap locals:
StackMap stack:
return
end local 0 // java.io.Closeable stream
LocalVariableTable:
Start End Slot Name Signature
0 6 0 stream Ljava/io/Closeable;
4 5 1 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
stream
public static float[] spatialSampling(android.gesture.Gesture, int);
descriptor: (Landroid/gesture/Gesture;I)[F
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 // android.gesture.Gesture gesture
start local 1 // int bitmapSize
0: .line 74
aload 0 /* gesture */
iload 1 /* bitmapSize */
iconst_0
invokestatic android.gesture.GestureUtils.spatialSampling:(Landroid/gesture/Gesture;IZ)[F
areturn
end local 1 // int bitmapSize
end local 0 // android.gesture.Gesture gesture
LocalVariableTable:
Start End Slot Name Signature
0 1 0 gesture Landroid/gesture/Gesture;
0 1 1 bitmapSize I
MethodParameters:
Name Flags
gesture
bitmapSize
public static float[] spatialSampling(android.gesture.Gesture, int, boolean);
descriptor: (Landroid/gesture/Gesture;IZ)[F
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=29, args_size=3
start local 0 // android.gesture.Gesture gesture
start local 1 // int bitmapSize
start local 2 // boolean keepAspectRatio
0: .line 92
iload 1 /* bitmapSize */
iconst_1
isub
i2f
fstore 3 /* targetPatchSize */
start local 3 // float targetPatchSize
1: .line 93
iload 1 /* bitmapSize */
iload 1 /* bitmapSize */
imul
newarray 6
astore 4 /* sample */
start local 4 // float[] sample
2: .line 94
aload 4 /* sample */
fconst_0
invokestatic java.util.Arrays.fill:([FF)V
3: .line 96
aload 0 /* gesture */
invokevirtual android.gesture.Gesture.getBoundingBox:()Landroid/graphics/RectF;
astore 5 /* rect */
start local 5 // android.graphics.RectF rect
4: .line 97
aload 5 /* rect */
invokevirtual android.graphics.RectF.width:()F
fstore 6 /* gestureWidth */
start local 6 // float gestureWidth
5: .line 98
aload 5 /* rect */
invokevirtual android.graphics.RectF.height:()F
fstore 7 /* gestureHeight */
start local 7 // float gestureHeight
6: .line 99
fload 3 /* targetPatchSize */
fload 6 /* gestureWidth */
fdiv
fstore 8 /* sx */
start local 8 // float sx
7: .line 100
fload 3 /* targetPatchSize */
fload 7 /* gestureHeight */
fdiv
fstore 9 /* sy */
start local 9 // float sy
8: .line 102
iload 2 /* keepAspectRatio */
ifeq 15
9: .line 103
fload 8 /* sx */
fload 9 /* sy */
fcmpg
ifge 10
fload 8 /* sx */
goto 11
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float
StackMap stack:
10: fload 9 /* sy */
StackMap locals:
StackMap stack: float
11: fstore 10 /* scale */
start local 10 // float scale
12: .line 104
fload 10 /* scale */
fstore 8 /* sx */
13: .line 105
fload 10 /* scale */
fstore 9 /* sy */
end local 10 // float scale
14: .line 106
goto 33
15: .line 108
StackMap locals:
StackMap stack:
fload 6 /* gestureWidth */
fload 7 /* gestureHeight */
fdiv
fstore 10 /* aspectRatio */
start local 10 // float aspectRatio
16: .line 109
fload 10 /* aspectRatio */
fconst_1
fcmpl
ifle 18
17: .line 110
fconst_1
fload 10 /* aspectRatio */
fdiv
fstore 10 /* aspectRatio */
18: .line 112
StackMap locals: float
StackMap stack:
fload 10 /* aspectRatio */
ldc 0.26
fcmpg
ifge 25
19: .line 113
fload 8 /* sx */
fload 9 /* sy */
fcmpg
ifge 20
fload 8 /* sx */
goto 21
StackMap locals:
StackMap stack:
20: fload 9 /* sy */
StackMap locals:
StackMap stack: float
21: fstore 11 /* scale */
start local 11 // float scale
22: .line 114
fload 11 /* scale */
fstore 8 /* sx */
23: .line 115
fload 11 /* scale */
fstore 9 /* sy */
end local 11 // float scale
24: .line 116
goto 33
25: .line 117
StackMap locals:
StackMap stack:
fload 8 /* sx */
fload 9 /* sy */
fcmpl
ifle 30
26: .line 118
fload 9 /* sy */
getstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
fmul
fstore 11 /* scale */
start local 11 // float scale
27: .line 119
fload 11 /* scale */
fload 8 /* sx */
fcmpg
ifge 33
28: .line 120
fload 11 /* scale */
fstore 8 /* sx */
end local 11 // float scale
29: .line 122
goto 33
30: .line 123
StackMap locals:
StackMap stack:
fload 8 /* sx */
getstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
fmul
fstore 11 /* scale */
start local 11 // float scale
31: .line 124
fload 11 /* scale */
fload 9 /* sy */
fcmpg
ifge 33
32: .line 125
fload 11 /* scale */
fstore 9 /* sy */
end local 11 // float scale
end local 10 // float aspectRatio
33: .line 130
StackMap locals:
StackMap stack:
aload 5 /* rect */
invokevirtual android.graphics.RectF.centerX:()F
fneg
fstore 10 /* preDx */
start local 10 // float preDx
34: .line 131
aload 5 /* rect */
invokevirtual android.graphics.RectF.centerY:()F
fneg
fstore 11 /* preDy */
start local 11 // float preDy
35: .line 132
fload 3 /* targetPatchSize */
fconst_2
fdiv
fstore 12 /* postDx */
start local 12 // float postDx
36: .line 133
fload 3 /* targetPatchSize */
fconst_2
fdiv
fstore 13 /* postDy */
start local 13 // float postDy
37: .line 134
aload 0 /* gesture */
invokevirtual android.gesture.Gesture.getStrokes:()Ljava/util/ArrayList;
astore 14 /* strokes */
start local 14 // java.util.ArrayList strokes
38: .line 135
aload 14 /* strokes */
invokevirtual java.util.ArrayList.size:()I
istore 15 /* count */
start local 15 // int count
39: .line 139
iconst_0
istore 19 /* index */
start local 19 // int index
40: goto 114
41: .line 140
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int top top top int
StackMap stack:
aload 14 /* strokes */
iload 19 /* index */
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.gesture.GestureStroke
astore 20 /* stroke */
start local 20 // android.gesture.GestureStroke stroke
42: .line 141
aload 20 /* stroke */
getfield android.gesture.GestureStroke.points:[F
astore 21 /* strokepoints */
start local 21 // float[] strokepoints
43: .line 142
aload 21 /* strokepoints */
arraylength
istore 16 /* size */
start local 16 // int size
44: .line 143
iload 16 /* size */
newarray 6
astore 22 /* pts */
start local 22 // float[] pts
45: .line 144
iconst_0
istore 23 /* i */
start local 23 // int i
46: goto 50
47: .line 145
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] int
StackMap stack:
aload 22 /* pts */
iload 23 /* i */
aload 21 /* strokepoints */
iload 23 /* i */
faload
fload 10 /* preDx */
fadd
fload 8 /* sx */
fmul
fload 12 /* postDx */
fadd
fastore
48: .line 146
aload 22 /* pts */
iload 23 /* i */
iconst_1
iadd
aload 21 /* strokepoints */
iload 23 /* i */
iconst_1
iadd
faload
fload 11 /* preDy */
fadd
fload 9 /* sy */
fmul
fload 13 /* postDy */
fadd
fastore
49: .line 144
iinc 23 /* i */ 2
StackMap locals:
StackMap stack:
50: iload 23 /* i */
iload 16 /* size */
if_icmplt 47
end local 23 // int i
51: .line 148
ldc -1.0
fstore 23 /* segmentEndX */
start local 23 // float segmentEndX
52: .line 149
ldc -1.0
fstore 24 /* segmentEndY */
start local 24 // float segmentEndY
53: .line 150
iconst_0
istore 25 /* i */
start local 25 // int i
54: goto 112
55: .line 151
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int
StackMap stack:
aload 22 /* pts */
iload 25 /* i */
faload
fconst_0
fcmpg
ifge 56
fconst_0
goto 57
StackMap locals:
StackMap stack:
56: aload 22 /* pts */
iload 25 /* i */
faload
StackMap locals:
StackMap stack: float
57: fstore 26 /* segmentStartX */
start local 26 // float segmentStartX
58: .line 152
aload 22 /* pts */
iload 25 /* i */
iconst_1
iadd
faload
fconst_0
fcmpg
ifge 59
fconst_0
goto 60
StackMap locals: float
StackMap stack:
59: aload 22 /* pts */
iload 25 /* i */
iconst_1
iadd
faload
StackMap locals:
StackMap stack: float
60: fstore 27 /* segmentStartY */
start local 27 // float segmentStartY
61: .line 153
fload 26 /* segmentStartX */
fload 3 /* targetPatchSize */
fcmpl
ifle 63
62: .line 154
fload 3 /* targetPatchSize */
fstore 26 /* segmentStartX */
63: .line 156
StackMap locals: float
StackMap stack:
fload 27 /* segmentStartY */
fload 3 /* targetPatchSize */
fcmpl
ifle 65
64: .line 157
fload 3 /* targetPatchSize */
fstore 27 /* segmentStartY */
65: .line 159
StackMap locals:
StackMap stack:
fload 26 /* segmentStartX */
fload 27 /* segmentStartY */
aload 4 /* sample */
iload 1 /* bitmapSize */
invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
66: .line 160
fload 23 /* segmentEndX */
ldc -1.0
fcmpl
ifeq 109
67: .line 162
fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fcmpl
ifle 78
68: .line 163
fload 26 /* segmentStartX */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2f
fstore 17 /* xpos */
start local 17 // float xpos
69: .line 164
fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fsub
70: .line 165
fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fsub
71: .line 164
fdiv
fstore 28 /* slope */
start local 28 // float slope
72: .line 166
goto 76
73: .line 167
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int float top int android.gesture.GestureStroke float[] float[] float float int float float float
StackMap stack:
fload 28 /* slope */
fload 17 /* xpos */
fload 26 /* segmentStartX */
fsub
fmul
fload 27 /* segmentStartY */
fadd
fstore 18 /* ypos */
start local 18 // float ypos
74: .line 168
fload 17 /* xpos */
fload 18 /* ypos */
aload 4 /* sample */
iload 1 /* bitmapSize */
invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
75: .line 169
fload 17 /* xpos */
fconst_1
fadd
fstore 17 /* xpos */
end local 18 // float ypos
76: .line 166
StackMap locals:
StackMap stack:
fload 17 /* xpos */
fload 23 /* segmentEndX */
fcmpg
iflt 73
end local 28 // float slope
77: .line 171
goto 88
end local 17 // float xpos
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
StackMap stack:
78: fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fcmpg
ifge 88
79: .line 172
fload 23 /* segmentEndX */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2f
fstore 17 /* xpos */
start local 17 // float xpos
80: .line 173
fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fsub
81: .line 174
fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fsub
82: .line 173
fdiv
fstore 28 /* slope */
start local 28 // float slope
83: .line 175
goto 87
84: .line 176
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int float top int android.gesture.GestureStroke float[] float[] float float int float float float
StackMap stack:
fload 28 /* slope */
fload 17 /* xpos */
fload 26 /* segmentStartX */
fsub
fmul
fload 27 /* segmentStartY */
fadd
fstore 18 /* ypos */
start local 18 // float ypos
85: .line 177
fload 17 /* xpos */
fload 18 /* ypos */
aload 4 /* sample */
iload 1 /* bitmapSize */
invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
86: .line 178
fload 17 /* xpos */
fconst_1
fadd
fstore 17 /* xpos */
end local 18 // float ypos
87: .line 175
StackMap locals:
StackMap stack:
fload 17 /* xpos */
fload 26 /* segmentStartX */
fcmpg
iflt 84
end local 28 // float slope
end local 17 // float xpos
88: .line 182
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
StackMap stack:
fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fcmpl
ifle 99
89: .line 183
fload 27 /* segmentStartY */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2f
fstore 18 /* ypos */
start local 18 // float ypos
90: .line 184
fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fsub
91: .line 185
fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fsub
92: .line 184
fdiv
fstore 28 /* invertSlope */
start local 28 // float invertSlope
93: .line 186
goto 97
94: .line 187
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top float int android.gesture.GestureStroke float[] float[] float float int float float float
StackMap stack:
fload 28 /* invertSlope */
fload 18 /* ypos */
fload 27 /* segmentStartY */
fsub
fmul
fload 26 /* segmentStartX */
fadd
fstore 17 /* xpos */
start local 17 // float xpos
95: .line 188
fload 17 /* xpos */
fload 18 /* ypos */
aload 4 /* sample */
iload 1 /* bitmapSize */
invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
96: .line 189
fload 18 /* ypos */
fconst_1
fadd
fstore 18 /* ypos */
end local 17 // float xpos
97: .line 186
StackMap locals:
StackMap stack:
fload 18 /* ypos */
fload 24 /* segmentEndY */
fcmpg
iflt 94
end local 28 // float invertSlope
98: .line 191
goto 109
end local 18 // float ypos
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
StackMap stack:
99: fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fcmpg
ifge 109
100: .line 192
fload 24 /* segmentEndY */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2f
fstore 18 /* ypos */
start local 18 // float ypos
101: .line 193
fload 23 /* segmentEndX */
fload 26 /* segmentStartX */
fsub
102: .line 194
fload 24 /* segmentEndY */
fload 27 /* segmentStartY */
fsub
103: .line 193
fdiv
fstore 28 /* invertSlope */
start local 28 // float invertSlope
104: .line 195
goto 108
105: .line 196
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top float int android.gesture.GestureStroke float[] float[] float float int float float float
StackMap stack:
fload 28 /* invertSlope */
fload 18 /* ypos */
fload 27 /* segmentStartY */
fsub
fmul
fload 26 /* segmentStartX */
fadd
fstore 17 /* xpos */
start local 17 // float xpos
106: .line 197
fload 17 /* xpos */
fload 18 /* ypos */
aload 4 /* sample */
iload 1 /* bitmapSize */
invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
107: .line 198
fload 18 /* ypos */
fconst_1
fadd
fstore 18 /* ypos */
end local 17 // float xpos
108: .line 195
StackMap locals:
StackMap stack:
fload 18 /* ypos */
fload 27 /* segmentStartY */
fcmpg
iflt 105
end local 28 // float invertSlope
end local 18 // float ypos
109: .line 202
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
StackMap stack:
fload 26 /* segmentStartX */
fstore 23 /* segmentEndX */
110: .line 203
fload 27 /* segmentStartY */
fstore 24 /* segmentEndY */
end local 27 // float segmentStartY
end local 26 // float segmentStartX
111: .line 150
iinc 25 /* i */ 2
StackMap locals:
StackMap stack:
112: iload 25 /* i */
iload 16 /* size */
if_icmplt 55
end local 25 // int i
end local 24 // float segmentEndY
end local 23 // float segmentEndX
end local 22 // float[] pts
end local 21 // float[] strokepoints
end local 20 // android.gesture.GestureStroke stroke
113: .line 139
iinc 19 /* index */ 1
end local 16 // int size
StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int top top top int
StackMap stack:
114: iload 19 /* index */
iload 15 /* count */
if_icmplt 41
end local 19 // int index
115: .line 206
aload 4 /* sample */
areturn
end local 15 // int count
end local 14 // java.util.ArrayList strokes
end local 13 // float postDy
end local 12 // float postDx
end local 11 // float preDy
end local 10 // float preDx
end local 9 // float sy
end local 8 // float sx
end local 7 // float gestureHeight
end local 6 // float gestureWidth
end local 5 // android.graphics.RectF rect
end local 4 // float[] sample
end local 3 // float targetPatchSize
end local 2 // boolean keepAspectRatio
end local 1 // int bitmapSize
end local 0 // android.gesture.Gesture gesture
LocalVariableTable:
Start End Slot Name Signature
0 116 0 gesture Landroid/gesture/Gesture;
0 116 1 bitmapSize I
0 116 2 keepAspectRatio Z
1 116 3 targetPatchSize F
2 116 4 sample [F
4 116 5 rect Landroid/graphics/RectF;
5 116 6 gestureWidth F
6 116 7 gestureHeight F
7 116 8 sx F
8 116 9 sy F
12 14 10 scale F
16 33 10 aspectRatio F
22 24 11 scale F
27 29 11 scale F
31 33 11 scale F
34 116 10 preDx F
35 116 11 preDy F
36 116 12 postDx F
37 116 13 postDy F
38 116 14 strokes Ljava/util/ArrayList<Landroid/gesture/GestureStroke;>;
39 116 15 count I
44 114 16 size I
69 78 17 xpos F
80 88 17 xpos F
95 97 17 xpos F
106 108 17 xpos F
74 76 18 ypos F
85 87 18 ypos F
90 99 18 ypos F
101 109 18 ypos F
40 115 19 index I
42 113 20 stroke Landroid/gesture/GestureStroke;
43 113 21 strokepoints [F
45 113 22 pts [F
46 51 23 i I
52 113 23 segmentEndX F
53 113 24 segmentEndY F
54 113 25 i I
58 111 26 segmentStartX F
61 111 27 segmentStartY F
72 77 28 slope F
83 88 28 slope F
93 98 28 invertSlope F
104 109 28 invertSlope F
MethodParameters:
Name Flags
gesture
bitmapSize
keepAspectRatio
private static void plot(float, float, float[], int);
descriptor: (FF[FI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=23, args_size=4
start local 0 // float x
start local 1 // float y
start local 2 // float[] sample
start local 3 // int sampleSize
0: .line 210
fload 0 /* x */
fconst_0
fcmpg
ifge 1
fconst_0
goto 2
StackMap locals:
StackMap stack:
1: fload 0 /* x */
StackMap locals:
StackMap stack: float
2: fstore 0 /* x */
3: .line 211
fload 1 /* y */
fconst_0
fcmpg
ifge 4
fconst_0
goto 5
StackMap locals:
StackMap stack:
4: fload 1 /* y */
StackMap locals:
StackMap stack: float
5: fstore 1 /* y */
6: .line 212
fload 0 /* x */
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
istore 4 /* xFloor */
start local 4 // int xFloor
7: .line 213
fload 0 /* x */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 5 /* xCeiling */
start local 5 // int xCeiling
8: .line 214
fload 1 /* y */
f2d
invokestatic java.lang.Math.floor:(D)D
d2i
istore 6 /* yFloor */
start local 6 // int yFloor
9: .line 215
fload 1 /* y */
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 7 /* yCeiling */
start local 7 // int yCeiling
10: .line 218
fload 0 /* x */
iload 4 /* xFloor */
i2f
fcmpl
ifne 15
fload 1 /* y */
iload 6 /* yFloor */
i2f
fcmpl
ifne 15
11: .line 219
iload 7 /* yCeiling */
iload 3 /* sampleSize */
imul
iload 5 /* xCeiling */
iadd
istore 8 /* index */
start local 8 // int index
12: .line 220
aload 2 /* sample */
iload 8 /* index */
faload
fconst_1
fcmpg
ifge 40
13: .line 221
aload 2 /* sample */
iload 8 /* index */
fconst_1
fastore
end local 8 // int index
14: .line 223
goto 40
15: .line 224
StackMap locals: float float float[] int int int int int
StackMap stack:
iload 4 /* xFloor */
i2f
fload 0 /* x */
fsub
f2d
ldc 2.0
invokestatic java.lang.Math.pow:(DD)D
dstore 8 /* xFloorSq */
start local 8 // double xFloorSq
16: .line 225
iload 6 /* yFloor */
i2f
fload 1 /* y */
fsub
f2d
ldc 2.0
invokestatic java.lang.Math.pow:(DD)D
dstore 10 /* yFloorSq */
start local 10 // double yFloorSq
17: .line 226
iload 5 /* xCeiling */
i2f
fload 0 /* x */
fsub
f2d
ldc 2.0
invokestatic java.lang.Math.pow:(DD)D
dstore 12 /* xCeilingSq */
start local 12 // double xCeilingSq
18: .line 227
iload 7 /* yCeiling */
i2f
fload 1 /* y */
fsub
f2d
ldc 2.0
invokestatic java.lang.Math.pow:(DD)D
dstore 14 /* yCeilingSq */
start local 14 // double yCeilingSq
19: .line 228
dload 8 /* xFloorSq */
dload 10 /* yFloorSq */
dadd
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 16 /* topLeft */
start local 16 // float topLeft
20: .line 229
dload 12 /* xCeilingSq */
dload 10 /* yFloorSq */
dadd
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 17 /* topRight */
start local 17 // float topRight
21: .line 230
dload 8 /* xFloorSq */
dload 14 /* yCeilingSq */
dadd
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 18 /* btmLeft */
start local 18 // float btmLeft
22: .line 231
dload 12 /* xCeilingSq */
dload 14 /* yCeilingSq */
dadd
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 19 /* btmRight */
start local 19 // float btmRight
23: .line 232
fload 16 /* topLeft */
fload 17 /* topRight */
fadd
fload 18 /* btmLeft */
fadd
fload 19 /* btmRight */
fadd
fstore 20 /* sum */
start local 20 // float sum
24: .line 234
fload 16 /* topLeft */
fload 20 /* sum */
fdiv
fstore 21 /* value */
start local 21 // float value
25: .line 235
iload 6 /* yFloor */
iload 3 /* sampleSize */
imul
iload 4 /* xFloor */
iadd
istore 22 /* index */
start local 22 // int index
26: .line 236
fload 21 /* value */
aload 2 /* sample */
iload 22 /* index */
faload
fcmpl
ifle 28
27: .line 237
aload 2 /* sample */
iload 22 /* index */
fload 21 /* value */
fastore
28: .line 240
StackMap locals: float float float[] int int int int int double double double double float float float float float float int
StackMap stack:
fload 17 /* topRight */
fload 20 /* sum */
fdiv
fstore 21 /* value */
29: .line 241
iload 6 /* yFloor */
iload 3 /* sampleSize */
imul
iload 5 /* xCeiling */
iadd
istore 22 /* index */
30: .line 242
fload 21 /* value */
aload 2 /* sample */
iload 22 /* index */
faload
fcmpl
ifle 32
31: .line 243
aload 2 /* sample */
iload 22 /* index */
fload 21 /* value */
fastore
32: .line 246
StackMap locals:
StackMap stack:
fload 18 /* btmLeft */
fload 20 /* sum */
fdiv
fstore 21 /* value */
33: .line 247
iload 7 /* yCeiling */
iload 3 /* sampleSize */
imul
iload 4 /* xFloor */
iadd
istore 22 /* index */
34: .line 248
fload 21 /* value */
aload 2 /* sample */
iload 22 /* index */
faload
fcmpl
ifle 36
35: .line 249
aload 2 /* sample */
iload 22 /* index */
fload 21 /* value */
fastore
36: .line 252
StackMap locals:
StackMap stack:
fload 19 /* btmRight */
fload 20 /* sum */
fdiv
fstore 21 /* value */
37: .line 253
iload 7 /* yCeiling */
iload 3 /* sampleSize */
imul
iload 5 /* xCeiling */
iadd
istore 22 /* index */
38: .line 254
fload 21 /* value */
aload 2 /* sample */
iload 22 /* index */
faload
fcmpl
ifle 40
39: .line 255
aload 2 /* sample */
iload 22 /* index */
fload 21 /* value */
fastore
end local 22 // int index
end local 21 // float value
end local 20 // float sum
end local 19 // float btmRight
end local 18 // float btmLeft
end local 17 // float topRight
end local 16 // float topLeft
end local 14 // double yCeilingSq
end local 12 // double xCeilingSq
end local 10 // double yFloorSq
end local 8 // double xFloorSq
40: .line 258
StackMap locals: float float float[] int int int int int
StackMap stack:
return
end local 7 // int yCeiling
end local 6 // int yFloor
end local 5 // int xCeiling
end local 4 // int xFloor
end local 3 // int sampleSize
end local 2 // float[] sample
end local 1 // float y
end local 0 // float x
LocalVariableTable:
Start End Slot Name Signature
0 41 0 x F
0 41 1 y F
0 41 2 sample [F
0 41 3 sampleSize I
7 41 4 xFloor I
8 41 5 xCeiling I
9 41 6 yFloor I
10 41 7 yCeiling I
12 14 8 index I
16 40 8 xFloorSq D
17 40 10 yFloorSq D
18 40 12 xCeilingSq D
19 40 14 yCeilingSq D
20 40 16 topLeft F
21 40 17 topRight F
22 40 18 btmLeft F
23 40 19 btmRight F
24 40 20 sum F
25 40 21 value F
26 40 22 index I
MethodParameters:
Name Flags
x
y
sample
sampleSize
public static float[] temporalSampling(android.gesture.GestureStroke, int);
descriptor: (Landroid/gesture/GestureStroke;I)[F
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=20, args_size=2
start local 0 // android.gesture.GestureStroke stroke
start local 1 // int numPoints
0: .line 269
aload 0 /* stroke */
getfield android.gesture.GestureStroke.length:F
iload 1 /* numPoints */
iconst_1
isub
i2f
fdiv
fstore 2 /* increment */
start local 2 // float increment
1: .line 270
iload 1 /* numPoints */
iconst_2
imul
istore 3 /* vectorLength */
start local 3 // int vectorLength
2: .line 271
iload 3 /* vectorLength */
newarray 6
astore 4 /* vector */
start local 4 // float[] vector
3: .line 272
fconst_0
fstore 5 /* distanceSoFar */
start local 5 // float distanceSoFar
4: .line 273
aload 0 /* stroke */
getfield android.gesture.GestureStroke.points:[F
astore 6 /* pts */
start local 6 // float[] pts
5: .line 274
aload 6 /* pts */
iconst_0
faload
fstore 7 /* lstPointX */
start local 7 // float lstPointX
6: .line 275
aload 6 /* pts */
iconst_1
faload
fstore 8 /* lstPointY */
start local 8 // float lstPointY
7: .line 276
iconst_0
istore 9 /* index */
start local 9 // int index
8: .line 277
ldc 1.4E-45
fstore 10 /* currentPointX */
start local 10 // float currentPointX
9: .line 278
ldc 1.4E-45
fstore 11 /* currentPointY */
start local 11 // float currentPointY
10: .line 279
aload 4 /* vector */
iload 9 /* index */
fload 7 /* lstPointX */
fastore
11: .line 280
iinc 9 /* index */ 1
12: .line 281
aload 4 /* vector */
iload 9 /* index */
fload 8 /* lstPointY */
fastore
13: .line 282
iinc 9 /* index */ 1
14: .line 283
iconst_0
istore 12 /* i */
start local 12 // int i
15: .line 284
aload 6 /* pts */
arraylength
iconst_2
idiv
istore 13 /* count */
start local 13 // int count
16: .line 285
goto 43
17: .line 286
StackMap locals: android.gesture.GestureStroke int float int float[] float float[] float float int float float int int
StackMap stack:
fload 10 /* currentPointX */
ldc 1.4E-45
fcmpl
ifne 23
18: .line 287
iinc 12 /* i */ 1
19: .line 288
iload 12 /* i */
iload 13 /* count */
if_icmplt 21
20: .line 289
goto 44
21: .line 291
StackMap locals:
StackMap stack:
aload 6 /* pts */
iload 12 /* i */
iconst_2
imul
faload
fstore 10 /* currentPointX */
22: .line 292
aload 6 /* pts */
iload 12 /* i */
iconst_2
imul
iconst_1
iadd
faload
fstore 11 /* currentPointY */
23: .line 294
StackMap locals:
StackMap stack:
fload 10 /* currentPointX */
fload 7 /* lstPointX */
fsub
fstore 14 /* deltaX */
start local 14 // float deltaX
24: .line 295
fload 11 /* currentPointY */
fload 8 /* lstPointY */
fsub
fstore 15 /* deltaY */
start local 15 // float deltaY
25: .line 296
fload 14 /* deltaX */
f2d
fload 15 /* deltaY */
f2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fstore 16 /* distance */
start local 16 // float distance
26: .line 297
fload 5 /* distanceSoFar */
fload 16 /* distance */
fadd
fload 2 /* increment */
fcmpl
iflt 38
27: .line 298
fload 2 /* increment */
fload 5 /* distanceSoFar */
fsub
fload 16 /* distance */
fdiv
fstore 17 /* ratio */
start local 17 // float ratio
28: .line 299
fload 7 /* lstPointX */
fload 17 /* ratio */
fload 14 /* deltaX */
fmul
fadd
fstore 18 /* nx */
start local 18 // float nx
29: .line 300
fload 8 /* lstPointY */
fload 17 /* ratio */
fload 15 /* deltaY */
fmul
fadd
fstore 19 /* ny */
start local 19 // float ny
30: .line 301
aload 4 /* vector */
iload 9 /* index */
fload 18 /* nx */
fastore
31: .line 302
iinc 9 /* index */ 1
32: .line 303
aload 4 /* vector */
iload 9 /* index */
fload 19 /* ny */
fastore
33: .line 304
iinc 9 /* index */ 1
34: .line 305
fload 18 /* nx */
fstore 7 /* lstPointX */
35: .line 306
fload 19 /* ny */
fstore 8 /* lstPointY */
36: .line 307
fconst_0
fstore 5 /* distanceSoFar */
end local 19 // float ny
end local 18 // float nx
end local 17 // float ratio
37: .line 308
goto 43
38: .line 309
StackMap locals: float float float
StackMap stack:
fload 10 /* currentPointX */
fstore 7 /* lstPointX */
39: .line 310
fload 11 /* currentPointY */
fstore 8 /* lstPointY */
40: .line 311
ldc 1.4E-45
fstore 10 /* currentPointX */
41: .line 312
ldc 1.4E-45
fstore 11 /* currentPointY */
42: .line 313
fload 5 /* distanceSoFar */
fload 16 /* distance */
fadd
fstore 5 /* distanceSoFar */
end local 16 // float distance
end local 15 // float deltaY
end local 14 // float deltaX
43: .line 285
StackMap locals:
StackMap stack:
iload 12 /* i */
iload 13 /* count */
if_icmplt 17
44: .line 317
StackMap locals:
StackMap stack:
iload 9 /* index */
istore 12 /* i */
goto 48
45: .line 318
StackMap locals:
StackMap stack:
aload 4 /* vector */
iload 12 /* i */
fload 7 /* lstPointX */
fastore
46: .line 319
aload 4 /* vector */
iload 12 /* i */
iconst_1
iadd
fload 8 /* lstPointY */
fastore
47: .line 317
iinc 12 /* i */ 2
StackMap locals:
StackMap stack:
48: iload 12 /* i */
iload 3 /* vectorLength */
if_icmplt 45
49: .line 321
aload 4 /* vector */
areturn
end local 13 // int count
end local 12 // int i
end local 11 // float currentPointY
end local 10 // float currentPointX
end local 9 // int index
end local 8 // float lstPointY
end local 7 // float lstPointX
end local 6 // float[] pts
end local 5 // float distanceSoFar
end local 4 // float[] vector
end local 3 // int vectorLength
end local 2 // float increment
end local 1 // int numPoints
end local 0 // android.gesture.GestureStroke stroke
LocalVariableTable:
Start End Slot Name Signature
0 50 0 stroke Landroid/gesture/GestureStroke;
0 50 1 numPoints I
1 50 2 increment F
2 50 3 vectorLength I
3 50 4 vector [F
4 50 5 distanceSoFar F
5 50 6 pts [F
6 50 7 lstPointX F
7 50 8 lstPointY F
8 50 9 index I
9 50 10 currentPointX F
10 50 11 currentPointY F
15 50 12 i I
16 50 13 count I
24 43 14 deltaX F
25 43 15 deltaY F
26 43 16 distance F
28 37 17 ratio F
29 37 18 nx F
30 37 19 ny F
MethodParameters:
Name Flags
stroke
numPoints
static float[] computeCentroid(float[]);
descriptor: ([F)[F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 // float[] points
0: .line 331
fconst_0
fstore 1 /* centerX */
start local 1 // float centerX
1: .line 332
fconst_0
fstore 2 /* centerY */
start local 2 // float centerY
2: .line 333
aload 0 /* points */
arraylength
istore 3 /* count */
start local 3 // int count
3: .line 334
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 9
5: .line 335
StackMap locals: float[] float float int int
StackMap stack:
fload 1 /* centerX */
aload 0 /* points */
iload 4 /* i */
faload
fadd
fstore 1 /* centerX */
6: .line 336
iinc 4 /* i */ 1
7: .line 337
fload 2 /* centerY */
aload 0 /* points */
iload 4 /* i */
faload
fadd
fstore 2 /* centerY */
8: .line 334
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
iload 3 /* count */
if_icmplt 5
end local 4 // int i
10: .line 339
iconst_2
newarray 6
astore 4 /* center */
start local 4 // float[] center
11: .line 340
aload 4 /* center */
iconst_0
fconst_2
fload 1 /* centerX */
fmul
iload 3 /* count */
i2f
fdiv
fastore
12: .line 341
aload 4 /* center */
iconst_1
fconst_2
fload 2 /* centerY */
fmul
iload 3 /* count */
i2f
fdiv
fastore
13: .line 343
aload 4 /* center */
areturn
end local 4 // float[] center
end local 3 // int count
end local 2 // float centerY
end local 1 // float centerX
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 14 0 points [F
1 14 1 centerX F
2 14 2 centerY F
3 14 3 count I
4 10 4 i I
11 14 4 center [F
MethodParameters:
Name Flags
points
private static float[][] computeCoVariance(float[]);
descriptor: ([F)[[F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 // float[] points
0: .line 353
iconst_2
iconst_2
multianewarray [[F 2
astore 1 /* array */
start local 1 // float[][] array
1: .line 354
aload 1 /* array */
iconst_0
aaload
iconst_0
fconst_0
fastore
2: .line 355
aload 1 /* array */
iconst_0
aaload
iconst_1
fconst_0
fastore
3: .line 356
aload 1 /* array */
iconst_1
aaload
iconst_0
fconst_0
fastore
4: .line 357
aload 1 /* array */
iconst_1
aaload
iconst_1
fconst_0
fastore
5: .line 358
aload 0 /* points */
arraylength
istore 2 /* count */
start local 2 // int count
6: .line 359
iconst_0
istore 3 /* i */
start local 3 // int i
7: goto 16
8: .line 360
StackMap locals: float[][] int int
StackMap stack:
aload 0 /* points */
iload 3 /* i */
faload
fstore 4 /* x */
start local 4 // float x
9: .line 361
iinc 3 /* i */ 1
10: .line 362
aload 0 /* points */
iload 3 /* i */
faload
fstore 5 /* y */
start local 5 // float y
11: .line 363
aload 1 /* array */
iconst_0
aaload
iconst_0
dup2
faload
fload 4 /* x */
fload 4 /* x */
fmul
fadd
fastore
12: .line 364
aload 1 /* array */
iconst_0
aaload
iconst_1
dup2
faload
fload 4 /* x */
fload 5 /* y */
fmul
fadd
fastore
13: .line 365
aload 1 /* array */
iconst_1
aaload
iconst_0
aload 1 /* array */
iconst_0
aaload
iconst_1
faload
fastore
14: .line 366
aload 1 /* array */
iconst_1
aaload
iconst_1
dup2
faload
fload 5 /* y */
fload 5 /* y */
fmul
fadd
fastore
end local 5 // float y
end local 4 // float x
15: .line 359
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 3 /* i */
iload 2 /* count */
if_icmplt 8
end local 3 // int i
17: .line 368
aload 1 /* array */
iconst_0
aaload
iconst_0
dup2
faload
iload 2 /* count */
iconst_2
idiv
i2f
fdiv
fastore
18: .line 369
aload 1 /* array */
iconst_0
aaload
iconst_1
dup2
faload
iload 2 /* count */
iconst_2
idiv
i2f
fdiv
fastore
19: .line 370
aload 1 /* array */
iconst_1
aaload
iconst_0
dup2
faload
iload 2 /* count */
iconst_2
idiv
i2f
fdiv
fastore
20: .line 371
aload 1 /* array */
iconst_1
aaload
iconst_1
dup2
faload
iload 2 /* count */
iconst_2
idiv
i2f
fdiv
fastore
21: .line 373
aload 1 /* array */
areturn
end local 2 // int count
end local 1 // float[][] array
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 22 0 points [F
1 22 1 array [[F
6 22 2 count I
7 17 3 i I
9 15 4 x F
11 15 5 y F
MethodParameters:
Name Flags
points
static float computeTotalLength(float[]);
descriptor: ([F)F
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 // float[] points
0: .line 377
fconst_0
fstore 1 /* sum */
start local 1 // float sum
1: .line 378
aload 0 /* points */
arraylength
iconst_4
isub
istore 2 /* count */
start local 2 // int count
2: .line 379
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 8
4: .line 380
StackMap locals: float int int
StackMap stack:
aload 0 /* points */
iload 3 /* i */
iconst_2
iadd
faload
aload 0 /* points */
iload 3 /* i */
faload
fsub
fstore 4 /* dx */
start local 4 // float dx
5: .line 381
aload 0 /* points */
iload 3 /* i */
iconst_3
iadd
faload
aload 0 /* points */
iload 3 /* i */
iconst_1
iadd
faload
fsub
fstore 5 /* dy */
start local 5 // float dy
6: .line 382
fload 1 /* sum */
f2d
fload 4 /* dx */
f2d
fload 5 /* dy */
f2d
invokestatic java.lang.Math.hypot:(DD)D
dadd
d2f
fstore 1 /* sum */
end local 5 // float dy
end local 4 // float dx
7: .line 379
iinc 3 /* i */ 2
StackMap locals:
StackMap stack:
8: iload 3 /* i */
iload 2 /* count */
if_icmplt 4
end local 3 // int i
9: .line 384
fload 1 /* sum */
freturn
end local 2 // int count
end local 1 // float sum
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 10 0 points [F
1 10 1 sum F
2 10 2 count I
3 9 3 i I
5 7 4 dx F
6 7 5 dy F
MethodParameters:
Name Flags
points
static float computeStraightness(float[]);
descriptor: ([F)F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // float[] points
0: .line 388
aload 0 /* points */
invokestatic android.gesture.GestureUtils.computeTotalLength:([F)F
fstore 1 /* totalLen */
start local 1 // float totalLen
1: .line 389
aload 0 /* points */
iconst_2
faload
aload 0 /* points */
iconst_0
faload
fsub
fstore 2 /* dx */
start local 2 // float dx
2: .line 390
aload 0 /* points */
iconst_3
faload
aload 0 /* points */
iconst_1
faload
fsub
fstore 3 /* dy */
start local 3 // float dy
3: .line 391
fload 2 /* dx */
f2d
fload 3 /* dy */
f2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fload 1 /* totalLen */
fdiv
freturn
end local 3 // float dy
end local 2 // float dx
end local 1 // float totalLen
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 4 0 points [F
1 4 1 totalLen F
2 4 2 dx F
3 4 3 dy F
MethodParameters:
Name Flags
points
static float computeStraightness(float[], float);
descriptor: ([FF)F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // float[] points
start local 1 // float totalLen
0: .line 395
aload 0 /* points */
iconst_2
faload
aload 0 /* points */
iconst_0
faload
fsub
fstore 2 /* dx */
start local 2 // float dx
1: .line 396
aload 0 /* points */
iconst_3
faload
aload 0 /* points */
iconst_1
faload
fsub
fstore 3 /* dy */
start local 3 // float dy
2: .line 397
fload 2 /* dx */
f2d
fload 3 /* dy */
f2d
invokestatic java.lang.Math.hypot:(DD)D
d2f
fload 1 /* totalLen */
fdiv
freturn
end local 3 // float dy
end local 2 // float dx
end local 1 // float totalLen
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 3 0 points [F
0 3 1 totalLen F
1 3 2 dx F
2 3 3 dy F
MethodParameters:
Name Flags
points
totalLen
static float squaredEuclideanDistance(float[], float[]);
descriptor: ([F[F)F
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 // float[] vector1
start local 1 // float[] vector2
0: .line 408
fconst_0
fstore 2 /* squaredDistance */
start local 2 // float squaredDistance
1: .line 409
aload 0 /* vector1 */
arraylength
istore 3 /* size */
start local 3 // int size
2: .line 410
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 7
4: .line 411
StackMap locals: float int int
StackMap stack:
aload 0 /* vector1 */
iload 4 /* i */
faload
aload 1 /* vector2 */
iload 4 /* i */
faload
fsub
fstore 5 /* difference */
start local 5 // float difference
5: .line 412
fload 2 /* squaredDistance */
fload 5 /* difference */
fload 5 /* difference */
fmul
fadd
fstore 2 /* squaredDistance */
end local 5 // float difference
6: .line 410
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 3 /* size */
if_icmplt 4
end local 4 // int i
8: .line 414
fload 2 /* squaredDistance */
iload 3 /* size */
i2f
fdiv
freturn
end local 3 // int size
end local 2 // float squaredDistance
end local 1 // float[] vector2
end local 0 // float[] vector1
LocalVariableTable:
Start End Slot Name Signature
0 9 0 vector1 [F
0 9 1 vector2 [F
1 9 2 squaredDistance F
2 9 3 size I
3 8 4 i I
5 6 5 difference F
MethodParameters:
Name Flags
vector1
vector2
static float cosineDistance(float[], float[]);
descriptor: ([F[F)F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // float[] vector1
start local 1 // float[] vector2
0: .line 425
fconst_0
fstore 2 /* sum */
start local 2 // float sum
1: .line 426
aload 0 /* vector1 */
arraylength
istore 3 /* len */
start local 3 // int len
2: .line 427
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 6
4: .line 428
StackMap locals: float int int
StackMap stack:
fload 2 /* sum */
aload 0 /* vector1 */
iload 4 /* i */
faload
aload 1 /* vector2 */
iload 4 /* i */
faload
fmul
fadd
fstore 2 /* sum */
5: .line 427
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 4 /* i */
iload 3 /* len */
if_icmplt 4
end local 4 // int i
7: .line 430
fload 2 /* sum */
f2d
invokestatic java.lang.Math.acos:(D)D
d2f
freturn
end local 3 // int len
end local 2 // float sum
end local 1 // float[] vector2
end local 0 // float[] vector1
LocalVariableTable:
Start End Slot Name Signature
0 8 0 vector1 [F
0 8 1 vector2 [F
1 8 2 sum F
2 8 3 len I
3 7 4 i I
MethodParameters:
Name Flags
vector1
vector2
static float minimumCosineDistance(float[], float[], int);
descriptor: ([F[FI)F
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=13, args_size=3
start local 0 // float[] vector1
start local 1 // float[] vector2
start local 2 // int numOrientations
0: .line 442
aload 0 /* vector1 */
arraylength
istore 3 /* len */
start local 3 // int len
1: .line 443
fconst_0
fstore 4 /* a */
start local 4 // float a
2: .line 444
fconst_0
fstore 5 /* b */
start local 5 // float b
3: .line 445
iconst_0
istore 6 /* i */
start local 6 // int i
4: goto 8
5: .line 446
StackMap locals: float[] float[] int int float float int
StackMap stack:
fload 4 /* a */
aload 0 /* vector1 */
iload 6 /* i */
faload
aload 1 /* vector2 */
iload 6 /* i */
faload
fmul
aload 0 /* vector1 */
iload 6 /* i */
iconst_1
iadd
faload
aload 1 /* vector2 */
iload 6 /* i */
iconst_1
iadd
faload
fmul
fadd
fadd
fstore 4 /* a */
6: .line 447
fload 5 /* b */
aload 0 /* vector1 */
iload 6 /* i */
faload
aload 1 /* vector2 */
iload 6 /* i */
iconst_1
iadd
faload
fmul
aload 0 /* vector1 */
iload 6 /* i */
iconst_1
iadd
faload
aload 1 /* vector2 */
iload 6 /* i */
faload
fmul
fsub
fadd
fstore 5 /* b */
7: .line 445
iinc 6 /* i */ 2
StackMap locals:
StackMap stack:
8: iload 6 /* i */
iload 3 /* len */
if_icmplt 5
end local 6 // int i
9: .line 449
fload 4 /* a */
fconst_0
fcmpl
ifeq 17
10: .line 450
fload 5 /* b */
fload 4 /* a */
fdiv
fstore 6 /* tan */
start local 6 // float tan
11: .line 451
fload 6 /* tan */
f2d
invokestatic java.lang.Math.atan:(D)D
dstore 7 /* angle */
start local 7 // double angle
12: .line 452
iload 2 /* numOrientations */
iconst_2
if_icmple 14
dload 7 /* angle */
invokestatic java.lang.Math.abs:(D)D
ldc 3.141592653589793
iload 2 /* numOrientations */
i2d
ddiv
dcmpl
iflt 14
13: .line 453
fload 4 /* a */
f2d
invokestatic java.lang.Math.acos:(D)D
d2f
freturn
14: .line 455
StackMap locals: float[] float[] int int float float float double
StackMap stack:
dload 7 /* angle */
invokestatic java.lang.Math.cos:(D)D
dstore 9 /* cosine */
start local 9 // double cosine
15: .line 456
dload 9 /* cosine */
fload 6 /* tan */
f2d
dmul
dstore 11 /* sine */
start local 11 // double sine
16: .line 457
fload 4 /* a */
f2d
dload 9 /* cosine */
dmul
fload 5 /* b */
f2d
dload 11 /* sine */
dmul
dadd
invokestatic java.lang.Math.acos:(D)D
d2f
freturn
end local 11 // double sine
end local 9 // double cosine
end local 7 // double angle
end local 6 // float tan
17: .line 460
StackMap locals:
StackMap stack:
ldc 1.5707964
freturn
end local 5 // float b
end local 4 // float a
end local 3 // int len
end local 2 // int numOrientations
end local 1 // float[] vector2
end local 0 // float[] vector1
LocalVariableTable:
Start End Slot Name Signature
0 18 0 vector1 [F
0 18 1 vector2 [F
0 18 2 numOrientations I
1 18 3 len I
2 18 4 a F
3 18 5 b F
4 9 6 i I
11 17 6 tan F
12 17 7 angle D
15 17 9 cosine D
16 17 11 sine D
MethodParameters:
Name Flags
vector1
vector2
numOrientations
public static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(java.util.ArrayList<android.gesture.GesturePoint>);
descriptor: (Ljava/util/ArrayList;)Landroid/gesture/OrientedBoundingBox;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 // java.util.ArrayList originalPoints
0: .line 471
aload 0 /* originalPoints */
invokevirtual java.util.ArrayList.size:()I
istore 1 /* count */
start local 1 // int count
1: .line 472
iload 1 /* count */
iconst_2
imul
newarray 6
astore 2 /* points */
start local 2 // float[] points
2: .line 473
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 9
4: .line 474
StackMap locals: int float[] int
StackMap stack:
aload 0 /* originalPoints */
iload 3 /* i */
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast android.gesture.GesturePoint
astore 4 /* point */
start local 4 // android.gesture.GesturePoint point
5: .line 475
iload 3 /* i */
iconst_2
imul
istore 5 /* index */
start local 5 // int index
6: .line 476
aload 2 /* points */
iload 5 /* index */
aload 4 /* point */
getfield android.gesture.GesturePoint.x:F
fastore
7: .line 477
aload 2 /* points */
iload 5 /* index */
iconst_1
iadd
aload 4 /* point */
getfield android.gesture.GesturePoint.y:F
fastore
end local 5 // int index
end local 4 // android.gesture.GesturePoint point
8: .line 473
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 3 /* i */
iload 1 /* count */
if_icmplt 4
end local 3 // int i
10: .line 479
aload 2 /* points */
invokestatic android.gesture.GestureUtils.computeCentroid:([F)[F
astore 3 /* meanVector */
start local 3 // float[] meanVector
11: .line 480
aload 2 /* points */
aload 3 /* meanVector */
invokestatic android.gesture.GestureUtils.computeOrientedBoundingBox:([F[F)Landroid/gesture/OrientedBoundingBox;
areturn
end local 3 // float[] meanVector
end local 2 // float[] points
end local 1 // int count
end local 0 // java.util.ArrayList originalPoints
LocalVariableTable:
Start End Slot Name Signature
0 12 0 originalPoints Ljava/util/ArrayList<Landroid/gesture/GesturePoint;>;
1 12 1 count I
2 12 2 points [F
3 10 3 i I
5 8 4 point Landroid/gesture/GesturePoint;
6 8 5 index I
11 12 3 meanVector [F
Signature: (Ljava/util/ArrayList<Landroid/gesture/GesturePoint;>;)Landroid/gesture/OrientedBoundingBox;
MethodParameters:
Name Flags
originalPoints
public static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[]);
descriptor: ([F)Landroid/gesture/OrientedBoundingBox;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // float[] originalPoints
0: .line 490
aload 0 /* originalPoints */
arraylength
istore 1 /* size */
start local 1 // int size
1: .line 491
iload 1 /* size */
newarray 6
astore 2 /* points */
start local 2 // float[] points
2: .line 492
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 493
StackMap locals: int float[] int
StackMap stack:
aload 2 /* points */
iload 3 /* i */
aload 0 /* originalPoints */
iload 3 /* i */
faload
fastore
5: .line 492
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* size */
if_icmplt 4
end local 3 // int i
7: .line 495
aload 2 /* points */
invokestatic android.gesture.GestureUtils.computeCentroid:([F)[F
astore 3 /* meanVector */
start local 3 // float[] meanVector
8: .line 496
aload 2 /* points */
aload 3 /* meanVector */
invokestatic android.gesture.GestureUtils.computeOrientedBoundingBox:([F[F)Landroid/gesture/OrientedBoundingBox;
areturn
end local 3 // float[] meanVector
end local 2 // float[] points
end local 1 // int size
end local 0 // float[] originalPoints
LocalVariableTable:
Start End Slot Name Signature
0 9 0 originalPoints [F
1 9 1 size I
2 9 2 points [F
3 7 3 i I
8 9 3 meanVector [F
MethodParameters:
Name Flags
originalPoints
private static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[], float[]);
descriptor: ([F[F)Landroid/gesture/OrientedBoundingBox;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=11, args_size=2
start local 0 // float[] points
start local 1 // float[] centroid
0: .line 500
aload 0 /* points */
aload 1 /* centroid */
iconst_0
faload
fneg
aload 1 /* centroid */
iconst_1
faload
fneg
invokestatic android.gesture.GestureUtils.translate:([FFF)[F
pop
1: .line 502
aload 0 /* points */
invokestatic android.gesture.GestureUtils.computeCoVariance:([F)[[F
astore 2 /* array */
start local 2 // float[][] array
2: .line 503
aload 2 /* array */
invokestatic android.gesture.GestureUtils.computeOrientation:([[F)[F
astore 3 /* targetVector */
start local 3 // float[] targetVector
3: .line 506
aload 3 /* targetVector */
iconst_0
faload
fconst_0
fcmpl
ifne 6
aload 3 /* targetVector */
iconst_1
faload
fconst_0
fcmpl
ifne 6
4: .line 507
ldc -1.5707964
fstore 4 /* angle */
start local 4 // float angle
5: .line 508
goto 8
end local 4 // float angle
6: .line 509
StackMap locals: float[][] float[]
StackMap stack:
aload 3 /* targetVector */
iconst_1
faload
f2d
aload 3 /* targetVector */
iconst_0
faload
f2d
invokestatic java.lang.Math.atan2:(DD)D
d2f
fstore 4 /* angle */
start local 4 // float angle
7: .line 510
aload 0 /* points */
fload 4 /* angle */
fneg
invokestatic android.gesture.GestureUtils.rotate:([FF)[F
pop
8: .line 513
StackMap locals: float
StackMap stack:
ldc 3.4028235E38
fstore 5 /* minx */
start local 5 // float minx
9: .line 514
ldc 3.4028235E38
fstore 6 /* miny */
start local 6 // float miny
10: .line 515
ldc 1.4E-45
fstore 7 /* maxx */
start local 7 // float maxx
11: .line 516
ldc 1.4E-45
fstore 8 /* maxy */
start local 8 // float maxy
12: .line 517
aload 0 /* points */
arraylength
istore 9 /* count */
start local 9 // int count
13: .line 518
iconst_0
istore 10 /* i */
start local 10 // int i
14: goto 25
15: .line 519
StackMap locals: float[] float[] float[][] float[] float float float float float int int
StackMap stack:
aload 0 /* points */
iload 10 /* i */
faload
fload 5 /* minx */
fcmpg
ifge 17
16: .line 520
aload 0 /* points */
iload 10 /* i */
faload
fstore 5 /* minx */
17: .line 522
StackMap locals:
StackMap stack:
aload 0 /* points */
iload 10 /* i */
faload
fload 7 /* maxx */
fcmpl
ifle 19
18: .line 523
aload 0 /* points */
iload 10 /* i */
faload
fstore 7 /* maxx */
19: .line 525
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
20: .line 526
aload 0 /* points */
iload 10 /* i */
faload
fload 6 /* miny */
fcmpg
ifge 22
21: .line 527
aload 0 /* points */
iload 10 /* i */
faload
fstore 6 /* miny */
22: .line 529
StackMap locals:
StackMap stack:
aload 0 /* points */
iload 10 /* i */
faload
fload 8 /* maxy */
fcmpl
ifle 24
23: .line 530
aload 0 /* points */
iload 10 /* i */
faload
fstore 8 /* maxy */
24: .line 518
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 10 /* i */
iload 9 /* count */
if_icmplt 15
end local 10 // int i
26: .line 534
new android.gesture.OrientedBoundingBox
dup
fload 4 /* angle */
ldc 180.0
fmul
f2d
ldc 3.141592653589793
ddiv
d2f
aload 1 /* centroid */
iconst_0
faload
aload 1 /* centroid */
iconst_1
faload
fload 7 /* maxx */
fload 5 /* minx */
fsub
fload 8 /* maxy */
fload 6 /* miny */
fsub
invokespecial android.gesture.OrientedBoundingBox.<init>:(FFFFF)V
areturn
end local 9 // int count
end local 8 // float maxy
end local 7 // float maxx
end local 6 // float miny
end local 5 // float minx
end local 4 // float angle
end local 3 // float[] targetVector
end local 2 // float[][] array
end local 1 // float[] centroid
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 27 0 points [F
0 27 1 centroid [F
2 27 2 array [[F
3 27 3 targetVector [F
5 6 4 angle F
7 27 4 angle F
9 27 5 minx F
10 27 6 miny F
11 27 7 maxx F
12 27 8 maxy F
13 27 9 count I
14 26 10 i I
MethodParameters:
Name Flags
points
centroid
private static float[] computeOrientation(float[][]);
descriptor: ([[F)[F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 // float[][] covarianceMatrix
0: .line 538
iconst_2
newarray 6
astore 1 /* targetVector */
start local 1 // float[] targetVector
1: .line 539
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_1
faload
fconst_0
fcmpl
ifeq 2
aload 0 /* covarianceMatrix */
iconst_1
aaload
iconst_0
faload
fconst_0
fcmpl
ifne 4
2: .line 540
StackMap locals: float[]
StackMap stack:
aload 1 /* targetVector */
iconst_0
fconst_1
fastore
3: .line 541
aload 1 /* targetVector */
iconst_1
fconst_0
fastore
4: .line 544
StackMap locals:
StackMap stack:
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_0
faload
fneg
aload 0 /* covarianceMatrix */
iconst_1
aaload
iconst_1
faload
fsub
fstore 2 /* a */
start local 2 // float a
5: .line 545
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_0
faload
aload 0 /* covarianceMatrix */
iconst_1
aaload
iconst_1
faload
fmul
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_1
faload
6: .line 546
aload 0 /* covarianceMatrix */
iconst_1
aaload
iconst_0
faload
fmul
7: .line 545
fsub
fstore 3 /* b */
start local 3 // float b
8: .line 547
fload 2 /* a */
fconst_2
fdiv
fstore 4 /* value */
start local 4 // float value
9: .line 548
fload 4 /* value */
f2d
ldc 2.0
invokestatic java.lang.Math.pow:(DD)D
fload 3 /* b */
f2d
dsub
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 5 /* rightside */
start local 5 // float rightside
10: .line 549
fload 4 /* value */
fneg
fload 5 /* rightside */
fadd
fstore 6 /* lambda1 */
start local 6 // float lambda1
11: .line 550
fload 4 /* value */
fneg
fload 5 /* rightside */
fsub
fstore 7 /* lambda2 */
start local 7 // float lambda2
12: .line 551
fload 6 /* lambda1 */
fload 7 /* lambda2 */
fcmpl
ifne 16
13: .line 552
aload 1 /* targetVector */
iconst_0
fconst_0
fastore
14: .line 553
aload 1 /* targetVector */
iconst_1
fconst_0
fastore
15: .line 554
goto 21
16: .line 555
StackMap locals: float[][] float[] float float float float float float
StackMap stack:
fload 6 /* lambda1 */
fload 7 /* lambda2 */
fcmpl
ifle 17
fload 6 /* lambda1 */
goto 18
StackMap locals:
StackMap stack:
17: fload 7 /* lambda2 */
StackMap locals:
StackMap stack: float
18: fstore 8 /* lambda */
start local 8 // float lambda
19: .line 556
aload 1 /* targetVector */
iconst_0
fconst_1
fastore
20: .line 557
aload 1 /* targetVector */
iconst_1
fload 8 /* lambda */
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_0
faload
fsub
aload 0 /* covarianceMatrix */
iconst_0
aaload
iconst_1
faload
fdiv
fastore
end local 8 // float lambda
21: .line 559
StackMap locals:
StackMap stack:
aload 1 /* targetVector */
areturn
end local 7 // float lambda2
end local 6 // float lambda1
end local 5 // float rightside
end local 4 // float value
end local 3 // float b
end local 2 // float a
end local 1 // float[] targetVector
end local 0 // float[][] covarianceMatrix
LocalVariableTable:
Start End Slot Name Signature
0 22 0 covarianceMatrix [[F
1 22 1 targetVector [F
5 22 2 a F
8 22 3 b F
9 22 4 value F
10 22 5 rightside F
11 22 6 lambda1 F
12 22 7 lambda2 F
19 21 8 lambda F
MethodParameters:
Name Flags
covarianceMatrix
static float[] rotate(float[], float);
descriptor: ([FF)[F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 // float[] points
start local 1 // float angle
0: .line 564
fload 1 /* angle */
f2d
invokestatic java.lang.Math.cos:(D)D
d2f
fstore 2 /* cos */
start local 2 // float cos
1: .line 565
fload 1 /* angle */
f2d
invokestatic java.lang.Math.sin:(D)D
d2f
fstore 3 /* sin */
start local 3 // float sin
2: .line 566
aload 0 /* points */
arraylength
istore 4 /* size */
start local 4 // int size
3: .line 567
iconst_0
istore 5 /* i */
start local 5 // int i
4: goto 10
5: .line 568
StackMap locals: float[] float float float int int
StackMap stack:
aload 0 /* points */
iload 5 /* i */
faload
fload 2 /* cos */
fmul
aload 0 /* points */
iload 5 /* i */
iconst_1
iadd
faload
fload 3 /* sin */
fmul
fsub
fstore 6 /* x */
start local 6 // float x
6: .line 569
aload 0 /* points */
iload 5 /* i */
faload
fload 3 /* sin */
fmul
aload 0 /* points */
iload 5 /* i */
iconst_1
iadd
faload
fload 2 /* cos */
fmul
fadd
fstore 7 /* y */
start local 7 // float y
7: .line 570
aload 0 /* points */
iload 5 /* i */
fload 6 /* x */
fastore
8: .line 571
aload 0 /* points */
iload 5 /* i */
iconst_1
iadd
fload 7 /* y */
fastore
end local 7 // float y
end local 6 // float x
9: .line 567
iinc 5 /* i */ 2
StackMap locals:
StackMap stack:
10: iload 5 /* i */
iload 4 /* size */
if_icmplt 5
end local 5 // int i
11: .line 573
aload 0 /* points */
areturn
end local 4 // int size
end local 3 // float sin
end local 2 // float cos
end local 1 // float angle
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 12 0 points [F
0 12 1 angle F
1 12 2 cos F
2 12 3 sin F
3 12 4 size I
4 11 5 i I
6 9 6 x F
7 9 7 y F
MethodParameters:
Name Flags
points
angle
static float[] translate(float[], float, float);
descriptor: ([FFF)[F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 // float[] points
start local 1 // float dx
start local 2 // float dy
0: .line 577
aload 0 /* points */
arraylength
istore 3 /* size */
start local 3 // int size
1: .line 578
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 579
StackMap locals: int int
StackMap stack:
aload 0 /* points */
iload 4 /* i */
dup2
faload
fload 1 /* dx */
fadd
fastore
4: .line 580
aload 0 /* points */
iload 4 /* i */
iconst_1
iadd
dup2
faload
fload 2 /* dy */
fadd
fastore
5: .line 578
iinc 4 /* i */ 2
StackMap locals:
StackMap stack:
6: iload 4 /* i */
iload 3 /* size */
if_icmplt 3
end local 4 // int i
7: .line 582
aload 0 /* points */
areturn
end local 3 // int size
end local 2 // float dy
end local 1 // float dx
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 8 0 points [F
0 8 1 dx F
0 8 2 dy F
1 8 3 size I
2 7 4 i I
MethodParameters:
Name Flags
points
dx
dy
static float[] scale(float[], float, float);
descriptor: ([FFF)[F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 // float[] points
start local 1 // float sx
start local 2 // float sy
0: .line 586
aload 0 /* points */
arraylength
istore 3 /* size */
start local 3 // int size
1: .line 587
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 588
StackMap locals: int int
StackMap stack:
aload 0 /* points */
iload 4 /* i */
dup2
faload
fload 1 /* sx */
fmul
fastore
4: .line 589
aload 0 /* points */
iload 4 /* i */
iconst_1
iadd
dup2
faload
fload 2 /* sy */
fmul
fastore
5: .line 587
iinc 4 /* i */ 2
StackMap locals:
StackMap stack:
6: iload 4 /* i */
iload 3 /* size */
if_icmplt 3
end local 4 // int i
7: .line 591
aload 0 /* points */
areturn
end local 3 // int size
end local 2 // float sy
end local 1 // float sx
end local 0 // float[] points
LocalVariableTable:
Start End Slot Name Signature
0 8 0 points [F
0 8 1 sx F
0 8 2 sy F
1 8 3 size I
2 7 4 i I
MethodParameters:
Name Flags
points
sx
sy
}
SourceFile: "GestureUtils.java"