4          6    6  6   6     @$      !" #$ !%& '( 6) * + T, L- ./01 H23 J24 L5 L67 O8 O9 O:;2<= X>?@ A OB OC 6DEFG c2H e2I g2J i2KLMNO o2P q2Q s2R u2S w2T y2U {2V }2WNullProgressMonitorImpl InnerClasses DATASET_SIZEI ConstantValue'()VCodeLineNumberTableLocalVariableTablethisLtest/FFTMultiThreadExperiment; getMonitor;(Ljava/lang/String;)Lorg/das2/util/monitor/ProgressMonitor;labelLjava/lang/String;main([Ljava/lang/String;)VspeedD timesMultiLorg/das2/qds/QDataSet;ifwLjava/io/PrintWriter;timesTwo timesFour timesEightexLjava/io/IOException;size numThreadsLjava/lang/Exception;args[Ljava/lang/String; StackMapTable& ExceptionsX doTwoThreads()Ddsmon0'Lorg/das2/util/monitor/ProgressMonitor;t0Jouttimemon1mon2run1Ljava/lang/Runnable;run2time18;?fftMultiThread(I)Djthrrun0threadsrunLjava/util/ArrayList;mon[Lorg/das2/qds/QDataSet;temptime0LocalVariableTypeTable+Ljava/util/ArrayList;>Ljava/util/ArrayList;7 doFourThreadsmon3mon4run3run4doEightThreadsmon5mon6mon7mon8run5run6run7run8 isFinished+([Lorg/das2/util/monitor/ProgressMonitor;)Zmmons([Lorg/das2/util/monitor/ProgressMonitor;finishedZ SourceFileFFTMultiThreadExperiment.java 5test/FFTMultiThreadExperiment$NullProgressMonitorImpl Yjava/lang/StringmultiZ [\&args[0] should be four,eight or, multi] ^Y _` abjava/io/PrintWriterjava/io/FileWriter"/tmp/multiThreadedFFT_TestData.txt cjava/lang/StringBuilder=== de df === gh Multi threads:  dij klm no ptwo /tmp/twoThreads.txtq rsfour /tmp/fourThreads.txteight /tmp/eightThreads.txt tu vwx yz{ |}~   /tmp/Experiment1.png Yjava/io/IOExceptiontest/FFTMultiThreadExperiment h   java/lang/Exception  original task     task 1task 2test/FFTMultiThreadExperiment$1 test/FFTMultiThreadExperiment$2java/lang/Thread  java/util/ArrayListorg/das2/qds/QDataSet b %org/das2/util/monitor/ProgressMonitortasktest/FFTMultiThreadExperiment$3 java/lang/Runnabletime: d   task 3task 4test/FFTMultiThreadExperiment$4test/FFTMultiThreadExperiment$5test/FFTMultiThreadExperiment$6test/FFTMultiThreadExperiment$7task 5task 6task 7task 8test/FFTMultiThreadExperiment$8test/FFTMultiThreadExperiment$9 test/FFTMultiThreadExperiment$10 test/FFTMultiThreadExperiment$11 test/FFTMultiThreadExperiment$12 test/FFTMultiThreadExperiment$13 test/FFTMultiThreadExperiment$14 test/FFTMultiThreadExperiment$15java/lang/Objectjava/lang/InterruptedException(Ljava/lang/String;)Vjava/lang/SystemerrLjava/io/PrintStream;java/io/PrintStreamprintlnexit(I)Vequals(Ljava/lang/Object;)Z(Ljava/io/Writer;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(D)Ljava/lang/StringBuilder;java/lang/DoublevalueOf(D)Ljava/lang/Double;org/das2/qds/ops/Opsdataset+(Ljava/lang/Object;)Lorg/das2/qds/QDataSet;closeorg/autoplot/ScriptContext formatDataSet,(Lorg/das2/qds/QDataSet;Ljava/lang/String;)V setLayout(II)VgetDocumentModel ()Lorg/autoplot/dom/Application;org/autoplot/dom/ApplicationgetPlots(I)Lorg/autoplot/dom/Plot;org/autoplot/dom/PlotgetYaxis()Lorg/autoplot/dom/Axis;org/das2/datum/Units dimensionlessLorg/das2/datum/Units;org/das2/datum/DatumRange newDatumRange5(DDLorg/das2/datum/Units;)Lorg/das2/datum/DatumRange;org/autoplot/dom/AxissetRange(Lorg/das2/datum/DatumRange;)V writeToPngjava/lang/ClassgetNamejava/util/logging/Logger getLogger.(Ljava/lang/String;)Ljava/util/logging/Logger;java/util/logging/LevelSEVERELjava/util/logging/Level;logC(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)VripplesWaveformTimeSeries(I)Lorg/das2/qds/QDataSet;currentTimeMillis()JfftPowerX(Lorg/das2/qds/QDataSet;ILorg/das2/util/monitor/ProgressMonitor;)Lorg/das2/qds/QDataSet;()Zsleep(J)Vplot(ILorg/das2/qds/QDataSet;)VA(Lorg/das2/qds/QDataSet;Lorg/das2/util/monitor/ProgressMonitor;)V(Ljava/lang/Runnable;)Vstartaddget(I)Ljava/lang/Object;I([Lorg/das2/qds/QDataSet;ILorg/das2/qds/QDataSet;ILjava/util/ArrayList;)V(J)Ljava/lang/StringBuilder;()ItoArray(([Ljava/lang/Object;)[Ljava/lang/Object;!6/*  3 Y*"   <=YSK* *2  Y Y N6{Y9Y:-Y`6=6{Y9Y:-Y`6=6{Y9Y:-Y`6 =6{Y9Y:-Y`6=6{Y9Y:-Y`6-*2 *> !9:"#`>o*2$ *> %9:&#`>=*2' *> (9:)#`> *+,-.01234N6789-:L6789+:5;6M,-.234!7,8=:F;e<k>?A:CDEFHIJ8DALCMLNkOqQRSMUVWXZ[#\?VH]K^T_s`ybcd^fhjkmnjqstu&v-s7yB{I|N~X_{iqv.kJ@~J~qJF~J#~yJN~="&"NXD"U!}}}}} ! ! !cB 'L?A*+@:+A BD? e7*EF>:G>:HY*I: JY*K: ?ALY MNLY MNAA BD? e7  o9  V $-49?FMYeiup  4}FkMdYX eL  3S  ,OYPLOYPM':,RW?7-,ST@S,STA UD?e7?7 6  lYW `>:,RW `6 6XY -,Y:+RW ?7LY+ SZMN `6 Y[? e\,,]T^_` UD?e7  o9v&-2EU^fkt    )8 5$no ,$ &2fk  )$EER  \'L?A*+@:+A BD? e7*F>:G>:a>: b>: cY*d: eY*f: gY* h: iY* j:?ALY MNLY MNLY MNLYMNA*A  A A BDҸ? e7o9j#% &')$*-,4/92@3G4N5U7aCmOy[ghijkmnpqs 4@GN U a m y x ? 0 }'L?A*+@:+A BD? e7*F>:G>:a>: b>: k>: l>: m>: n>:oY*p:qY*r:sY* t:uY* v:wY* x:yY* z:{Y* |:}Y*~:?ALYMNLYMNLYMNLYMNLYMNLYMNLYMNLYMNTYSYSY SY SY SY SY SYS` BDŸ? e7o9&xz {|~$-49@GNU\cjq})5jsz yuk4R@FG?N8 U1 \* c# j q} z W= *<*M,>6,2:A<"(  *( __6 }{ywusqoigecXJH