public void <init>()

Attributes

Byte
offset
InstructionArgument
0aload_0
1invokespecialObject.<init> ()V():void
4return

protected static void bitreverse(double)

Attributes

Byte
offset
InstructionArgument
0aload_0
1arraylength
2iconst_2
3idiv
4istore_1
5iload_1
6iconst_1
7isub
8istore_2
9iconst_0
10istore_3
11iconst_0
12istore%4
14goto116
17iload_3
18iconst_1
19ishl
20istore%5
22iload%4
24iconst_1
25ishl
26istore%6
28iload_1
29iconst_1
30ishr
31istore%7
33iload_3
34iload%4
36if_icmpge99
39aload_0
40iload%6
42aload_0
43iload%5
45daload
46aload_0
47iload%5
49iconst_1
50iadd
51daload
52dstore%8
54aload_0
55iload%5
57aload_0
58iload%6
60daload
61dastore
62aload_0
63iload%5
65iconst_1
66iadd
67aload_0
68iload%6
70iconst_1
71iadd
72daload
73dastore
74dastore
75aload_0
76iload%6
78iconst_1
79iadd
80dload%8
82dastore
83goto99
86iload%4
88iload%7
90isub
91istore%4
93iload%7
95iconst_1
96ishr
97istore%7
99iload%7
101iload%4
103if_icmple86
106iload%4
108iload%7
110iadd
111istore%4
113iinc%3 1
116iload_3
117iload_2
118if_icmplt17
121return

public static void inverse(double)

Attributes

Byte
offset
InstructionArgument
0aload_0
1iconst_1
2invokestaticFFT.transform_internal ([DI)V(double, int):void
5aload_0
6arraylength
7istore_1
8dconst_1
9iload_1
10iconst_2
11idiv
12i2d
13ddiv
14dstore_2
15iconst_0
16istore%4
18goto34
21aload_0
22iload%4
24aload_0
25iload%4
27daload
28dload_2
29dmul
30dastore
31iinc%4 1
34iload%4
36iload_1
37if_icmplt21
40return

protected static int log2(int)

Attributes

Byte
offset
InstructionArgument
0iconst_0
1istore_1
2iconst_1
3istore_2
4goto14
7iload_2
8iconst_2
9imul
10istore_2
11iinc%1 1
14iload_2
15iload_0
16if_icmplt7
19iload_0
20iconst_1
21iload_1
22ishl
23if_icmpeq51
26newError
29dup
30newStringBuffer
33dup
34ldc_w"FFT: Data length is not a power of 2!: "
37invokespecialStringBuffer.<init> (Ljava/lang/String;)V(String):void
40iload_0
41invokevirtualStringBuffer.append (I)Ljava/lang/StringBuffer;(int):StringBuffer
44invokevirtualStringBuffer.toString ()Ljava/lang/String;():String
47invokespecialError.<init> (Ljava/lang/String;)V(String):void
50athrow
51iload_1
52ireturn

public static void main(String[])

Attributes

Byte
offset
InstructionArgument
0newjava.io.BufferedReader
3dup
4newjava.io.InputStreamReader
7dup
8getstaticSystem.in Ljava/io/InputStream;
11invokespecialjava.io.InputStreamReader.<init> (Ljava/io/InputStream;)V(java.io.InputStream):void
14invokespecialjava.io.BufferedReader.<init> (Ljava/io/Reader;)V(java.io.Reader):void
17astore_2
18getstaticSystem.out Ljava/io/PrintStream;
21ldc_w"Please input a number:"
24invokevirtualjava.io.PrintStream.println (Ljava/lang/String;)V(String):void
27getstaticSystem.out Ljava/io/PrintStream;
30ldc_w"Please input a random seed:"
33invokevirtualjava.io.PrintStream.println (Ljava/lang/String;)V(String):void
36invokestaticSystem.currentTimeMillis ()J():long
39pop2
40ldc_w"432423"
43invokestaticInteger.parseInt (Ljava/lang/String;)I(String):int
46istore%5
48newjava.util.Random
51dup
52ldc_w"432432"
55invokestaticInteger.parseInt (Ljava/lang/String;)I(String):int
58i2l
59invokespecialjava.util.Random.<init> (J)V(long):void
62astore_0
63iload%5
65iconst_2
66irem
67ifeq186
70sipush1024 
73istore_1
74iconst_2
75iload_1
76imul
77newarraydouble
79astore_2
80iload_1
81aload_0
82invokestaticFFT.makeRandom (ILjava/util/Random;)[D(int, java.util.Random):double
85invokestaticFFT.test ([D)D(double):double
88dstore_3
89getstaticSystem.out Ljava/io/PrintStream;
92newStringBuffer
95dup
96ldc_w"n="
99invokespecialStringBuffer.<init> (Ljava/lang/String;)V(String):void
102iload_1
103invokevirtualStringBuffer.append (I)Ljava/lang/StringBuffer;(int):StringBuffer
106ldc_w" => RMS Error="
109invokevirtualStringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;(String):StringBuffer
112dload_3
113invokevirtualStringBuffer.append (D)Ljava/lang/StringBuffer;(double):StringBuffer
116invokevirtualStringBuffer.toString ()Ljava/lang/String;():String
119invokevirtualjava.io.PrintStream.println (Ljava/lang/String;)V(String):void
122goto186
125iload%5
127istore%5
129iconst_2
130iload%5
132imul
133newarraydouble
135astore_2
136iload%5
138aload_0
139invokestaticFFT.makeRandom (ILjava/util/Random;)[D(int, java.util.Random):double
142invokestaticFFT.test ([D)D(double):double
145dstore_3
146getstaticSystem.out Ljava/io/PrintStream;
149newStringBuffer
152dup
153ldc_w"n="
156invokespecialStringBuffer.<init> (Ljava/lang/String;)V(String):void
159iload%5
161invokevirtualStringBuffer.append (I)Ljava/lang/StringBuffer;(int):StringBuffer
164ldc_w" => RMS Error="
167invokevirtualStringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;(String):StringBuffer
170dload_3
171invokevirtualStringBuffer.append (D)Ljava/lang/StringBuffer;(double):StringBuffer
174invokevirtualStringBuffer.toString ()Ljava/lang/String;():String
177invokevirtualjava.io.PrintStream.println (Ljava/lang/String;)V(String):void
180iload%5
182iconst_2
183idiv
184istore%5
186iload%5
188iconst_2
189irem
190ifeq125
193invokestaticSystem.currentTimeMillis ()J():long
196pop2
197return

public static double makeRandom(intjava.util.Random)

Attributes

Byte
offset
InstructionArgument
0iconst_2
1iload_0
2imul
3istore_3
4iload_3
5newarraydouble
7astore_0
8iconst_0
9istore_2
10goto23
13aload_0
14iload_2
15aload_1
16invokevirtualjava.util.Random.nextDouble ()D():double
19dastore
20iinc%2 1
23iload_2
24iload_3
25if_icmplt13
28aload_0
29areturn

public static final double num_flops(int)

Attributes

Byte
offset
InstructionArgument
0ldc2_w5.0
3iload_0
4i2d
5dstore_1
6dload_1
7dmul
8ldc2_w2.0
11dsub
12iload_0
13invokestaticFFT.log2 (I)I(int):int
16i2d
17dmul
18ldc2_w2.0
21dload_1
22dconst_1
23dadd
24dmul
25dadd
26dreturn

public static double test(double)

Attributes

Byte
offset
InstructionArgument
0aload_0
1arraylength
2istore_1
3iload_1
4newarraydouble
6astore_2
7aload_0
8iconst_0
9aload_2
10iconst_0
11iload_1
12invokestaticSystem.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V(Object, int, Object, int, int):void
15aload_0
16invokestaticFFT.transform ([D)V(double):void
19aload_0
20invokestaticFFT.inverse ([D)V(double):void
23dconst_0
24dstore_3
25iconst_0
26istore%5
28goto48
31dload_3
32aload_0
33iload%5
35daload
36aload_2
37iload%5
39daload
40dsub
41dup2
42dmul
43dadd
44dstore_3
45iinc%5 1
48iload%5
50iload_1
51if_icmplt31
54dload_3
55iload_1
56i2d
57ddiv
58invokestaticMath.sqrt (D)D(double):double
61dreturn

public static void transform(double)

Attributes

Byte
offset
InstructionArgument
0aload_0
1iconst_m1
2invokestaticFFT.transform_internal ([DI)V(double, int):void
5return

protected static void transform_internal(doubleint)

Attributes

Byte
offset
InstructionArgument
0aload_0
1arraylength
2ifne6
5return
6aload_0
7arraylength
8iconst_2
9idiv
10istore_2
11iload_2
12iconst_1
13if_icmpne17
16return
17iload_2
18invokestaticFFT.log2 (I)I(int):int
21istore_3
22aload_0
23invokestaticFFT.bitreverse ([D)V(double):void
26iconst_0
27istore%4
29iconst_1
30istore%5
32goto394
35dconst_1
36dstore%6
38dconst_0
39dstore%8
41ldc2_w2.0
44ldc2_w2.0
47iload_1
48i2d
49dmul
50ldc2_w3.141592653589793
53dmul
54ldc2_w2.0
57iload%5
59i2d
60dmul
61ddiv
62dup2
63invokestaticMath.sin (D)D(double):double
66dstore%10
68ldc2_w2.0
71ddiv
72invokestaticMath.sin (D)D(double):double
75dstore%12
77dload%12
79dmul
80dload%12
82dmul
83dstore%19
85iconst_0
86istore%14
88goto187
91iconst_2
92iload%14
94imul
95istore%15
97iconst_2
98iload%14
100iload%5
102iadd
103imul
104istore%16
106aload_0
107aload_0
108iload%16
110iconst_1
111iadd
112daload
113dstore%12
115aload_0
116iload%16
118aload_0
119iload%15
121daload
122aload_0
123iload%16
125daload
126dstore%17
128dload%17
130dsub
131dastore
132iload%16
134iconst_1
135iadd
136aload_0
137iload%15
139iconst_1
140iadd
141daload
142dload%12
144dsub
145dastore
146aload_0
147iload%15
149dload%17
151aload_0
152iload%15
154daload
155dadd
156dastore
157aload_0
158aload_0
159iload%15
161iconst_1
162iadd
163istore%16
165iload%16
167daload
168dload%12
170dadd
171dstore%17
173iload%16
175dload%17
177dastore
178iload%14
180iconst_2
181iload%5
183imul
184iadd
185istore%14
187iload%14
189iload_2
190if_icmplt91
193iconst_1
194istore%16
196goto378
199dload%6
201dload%10
203dload%8
205dmul
206dsub
207dload%19
209dload%6
211dmul
212dload%8
214dload%10
216dload%6
218dmul
219dadd
220dload%19
222dload%8
224dmul
225dsub
226dstore%17
228dsub
229dstore%6
231dload%17
233dstore%8
235iconst_0
236istore%15
238goto369
241iconst_2
242iload%15
244iload%16
246iadd
247imul
248istore%14
250iconst_2
251iload%15
253iload%16
255iadd
256iload%5
258iadd
259imul
260istore%21
262aload_0
263dload%8
265dload%6
267aload_0
268iload%21
270daload
271dstore%17
273dload%17
275dmul
276dload%8
278aload_0
279iload%21
281iconst_1
282iadd
283daload
284dstore%12
286dload%12
288dmul
289dsub
290dstore%22
292dload%17
294dmul
295dload%6
297dload%12
299dmul
300dadd
301dstore%17
303aload_0
304iload%21
306aload_0
307iload%14
309daload
310dload%22
312dsub
313dastore
314iload%21
316iconst_1
317iadd
318aload_0
319iload%14
321iconst_1
322iadd
323daload
324dload%17
326dsub
327dastore
328aload_0
329iload%14
331aload_0
332iload%14
334daload
335dload%22
337dadd
338dastore
339aload_0
340aload_0
341iload%14
343iconst_1
344iadd
345istore%21
347iload%21
349daload
350dload%17
352dadd
353dstore%22
355iload%21
357dload%22
359dastore
360iload%15
362iconst_2
363iload%5
365imul
366iadd
367istore%15
369iload%15
371iload_2
372if_icmplt241
375iinc%16 1
378iload%16
380iload%5
382if_icmplt199
385iinc%4 1
388iload%5
390iconst_2
391imul
392istore%5
394iload%4
396iload_3
397if_icmplt35
400return