PK 3f 3 META-INF/PK 2f 3C8 META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.2 Created-By: 1.5.0_04-b05 (Sun Microsystems Inc.) Main-Class: edu.umiacs.fmm.gui.FmmDemo X-COMMENT: Main-Class will be added automatically by build PK 2f 3edu/PK 2f 3 edu/umiacs/PK 2f 3edu/umiacs/fmm/PK 2f 3{*,*,edu/umiacs/fmm/Box.class1P M                    @  ?    %                   ? ? ? ? ! "  #$%&'levelIindexc[Ledu/umiacs/fmm/Complex;dtildedxLjava/util/Vector; Signature*Ljava/util/Vector;ychildren(Ljava/util/Vector;l1l1bl2l3l4parentLedu/umiacs/fmm/Box;pdummyZ(III)VCodeLineNumberTableLocalVariableTableithissetDummy(Z)VbisDummy()Z getParent()Ledu/umiacs/fmm/Box; setParent(Ledu/umiacs/fmm/Box;)V getChildren()Ljava/util/Vector;*()Ljava/util/Vector; hasChildrenaddChildgetL1getL1bgetL2getL3getL4addL1addL1baddL2addL3addL4getLevel()IgetIndexgetC()[Ledu/umiacs/fmm/Complex; getDtildegetDaddC([Ledu/umiacs/fmm/Complex;)Vinc addDtildeaddDgetX,()Ljava/util/Vector;getY getXRecursivechildi$Ljava/util/Iterator;ansLocalVariableTypeTable getYRecursivegetPsetLevel(I)VsetIndexsetC setDtildesetDsetX([Ledu/umiacs/fmm/Point;)V[Ledu/umiacs/fmm/Point;(Ljava/util/Vector;)V-(Ljava/util/Vector;)VclearXclearYsetYaddX(Ledu/umiacs/fmm/Point;)VLedu/umiacs/fmm/Point;addYgetSize()D getCenter()Ledu/umiacs/fmm/Point;getNeighborsAllNonDummy,(Ledu/umiacs/fmm/FmmTree;)Ljava/util/Vector; parentLevel parentIndextLedu/umiacs/fmm/FmmTree; neighborsB(Ledu/umiacs/fmm/FmmTree;)Ljava/util/Vector; getNeighborsjtmpLedu/umiacs/fmm/Complex;eLjava/lang/Exception;7(Ledu/umiacs/fmm/FmmTreeNonAdaptive;)Ljava/util/Vector;#Ledu/umiacs/fmm/FmmTreeNonAdaptive;M(Ledu/umiacs/fmm/FmmTreeNonAdaptive;)Ljava/util/Vector;getChildrenIncDummy/(Ledu/umiacs/fmm/FmmTree;)[Ledu/umiacs/fmm/Box;[Ledu/umiacs/fmm/Box;getNeighborsE4IncDummy thisChildarr$len$parentsNeighbormyNeighborsVecmyParentsNeighborsmyParentsNeighborsAtMyLevelVecgetNeighborsE4 compareTo(Ljava/lang/Object;)IoLjava/lang/Object;equals(Ljava/lang/Object;)ZgetLabel()Ljava/lang/String;toString toLongStringLjava/lang/String; SourceFileBox.java g( ef dP OP QP RS TS USjava/util/Vector VW ZWedu/umiacs/fmm/Complex g) [W ]W ^W _W `W aW bc * +, - ./ zr 012 3r 45edu/umiacs/fmm/Box x 67 x8 9:edu/umiacs/fmm/Point; <= g> ?@ gA qr B CD E F G HIjava/lang/ExceptionJ st wx KL java/lang/StringBuilder( MN MO,) Box :  x pts and  y ptsjava/lang/Objectjava/lang/Comparable()V(D)Vsize addElement(Ljava/lang/Object;)VindexOfadd2(Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;iterator()Ljava/util/Iterator;java/util/IteratorhasNextnext()Ljava/lang/Object;addAll(Ljava/util/Collection;)Zjava/lang/Mathpow(DD)Dedu/umiacs/fmm/Util uninterleave(II)Ledu/umiacs/fmm/Complex;(DD)Vmultiply(D)Ledu/umiacs/fmm/Complex;(Ledu/umiacs/fmm/Complex;)Vedu/umiacs/fmm/FmmTreegetBox(II)Ledu/umiacs/fmm/Box;containsreal imaginary interleave(III)I!edu/umiacs/fmm/FmmTreeNonAdaptive elementAt(I)Ljava/lang/Object;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;!MNOPQPRSTSUSVWXYZWXY[WX\]WX\^WX\_WX\`WX\aWX\bcdPef9ghi********* Y * Y * * * 66* YS* YS* YS* Y * Y * Y * Y * Y * Y *jj" #$%&'"(')2*=+E,M-U.^/m0|1.3456789:k4X9lPmcOPQPdPnoi>*j <=kmcpfqri/*j?k mcsti/*jBk mcuvi>*+j EFkmcpcwxi/*jHk mcXyzri:*jKk mc{viA *+j NOk mc pc|xi/*jRk mcXy}xi/*jUk mcXy~xi/*jYk mcXyxi/*j]k mcXyxi/*jak mcXyviP*+ *+jd efkmcpcviP*+ *+jh ijkmcpcviP*+ *+jl mnkmcpcviP*+ *+jp qrkmcpcviP*+ *+jt uvkmcpci/*jyk mci/*j|k mci/*jk mci/*jk mci/*jk mcin$=***2+2Sj #k !lP$mc$Sin$=***2+2Sj #k !lP$mc$Sin$=***2+2Sj #k !lP$mc$Sxi/* jk mcXxi/* jk mcXxi=** Y L*M,,N+- W+j /8;k*/ c=mc)W )YXxi=** Y L*M,,N+-! W+j /8;k*/ c=mc)W )YXi/*jk mci>*j kmclPi>*j kmclPi>*+j kmcRSi>*+j kmcTSi>*+j kmcUSi.+,* Y =++2 * +2j'-k lP.mc.dic* Y * + Wj kmcdW dYXxi`* L* Y +jkmc W  YXxi`* L* Y +jkmc W  YXi.+,* Y =++2 * +2j'-k lP.mc.dic* Y * + Wj kmcdW dYXiI + * +j k mc diI + * +j k mc di7 "*t$jk  mciT *%Y**& Y'')**+,jk *mcie*+-M Y N,:H:."/d60z6+1:-2 --j2 * 2 ; D N QZ`ckR;PD P*6pcOemce_WWW_\W\Xip Y M**&N-36-466y6jZ`R`"*$=`5`"*$ ,+*``*51,M Y 6j6 "+4x !k\ .mP%|lPWVP"ZPmc \Xip Y M**&N-36-466y6jZ`R`"*$=`5`"*$ ,+*``*57,M Y 6j6 &'()"*++4,x-+*/01k\ .mP%|lPWVP"ZPmc \Xi,M>,+*`*x`1S,M()6j9: ;!:'=)@*Ak4 lP$*,mc,i *+-M*8+-N Y :-:=:+9:66   2:    Y ::+:*:,2 M Y 6jBGHIJ4KRLYK_MbOkPQRSUVWkRc <#APDP 4+cDpcr2WWWk<Wmc*\\\k<\Xi *+;M*8+;N Y :-:<:<:: Y :6.=:*:,2 M Y 6jB\]^_4`Ta^badjewfgheklmk Tc> 4*cCpcm5lPWWWj;Wmc*\\\j;\Xi;+M*,*,*,*,j* qrstuv*w,x7y9zk ;mc;6pciB*+>j}kmciR(?Y@AB*/CDB*0CEBFjk (mciA?Y@GB*HBFjk mciu9*IL?Y@+BJB* CKB* CLBFL+j7k9mc4PK 2f 3edu/umiacs/fmm/Complex.class1 ;            @ !TD-@!TD- ?  @ xDy()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/Complex;(Ledu/umiacs/fmm/Complex;)Vz(D)V(DD)Vpolar()Ledu/umiacs/fmm/Complex;ra cartesianreal()D imaginary magnitudeargumentadd2(Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;(D)Ledu/umiacs/fmm/Complex;dsubtractnegatemultiplydivideinvert conjugateabsequals(Ledu/umiacs/fmm/Complex;)ZtoString()Ljava/lang/String;ddLjava/text/DecimalFormat; parseComplex,(Ljava/lang/String;)Ledu/umiacs/fmm/Complex;sLjava/lang/String;fromItoexpexp_xlogrpartipartsqrtpowsincostanatanIMZPZMsinhcoshtanhatanh(D)D SourceFile Complex.java ?@ <= >= OP QP q~ edu/umiacs/fmm/Complex ?I t~ s~java/text/DecimalFormat0.0000 ?java/lang/Stringjava/lang/StringBuilder( ,) ab  l~ n~ nK ZU lK ZV {~ z~ sK tK [U XU [V zK {K TV XV YKjava/lang/Objectjava/lang/StrictMathatan2(DD)D(Ljava/lang/String;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;format(D)Ljava/lang/String;indexOf(I)I(II)I substring(II)Ljava/lang/String;java/lang/Double parseDouble(Ljava/lang/String;)D! ;<=>=(?@AI***B;< =?C DE?FAU**+*+BBC DECDEGE?HAO**'*BHI JKCDE<=?IAY**'*)BNO PRC DE<=>=JKAs-**k**kcH** J Y') BWX#YC -DEL=# M=NKAJ Y** k** k B^C  DEOPA/*BcC DEQPA/*BhC DERPAA**k**kcBnC DESPA6 ** BsC  DETUAN Y*+c*+c BxCDEGETVAF Y*'c* B}CDEW=XUAN Y*+g*+g BCDEGEXVAF Y*'g* BCDEW=YKA< Y*w*w BC DEZUAb . Y*+k*+kg*+k*+kc BC.DE.GEZVAH Y*'k*'k BCDEW=[UA F++k++kcI Y*+k*+kc(o*+k*+kg(o B C FDEFGE2L=[VAH Y*'o*'o BCDEW=\KA`(**k**kcH Y*'o*'o B C(DEL=]KA; Y**w BC DE^PAA**k**kcBC DE_`AR+*+*BCDEGEabAyAYLYY+*+*B  CADE 7cd efA=*(<*,=*`J<*)=*`9 Y) B%2C4=gh6ij.kj"<=2 >=lKAZ"*H Y'* k'* k B C"DEm=nKA>**k**kcH** J) )"gJ Y'$) B#+1C >DE'o=#p=qKAM**k**kcH%'*ckJ%'*gk9*w9 Y) B%4BC*MDE6L=%(o=4p=rUAP+*'(M,)B  C DEGE MErVAP*''*N-)B  C DEW= MEsKAR ( Y* **+k* **,k BC (DEtKAS ) Y* **+k* w**,k BC )DEuKA6 *-*./B C  DEvKAF Y0 L Y*c* M Y*g* N+,'-'235(B 0C*FDE :wE(xE0yEzKAR( Y**,* k**+* k BC (DE{KAR( Y**+* k**,* k BC (DE|KA6 *6*7/B"C  DE}KAG*8'*9:'235B'C DEz~AC''wg3oB-CDE<={~AC''wc3oB1CDE<=PK 2f 37qCCedu/umiacs/fmm/FmmTree.class1& 6 "7 "89 6 ": "; "<= 6 "> "? @A B "C D E F G "H I J KL KMN O P Q R S "T "UV "W "X "Y "Z "[ \ ] ^ _ ` a b c d e f g h i j@ kl @ m n o p kq@ kr "s tuv E6 Ewx Ey Ez {| } "~          "         " " "        "    E { z { z z  " "  MAX_NUM_LEVELI ConstantValue dimensionxLjava/util/Vector; Signature*Ljava/util/Vector;y potentialLedu/umiacs/fmm/Potential;struct;>;rootLedu/umiacs/fmm/Box;qDEFAULT_NUM_LEVEL currLevelnumTransJnumExp numDirect()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/FmmTree;A(Ljava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)VpLocalVariableTypeTableq(Ljava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)VinitDefaultStructchildiparentpxLedu/umiacs/fmm/Point;i$Ljava/util/Iterator;pylayer0layer1layer2lastLevelIndex(Ljava/util/Vector;buildc(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;arr$[Ledu/umiacs/fmm/Point;len$thxvyvY(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;bmaxClusterThresholdans(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;buildL1nbe2layer buildL2L3L4ce4 partition*(Ljava/util/Vector;Ledu/umiacs/fmm/Box;I)VdummyBoxsize childLevelchildrenxCountT(Ljava/util/Vector;>;Ledu/umiacs/fmm/Box;I)Vb([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;X(Ljava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;Ndl(Ljava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;setQ(I)VgetQ()I printComplex([Ledu/umiacs/fmm/Complex;)VccLedu/umiacs/fmm/Complex;[Ledu/umiacs/fmm/Complex; upwardPass([D)VkBthisUDfromtochildBlu[D downwardPassl2bl4bbCentersolve([D)[Dv solveHelper([D[D)Vdirectl1bsVecl3bidxrVecl1bAndbd solveDirectjgetRoot()Ledu/umiacs/fmm/Box; getStruct()Ljava/util/Vector;>()Ljava/util/Vector;>;getBox(II)Ledu/umiacs/fmm/Box;eLjava/lang/Exception;levelindexgetNumOfLevelsprintbbxpyptoString()Ljava/lang/String;Ljava/lang/String; treeToStringtreeToStringHelper:(Ledu/umiacs/fmm/Box;Ljava/lang/String;)Ljava/lang/String;prefixgetX,()Ljava/util/Vector;getY getNumTrans()J setNumTrans(J)V getNumExp setNumExp getNumDirect setNumDirect getPotential()Ledu/umiacs/fmm/Potential; setPotential(Ledu/umiacs/fmm/Potential;)V SourceFile FmmTree.java java/util/Vector edu/umiacs/fmm/Potential edu/umiacs/fmm/Box        edu/umiacs/fmm/Point      edu/umiacs/fmm/FmmTree               %         java/lang/StringBuilder                           '          !java/lang/Exception########Level ": # L1: # L2:  L3:  L4:  X points:  Y points:  C values:  Dtilde values: $  D values: ########End Level   X points:  Y points:  C values: Dtilde values:  D values: NULL   "# %begin  children end java/lang/ObjectgetP(III)V addElement(Ljava/lang/Object;)V setParent(Ledu/umiacs/fmm/Box;)VaddChilditerator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object; lastElement getBoxIndex(I)I elementAt(I)Ljava/lang/Object;addX(Ledu/umiacs/fmm/Point;)VaddY hasChildrenisDummygetNeighborsAllNonDummy,(Ledu/umiacs/fmm/FmmTree;)Ljava/util/Vector;addL1addL1bgetNeighborsE4IncDummyaddL2getLevelgetIndexgetL1contains(Ljava/lang/Object;)ZgetL1baddL3addL4java/lang/Mathpow(DD)DsetDummy(Z)VclearXclearY setElementAt(Ljava/lang/Object;I)Vlog(D)Dround(F)Ijava/lang/SystemoutLjava/io/PrintStream;append-(Ljava/lang/Object;)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/io/PrintStream(Ljava/lang/String;)V getXRecursivegetCoord()Ledu/umiacs/fmm/Complex; getCenter()Ledu/umiacs/fmm/Point; getSCoeffK(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex;indexOf(Ljava/lang/Object;)Iedu/umiacs/fmm/Complexmultiply(D)Ledu/umiacs/fmm/Complex;addC getChildrengetC()[Ledu/umiacs/fmm/Complex;getSSd(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;[Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex; getYRecursivegetL2getSRaddDgetL4 getRCoeffgetDgetRR getRVector2(Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;real()DaddAll(Ljava/util/Collection;)ZaddJ(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;getL3 getSVector firstElement(I)Ljava/lang/StringBuilder;println getDtilde toLongString!" $;****Y*Y*Y* Y "  "#$$%/&:' ;(***+*,*- *Y* "( *+,-#/'1*((((((M* <*YYM,**,YN6.Y:**-*-Y:66Y:*z:**d6*:.:**:.:*αr3456'7/98:A;N<W=`>f:l@tBCDEFGHCJ[\]^-_L`N;1 :5-5ME.8} .8 P hY:Y:+:662:  ,:662:  - & u vw+x2w8yQzXy^{+ #Q ;#@Chhhh _V _V ^ +,-!"Y+,-#:::$%&'* ~ =HKPU[H= '$^^^^G^^*d<*M,N--:(L)D**::(:(++ԧI(A**::(:(,,ԧU:R3CKhpw~p hR/K6/63  K66*d<*M,N--:)*-::{:) .)*/d0z:(12(3245S8N3;C`horzR`iJC3 C  z+6>o+/`6*+/`P7*96Y:6'Y+::;*Y:+<:+=:6GY+0x`+::  ++ *  0> :-: *  :-: *  :#:  / * $ٱ! "0;EV\cioy  *EHeovyV >+0?;4& J 4* 4e O*dyzzzr4;4yz B dYNY:*:662:-+:662:-,!&    * 0 6 OV \ *"O9#>Addd\S\S :*>?@?o@oB6 h@t9kB6*+, 1>:::51 ::>*C /*C 5+M,>6),2:DEYFGHIJKױ!".!4#>2/,55: 2*d=%*N--:)L(}6:f:*YM aM* NONP:+*Q196    2RS SdT:P:L6ON:ON:* UVS*YW aWܱb&'2(E)M*m+w,-./.123456789%;(>+&1@ 4'mTWm)>W2  '22=**N-x-:)bXWON:Y:F:L,ON:* UZ[*YW aW\::6:`: *  N]: +* Q19 6       2 RS  [*YM aMy(ZT:F:X,ON:* ^_[*YW aWe~B C0ECGMHmIxJKLNOPQRS TS!V(W2X5Y8Z@[`\k]u^_adBfm4WM > 1 N gqu`4JMMJ0g~j*+`*+a*M*+,b,ij kln *d>*::)(^:ON:c:v: * Q6 *  Nd: *YM aM6   , \1 2  2efcR ޻Y:  1gW hW :  p :6:M:+*Q19*  NNiRf9, \1cR*Yj ajk:  l :LR*  NONl:U:*YM aM6 , \122efcRާB(%rs4t<uDvKxUyuz{|}~}(CLVY\|r% (.C;T^w %92|Zfs Y I  ud _}K U4     a*M>,P6*;,\1+1* *N*NifkcR, !SY_4D S aa W;*mm /* n*Nn*2* ~ P<*M,?,NDEYFoIpqIJr-::)̲DsrDtK1:/:DEYFsIHIJKͲDuDvKY:/:DEYFsIHIJKͲDuDwKk:/:DEYFsIHIJKͲDuDxK\:/:DEYFsIHIJKͲDuDyK6:/:DEYFzIHIJKͲDuD{Kc:/:DEYFzIHIJKͲDuD|KU:66-2: DEYF }IHIJKҲDuD~K:66-2: DEYF }IHIJKҲDuDK^:66-2: DEYF }IHIJKҲDuDEYFIpIJr5>Zbmu  1 N Q W_;AIf !"#"%&'('%*+,.-L.O/.6616i666f P9U4X1 941 941ZD/ EPN /g L=*N--:EYF+IoIpqIIJL:M:%EYF+IsIIJLEYF+IIJL6:.:EYF+IzIHIJLλEYF+IIJLEYF+IIJLc:.:EYF+IzIHIJLλEYF+IIJLEYF+IIJLU:66  , 2: EYF+I }IHIJL ӻEYF+IIJLEYF+IIJL:66  , 2: EYF+I }IHIJL ӻEYF+IIJLEYF+IIJL^:66  , 2: EYF+I }IHIJL ӻEYF+IIJLEYF+IIJLEYF+IIpIJLO+$123!4F5c6h789:;<=>>?RAfBCBEFGHG J K4LQMmLsOPQSTUV5 5 m8r3u0  830 Q ;8@3C0 c;MT!   !!5 **[  "#N+TEYF,I+IIJEYF,I+IIJNEYF-I,II+sIIJN+T:<:EYF-I*EYF,I,IJIJNEYF-I,II+sIIJN-"` a%c@edfghi>*mC@ $ %/*n &'/*q &()/*Wt *+>*W wx,)/*Mz -+>*M }~.)/*j /+>*j 01/*  23>*+  45PK 2f 3N ,,'edu/umiacs/fmm/FmmTreeNonAdaptive.class1 g u  @   @   (     (  H      (        H          ! " # $ % & ' ( ) * + , -. H/ H0 H1 2 3456 P P78 P9:; P< <= H> (<?@A <BCDE HF HGpH MAX_NUM_LEVELI ConstantValue dimension numOfLevelsx[Ledu/umiacs/fmm/Point;y potentialLedu/umiacs/fmm/Potential;struct[[Ledu/umiacs/fmm/Box;DEFAULT_NUM_LEVEL currLevelnumTransJnumExp numDirect()VCodeLineNumberTableLocalVariableTablethis#Ledu/umiacs/fmm/FmmTreeNonAdaptive;(ILedu/umiacs/fmm/Potential;)VjilevelL(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)VB(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)VLjava/util/Vector;LocalVariableTypeTable*Ljava/util/Vector; Signaturer(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)VK([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)VN initStructparentLedu/umiacs/fmm/Box;buildn(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTreeNonAdaptive;maxClusterThreshholdansgetIndex0([Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Point;)IzpLedu/umiacs/fmm/Point; upwardPass([D)VkB[Ledu/umiacs/fmm/Complex;thisUDthisXi$Ljava/util/Iterator;thisBox parentBoxfromLedu/umiacs/fmm/Complex;toelu[D downwardPass1 thisE4Box downwardPass2childmsolve([D)[DincneiboxregPartdrVecsinPartneineiandmethisYxvv(Ljava/util/Vector; solveDirectgetClusterThreshold()Ixlengthylength getStruct()[[Ledu/umiacs/fmm/Box;getBox(II)Ledu/umiacs/fmm/Box;eLjava/lang/Exception;indexgetNumOfLevelstoString()Ljava/lang/String;Ljava/lang/String;arrToVec+([Ledu/umiacs/fmm/Point;)Ljava/util/Vector;arr$len$arrC([Ledu/umiacs/fmm/Point;)Ljava/util/Vector;vecToArr+(Ljava/util/Vector;)[Ledu/umiacs/fmm/Point;vecC(Ljava/util/Vector;)[Ledu/umiacs/fmm/Point;getX()[Ledu/umiacs/fmm/Point;getY getNumTrans()J setNumTrans(J)Vl getNumExp setNumExp getNumDirect setNumDirect SourceFileFmmTreeNonAdaptive.java }~ li ni xi op qp tuedu/umiacs/fmm/Potential rs[Ledu/umiacs/fmm/Box;I JKedu/umiacs/fmm/Box i }L ~ MN OP Q RS TS UV WX YX!edu/umiacs/fmm/FmmTreeNonAdaptive } Z[ \ ]^_ `a bcedu/umiacs/fmm/Point de fg hi {z j kl mn o\ p qr st uv yz w\ xy zv {n |t }n ~\ t v ~ ~ \ i k  yjava/util/Vector }    |zjava/lang/Exceptionjava/lang/StringBuilder ########Level :   X points:   Y Points:  C values: Dtilde values:  D values: ########End Level  } java/lang/Objectjava/lang/Mathpow(DD)D(III)Vlog(D)Dround(F)IgetP setParent(Ledu/umiacs/fmm/Box;)VaddChild getBoxIndex(I)IaddX(Ledu/umiacs/fmm/Point;)VaddYequals(Ljava/lang/Object;)Z()Ljava/util/Vector;iterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;getCoord()Ledu/umiacs/fmm/Complex; getCenter()Ledu/umiacs/fmm/Point; getSCoeffK(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex;edu/umiacs/fmm/Complexmultiply(D)Ledu/umiacs/fmm/Complex;addC([Ledu/umiacs/fmm/Complex;)V getXRecursivesize getParent()Ledu/umiacs/fmm/Box;getC()[Ledu/umiacs/fmm/Complex;getSSd(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;[Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex; getYRecursivegetNeighborsE47(Ledu/umiacs/fmm/FmmTreeNonAdaptive;)Ljava/util/Vector;getSR addDtilde getDtildeaddD getChildrengetDgetRR getRVector2(Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;real()D getNeighbors(Ljava/util/Collection;)V addElement(Ljava/lang/Object;)VindexOf(Ljava/lang/Object;)IdirectJ(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder; elementAt(I)Ljava/lang/Object;(I)VtoArray(([Ljava/lang/Object;)[Ljava/lang/Object;! g hijklijmniopqprstuvijwxiyz{z|z}~6*****d**** Y &   !""#*$5% 6}w*****d** >*G* S6*2 *2Y,Sڄ*, 6 & '()#*-+?,N-e,k*q/v04B)i%Liwwiwrs}8*****d** *,*-* ** 2 567#8(9-:3;7<488i8op8qp8rs}@*****d** **,**-* ** = @AB#C,D5E;F?G4@@i@o@q@rs@o@q}R**+6*oo**** *+*,*- *2 H I J&K.L3M>NCOHPMQQR4RRopRqpRrs Ei~{<*m* S=*2H*2Y* S*dzN*22---*22<*-**d2*2*d2*2<*-**d2*2*d2*2бFT UV)WAXLYXZ\[hVnTt^_^`a`b>LPiriv3i3i 0:6# Y+,-!:"ef gi$j'f-l>'i0i0op0qp0rs-">6++2,#pq rsq t4i""p" i" =**d2**d22N-$%:&e'(:* )-*)+:*Y, a,+**-196    2.S -/j*d=k>*2X*22:01=2:*):*):* 34/*Y5 a5bxy z?{T|^}l~w~x oi T>l&?S)l ui3)E`imi~:<*=*2{*22N-61b-*7%:&N':014*):-*):-* 389*Y5 a5p:  *JU_h|R_'hJ<4U i ii~z<*2*22*22:;<*d=*2z*22N-*):-<%:&O':615*):* -=>;:;*Y5 a5oF #)5BKTs~\ 'i(s=]VKhT_7i+id**?M*+@*A*B*N6**d23**d22:C%:& '(:9=: * )*)D: 6     2  2EFc9 *Y, a,9 *G:HYI:J%:&k':0%:&H'(:+,K19* ))L.F9 c9 *YM aM-**- cR-~ 2Bbel 18BEHY\b#i ,1 6OYrel bLB!Aidd [F  [ S*M>,D6*1,\1+1* *2)*2)LFkcR˄,EKQ48i GiSSKU<=**d2B**d22$1>**d22C16<<* (=BDJMS4(%i=iOiUSi/* d *22N N  *  i i/* OL=*PYQ+RSRTURVRWL>*2KPYQ+R*22XRVRWLPYQ+RYRWL6*22$16PYQ+R*22$Z([R\RWLPYQ+RVRWLPYQ+R]RWL6*22C16PYQ+R*22CZ([R\RWLPYQ+RVRWLPYQ+R^RWL6*2231PYQ+R*2232_R\RWLĻPYQ+RVRWLPYQ+R`RWL6*2231PYQ+R*22:2_R\RWLĻPYQ+RVRWLPYQ+RaRWL6*2231PYQ+R*22=2_R\RWLĻPYQ+RVRWLPYQ+RbRTcRWLa+" /<^r&,@Th "#$%$'(()<*d)j,~.0\ uFiFiW?i?i+?i1Sii.HY+dM+N-66-2:,J,4 5 6&5,8H  pii..p $  $R +(ef;   /*> /*A /*5D >*5 GHz/*,J >*, MNz/*MP >*M STzPK 2f 3ZPooedu/umiacs/fmm/Main.class1 F  E   ~  E E           1 0 0 E   9 9  ()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/Main;main([Ljava/lang/String;)VtmpDiIargs[Ljava/lang/String;N thresholdpxLjava/util/Vector;yu[DtLedu/umiacs/fmm/FmmTree;tt#Ledu/umiacs/fmm/FmmTreeNonAdaptive;indirect indirectNAdirecterrorLocalVariableTypeTable*Ljava/util/Vector; Exceptions printTree(Ledu/umiacs/fmm/FmmTree;)V loadInput)(Ljava/util/Vector;Ljava/util/Vector;[D)VLedu/umiacs/fmm/Point;filenameLjava/lang/String;frLjava/io/BufferedReader;linecount SignatureY(Ljava/util/Vector;Ljava/util/Vector;[D)V parsePoint*(Ljava/lang/String;)Ledu/umiacs/fmm/Point;ssLjava/util/StringTokenizer; printPoints([Ledu/umiacs/fmm/Point;)Varr$[Ledu/umiacs/fmm/Point;len$i$(Ljava/util/Vector;)VLjava/util/Iterator;-(Ljava/util/Vector;)VprintU([D)Vd SourceFile Main.java GHjava/util/Vector G lmedu/umiacs/fmm/Potential edu/umiacs/fmm/Point    X {YU ENDVVdirectjava/lang/StringBuilderError:  Adaptive:  translations,  expansions and  direct evaluations with level  Nonadaptive:  (re)expansions with level HID:\My Documents\My Programming Projects\fmmdemo-adaptive2\input\input.txtjava/io/BufferedReaderjava/io/FileReader G G  wx  java/util/StringTokenizer G  G          edu/umiacs/fmm/Mainjava/lang/Objectjava/lang/Exception(I)Vedu/umiacs/fmm/FmmTreebuildY(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;getNumOfLevels()ItoArray(([Ljava/lang/Object;)[Ljava/lang/Object;!edu/umiacs/fmm/FmmTreeNonAdaptiven(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTreeNonAdaptive;solve([D)[D solveDirectjava/lang/Mathabs(D)Djava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(D)Ljava/lang/StringBuilder;toString()Ljava/lang/String; getNumTrans()J(J)Ljava/lang/StringBuilder; getNumExp getNumDirect(I)Ljava/lang/StringBuilder;print(Ljava/io/Reader;)VreadLinejava/lang/Stringequals(Ljava/lang/Object;)Z addElement(Ljava/lang/Object;)Vjava/lang/Double parseDouble(Ljava/lang/String;)D'(Ljava/lang/String;Ljava/lang/String;)V nextToken(DD)VgetCoord()Ledu/umiacs/fmm/Complex;edu/umiacs/fmm/Complexreal()D imaginaryiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;(D)V!EFGHI3*J K LM NOI<=>Y:Y::Y:  Y : : : : 9 6 % 1 1g9 9 ٲ  Y  Y!"#$%#&'#() Y*+#,-) J!!+*-<.f/o0x45689:6=>?@ABCDEFGJLXMOK PQ*RSTUVS}WS{XSqYZg[Z!b\]<G^_f`aob] x c] d] eQ fqYgg[ghi jkI3*.J STK ^_ lmI/N0Y1Y-23:4:4:$56:*74:4:$56:+74:4:6#5,8R4:ޱJZVWXY"Z1[8\>]E^H_O`^aebkcrdue|fghijkK\ 8 Xne XnYZ[Z\]opqrsp&tSfYg[ghiuv wxIi#9Y*:;L Y+<8+<8=M,Jm n!oK #sp yz!Xn {|IC*L+=>9+2:Y>?:>@ ȱJrs<rBuK4+Xn@}~=S;SCY~ {IE*AL+B9+C MY,>?:,>@ ıJwxAyDzK )Xn?EYZf EYgu I~ *L+=>+19DJ|}|~K4Q}]SS \]PK 2f 3?f[[edu/umiacs/fmm/Point.class1W 56 7 8 9: 5; < = => ? @@ AB AC D EFGcoordLedu/umiacs/fmm/Complex;(DD)VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/Point;xDy(Ledu/umiacs/fmm/Complex;)Vc(Ledu/umiacs/fmm/Point;)VpgetCoord()Ledu/umiacs/fmm/Complex;setCoordtoString()Ljava/lang/String;equals(Ljava/lang/Object;)ZoLjava/lang/Object; getBoxIndex(I)IlevelI SourceFile Point.java Hedu/umiacs/fmm/Complex   "java/lang/StringBuilderPoint IJ )*edu/umiacs/fmm/Point +K LMN OP QR SMT UVjava/lang/Object()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(Ledu/umiacs/fmm/Complex;)Zreal()Djava/lang/Mathpow(DD)Dfloor(D)D imaginaryedu/umiacs/fmm/Util interleave(III)I! X**Y')  ! "F **+   #$P**Y+%&'/* (">*+ )*DY * # +,S+ M*,  '( -. %/0a-*k*k,--1234PK 2f 3Xd::edu/umiacs/fmm/Potential.class1` B C D EF G H I0 J K L M N O PQRpI DEFAULT_P()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/Potential;(I)VdirectJ(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;yjLedu/umiacs/fmm/Complex;xigetP()IsetPgetSRd(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;[Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex;ijfromtosCoeff[Ledu/umiacs/fmm/Complex;tsr[[Ledu/umiacs/fmm/Complex;ansgetSSssgetRRrCoeff getRCoeffK(Ledu/umiacs/fmm/Complex;Ledu/umiacs/fmm/Complex;)[Ledu/umiacs/fmm/Complex;xstar getRVectoryrVec getSCoeff getSVectorsVec SourceFilePotential.java    STedu/umiacs/fmm/Complex U VW XY ZW [\ ]Y ^\ Z\ [W _Wedu/umiacs/fmm/Potentialjava/lang/Objectequals(Ledu/umiacs/fmm/Complex;)Z(D)Vsubtract2(Ledu/umiacs/fmm/Complex;)Ledu/umiacs/fmm/Complex;log()Ledu/umiacs/fmm/Complex;dividemultiply(D)Ledu/umiacs/fmm/Complex;negatepowadd!  > **   F **   `+, Y+,  !"!#$/*" %>* %&&'9 ?,+:** :2S2Y S6*/2d22d   S6*#2Y S6*F6*42d22`d  SɄ*:6*DYS6*%2-222S؄^)*+ ,3.?/e.k0w10234326789:0967<= 65(n)):)L( +)J(??*!?+!?,-8.!*/0P1-2'p R,+:** :6*2YS2S6*/2d22d  S6*Bd6022`2 do SЄ6*.`6*2YS*:6*DYS6*%2-222S؄nABC!D1C7E?FKGqFwHIJIHKLMLKOPQR'SCRIPOV(B5(3)zH()4(+)J(RR*!R+!R,-K.!=30P1-4'R 8,+:** :6*2YS6*22d2S6*F`6*12d22d`  S̄6*)62YS*:6*DYS6*%2-222S؄jZ[\!]1\7^C_X^^`jayba`cdedcghij k)j/h5n(:$)p7)aL()/(+)J(88*!8+!85-1.!#30P1-67>*N-,+S6* -+,t tS-stuv6u<x4&(>>"!>8!61-97+*N6*-+, S-|}~#})4 (++:!+8!#;-<7?*N-YS6*!-+,  S-7=4'(??"!?8!71-=77*N-+,S6*-+,t S-/54(77:!78!/>-? @APK 2f 3Ledu/umiacs/fmm/TestNM.class1 DE FG H IJK D LM N O P Q RS FT@ FU IV WX Y Z[ Z\ Z] Z^ _ F`ab thresholdI()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/TestNM;main([Ljava/lang/String;)Viargs[Ljava/lang/String;NMx[Ledu/umiacs/fmm/Point;yu[Dp getFmmError5([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;II[D)DleveltLedu/umiacs/fmm/FmmTree;indirectdirectgetError([D[D)DtmpDerror SourceFile TestNM.java !"edu/umiacs/fmm/Pointc de !fg hijava/lang/StringBuilder jk jl 56 jm nop qr st uv w"  edu/umiacs/fmm/Potential !xy z{ |o }~ ~ <= tedu/umiacs/fmm/TestNMjava/lang/Objectjava/lang/Mathrandom()D(DD)Vjava/lang/SystemoutLjava/io/PrintStream;append(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;(D)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vlog(D)Dround(F)Igc(I)Vedu/umiacs/fmm/FmmTreebuildc(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree; treeToStringsolve([D)[D solveDirectabs! !"#3*$ % &' ()#@<=N::6"-YSR6YS 6Y - $> ! 2!:@#I$[#a'e(*%\ %* C* +,- .  /0{10v23e)4  56# Yoo66*+Y:::$& -./1"243?4H5Q7%\ Y/0Y10Y- Y4 Y23C7 4%89H:3Q;3 <=#,I6+!+1*1g9(I($;< >?!@$<*B%4 >?%* ,:3,;3*@?A"# $BCPK 2f 3?C0C C edu/umiacs/fmm/TestNvPvE.class1 G>hH IJ K LMN G OP Q R ST U IV@ IWX Y Z[ Z\ ] Z^ _ ` Sa IbcdMAX_PI()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/TestNvPvE;main([Ljava/lang/String;)Vix[Ledu/umiacs/fmm/Point;yu[Djargs[Ljava/lang/String;NeDp printFmmP5([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;ID[D)VtLedu/umiacs/fmm/FmmTree;indirecterrorleveltdirectdirectgetError([D[D)Dtmp SourceFileTestNvPvE.java "#edu/umiacs/fmm/Pointe fg "hi jkjava/lang/StringBuilder lm ln opq rs 89 tu vwedu/umiacs/fmm/Potential "xy z{ |} ! ~} AB l s uedu/umiacs/fmm/TestNvPvEjava/lang/Objectjava/lang/Mathrandom()D(DD)Vjava/lang/SystemoutLjava/io/PrintStream;append(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprint(Ljava/lang/String;)Vlog(D)Dround(F)I(I)Vedu/umiacs/fmm/FmmTreebuildc(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree; solveDirect([D)[Dsolve(D)Ljava/lang/StringBuilder;printlnabs! !"#$3*% & '( )*$M <I 66P2h<:::6  5 YS YS R ˲Y   (%F "( -!6"H#Z$b!h&')&\ 08+! "j,-(d.--_/01!234!56 7! 89$coo66*+Y::6  V*+Y :  :  9  )%Y      %:,-.//081C2U3^4g5n671:&z U;:; ^2<0 g)=6 ;[7! ,-.-4!56/0>!/h?;8_@0 AB$,I6+!+1*1g9(I(%=> @A!B$>*D&4 C6%+!,<0,@0*=6D#$2%EFPK 2f 3& edu/umiacs/fmm/TestNvTime.class1 KL MN O PQR K ST U V WX PY Z M[@ M\ ]^_ ` ab ac ]d e af Wg Mhij()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/TestNvTime;main([Ljava/lang/String;)ViIx[Ledu/umiacs/fmm/Point;yu[Djargs[Ljava/lang/String;N thresholdp printFmmTime5([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;II[D)Vlevel indirectStartLjava/util/Calendar;tLedu/umiacs/fmm/FmmTree;indirect indirectEnd indirectTJ directStartdirect directEnddirectTgetError([D[D)DtmpDerror SourceFileTestNvTime.java  edu/umiacs/fmm/Pointk lm no pqjava/lang/StringBuilder rs rt uvw xy z 56 {| }~ edu/umiacs/fmm/Potential  r |edu/umiacs/fmm/TestNvTimejava/lang/Objectjava/lang/Mathrandom()D(DD)Vjava/lang/SystemoutLjava/io/PrintStream;append(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprint(Ljava/lang/String;)Vgclog(D)Dround(F)Ijava/util/Calendar getInstance()Ljava/util/Calendar;(I)Vedu/umiacs/fmm/FmmTreebuildc(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;solve([D)[DgetTimeInMillis()J(J)Ljava/lang/StringBuilder; solveDirectprintln(J)Vabs! !3*" # $% &'!R < = >6P2h<:::65YSYSR˲Y }"J  !&"+#4$F%X&`#f()*,#\ .8() m*+&g,++b-. /)012)3) 4) 56!oo66 :*+Y:::  e7 Y  : : : e7"F/012"3'485A6F8S9m;p<u=~>@AB#*+,+2)4)-.7)'r898a:;AX<.FS=9 SF>? u$@9 ~A. B9 C? DE!,I6+!+1*1g9(I("EF HI!J$F*L#4 FG%(),<.,A.*HGIJPK 2f 3"]V V edu/umiacs/fmm/TestPvE.class1 GH IJ K LMN G OP Q R S T UV IW@ IX LY Z[\ ] ^_ ^` Za b Uc ^d e Ifgh()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/TestPvE;main([Ljava/lang/String;)ViIpargs[Ljava/lang/String;N thresholdx[Ledu/umiacs/fmm/Point;yu[D getFmmError5([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;II[D)DlevelstartLjava/util/Calendar;tLedu/umiacs/fmm/FmmTree;indirectstopdirectgetError([D[D)DtmpDerror SourceFile TestPvE.java !"edu/umiacs/fmm/Pointi jk !lm nojava/lang/StringBuilder pq pr 67 ps tuv wx yz {| }"~ edu/umiacs/fmm/Potential ! p x @A zedu/umiacs/fmm/TestPvEjava/lang/Objectjava/lang/Mathrandom()D(DD)Vjava/lang/SystemoutLjava/io/PrintStream;append(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;(D)Ljava/lang/StringBuilder;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vlog(D)Dround(F)Igcjava/util/Calendar getInstance()Ljava/util/Calendar;(I)Vedu/umiacs/fmm/FmmTreebuildc(I[Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;Ledu/umiacs/fmm/Potential;)Ledu/umiacs/fmm/FmmTree;solve([D)[DgetTimeInMillis()J(J)Ljava/lang/StringBuilder;print solveDirectabs! !"#3*$ % &' ()#.< =N::64-YSYSR621Y - α$:  1!C"KQ%[&%(%R7*+T5,+-./+0+ ~12x32s45 67#0 zoo66:*+Y::: Y e :  $. +,-/"0'182A3F4i5r6%p z12z32z/+z,+z45d8+'S9:8B;<A9=5F4>: r?5 @A#,I6+!+1*1g9(I($:; =>!?$;*A%4 BC%*+,=5,?5*DCEFPK 2f 3 ]]edu/umiacs/fmm/Util.class1: - . /0 1 2345()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/Util; interleave(III)IiIansxylevel uninterleave(II)Ledu/umiacs/fmm/Complex;xIntyIntnLsetbitpossettogetbit(II)IgetError([D[D)DtmpDindirect[Ddirecterror SourceFile Util.java !" edu/umiacs/fmm/Complex 67 89edu/umiacs/fmm/Utiljava/lang/Object(DD)Vjava/lang/Mathabs(D)D!  /*    K >67dhddd>dhddd> "  ,CI 4: ?KKK  ] Y=>69ddddh`=ddddh>ǻY &  !"4#K!Q% 4<MK]]  Y xx~ )* ,   !" H x~ /0 2    #$ ,I6+!+1*1g9(I( 56 89!:$6*< 4 %&%,'(,)(**&+,PK 3f 3edu/umiacs/fmm/gui/PK 2f 3j#edu/umiacs/fmm/gui/AnimCircle.class13 * + , - . /01xDyrIcLjava/awt/Color;rr(DDIILjava/awt/Color;)VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/gui/AnimCircle;getX()DgetYgetR()IgetColor()Ljava/awt/Color;getRRgetOuterCornerXScaled(I)I proportiongetOuterCornerYScaledgetInnerCornerXScaledgetInnerCornerYScaledisFilled()Z SourceFileAnimCircle.java 2   edu/umiacs/fmm/gui/AnimCirclejava/lang/Object()V!  !**'*)***  >!! ! ! ! !/* /*! /*$ /*' /**  !C*k*g-" #!E*gk*g0" $!C*k*g3" %!E*gk*g6" &'7 *9  ()PK 3f 3Rݴ!edu/umiacs/fmm/gui/AnimLine.class15 + , - . / 0 123fromXDfromYtoXtoYcLjava/awt/Color;widthI(DDDDLjava/awt/Color;I)VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/gui/AnimLine;getFromX()DgetFromYgetToXgetToYgetFromXScaled(I)I proportiongetFromYScaled getToXScaled getToYScaledgetColor()Ljava/awt/Color;getWidth()I SourceFile AnimLine.java 4   edu/umiacs/fmm/gui/AnimLinejava/lang/Object()V!     '**'*)*** * "  &H'' ' ' ' ' ' /* /* /* /*   = *k"  !" ? *gk%  !# = *k(  !$ ? *gk+  !%&/*- '(/*. )*PK 3f 38+edu/umiacs/fmm/gui/AnimationException.class1  ()VCodeLineNumberTableLocalVariableTablethis'Ledu/umiacs/fmm/gui/AnimationException;(Ljava/lang/String;)VsLjava/lang/String; SourceFileAnimationException.java   %edu/umiacs/fmm/gui/AnimationExceptionjava/lang/Exception!3*    >*+    PK 3f 3{ROO*edu/umiacs/fmm/gui/AnimationWorker$1.class1,     "#$this$0$Ledu/umiacs/fmm/gui/AnimationWorker;'(Ledu/umiacs/fmm/gui/AnimationWorker;)VCodeLineNumberTableLocalVariableTablethis InnerClasses&Ledu/umiacs/fmm/gui/AnimationWorker$1; construct()Ljava/lang/Object; SourceFileAnimationWorker.javaEnclosingMethod% &' ' () *+-edu/umiacs/fmm/gui/AnimationWorker$ActualTask ActualTask $edu/umiacs/fmm/gui/AnimationWorker$1edu/umiacs/fmm/gui/SwingWorker"edu/umiacs/fmm/gui/AnimationWorkergo()V setStatus(I)VsetStatusMessage(Ljava/lang/String;)V    4 *+*6  P*d*Y*7 89 !PK 3f 3-3edu/umiacs/fmm/gui/AnimationWorker$ActualTask.class1'      this$0$Ledu/umiacs/fmm/gui/AnimationWorker;'(Ledu/umiacs/fmm/gui/AnimationWorker;)VCodeLineNumberTableLocalVariableTablee'Ledu/umiacs/fmm/gui/AnimationException;this ActualTask InnerClasses/Ledu/umiacs/fmm/gui/AnimationWorker$ActualTask; SourceFileAnimationWorker.java !" #!%edu/umiacs/fmm/gui/AnimationException $% &%-edu/umiacs/fmm/gui/AnimationWorker$ActualTaskjava/lang/Object()V"edu/umiacs/fmm/gui/AnimationWorker runAnimation setStatus(I)V setCommand    r*+*+M+d+Z     PK 3f 3sr6r6(edu/umiacs/fmm/gui/AnimationWorker.class1                      3! 3" #$ #%& ' () (*@$+ &, - . 3/ 0 123 45 6 7 8 9: 3; 8< 3= >? @ A BC DE BF BG BHI @J K LM NOP GQ GR GST G2 8U 8VW 82X 8Y Z 8[ \  3 8]^_ 8` 8ab c 8de 3f Bgh i j kl 8mno 8p 8qr st u vwxy z { |} ~   ; ActualTask InnerClassesstatusIcommandintervalJanim#Ledu/umiacs/fmm/gui/LayerAnimation;propertyChangeSupport"Ljava/beans/PropertyChangeSupport; statusMessageLjava/lang/String;&(Ledu/umiacs/fmm/gui/LayerAnimation;)VCodeLineNumberTableLocalVariableTablethis$Ledu/umiacs/fmm/gui/AnimationWorker; getInterval()J setInterval(J)V getCommand()I setCommand(I)Vcgo()Vworker Ledu/umiacs/fmm/gui/SwingWorker;stopprocessCommandandRepaint Exceptions sleepIntervaleLjava/lang/Exception;inextStep animateLines8(Ljava/util/Vector;Ljava/util/Vector;Ljava/awt/Color;I)VfromXDfromYtoXtoYtoXIntermediatetoYIntermediatetoPointLedu/umiacs/fmm/Point;i$Ljava/util/Iterator; fromPointkfromLjava/util/Vector;toLjava/awt/Color;el numOfLevels lineWidthLocalVariableTypeTable*Ljava/util/Vector; Signatureh(Ljava/util/Vector;Ljava/util/Vector;Ljava/awt/Color;I)V:(Ljava/util/Vector;Ledu/umiacs/fmm/Box;Ljava/awt/Color;I)VLedu/umiacs/fmm/Box;<(Ljava/util/Vector;Ledu/umiacs/fmm/Point;Ljava/awt/Color;I)VanimateLinesPointtoArrR(Ljava/util/Vector;Ledu/umiacs/fmm/Box;Ljava/awt/Color;I)VT(Ljava/util/Vector;Ledu/umiacs/fmm/Point;Ljava/awt/Color;I)VanimateLinesBoxfromBfromArr(Ljava/util/Vector;P(Ljava/util/Vector;Ledu/umiacs/fmm/Box;Ljava/awt/Color;I)VR(Ljava/util/Vector;Ledu/umiacs/fmm/Point;Ljava/awt/Color;I)V:(Ledu/umiacs/fmm/Box;Ljava/util/Vector;Ljava/awt/Color;I)VR(Ledu/umiacs/fmm/Box;Ljava/util/Vector;Ljava/awt/Color;I)VtoBP(Ledu/umiacs/fmm/Box;Ljava/util/Vector;Ljava/awt/Color;I)V addCircle((Ledu/umiacs/fmm/Box;Ljava/awt/Color;I)VbrrrcenterLedu/umiacs/fmm/Complex; addCircles&(Ljava/util/Vector;Ljava/awt/Color;I)Vbv<(Ljava/util/Vector;Ljava/awt/Color;I)VrunAnimationUpwardPasschildBfromVeclstruct;>;runAnimationDownwardPassl2b l2NonEmptyl4bxVecchildnonEmptyChildrenrunAnimationFinalSummationl3bpy nonEmptyL3 runAnimationaddPropertyChangeListener&(Ljava/beans/PropertyChangeListener;)V#Ljava/beans/PropertyChangeListener;removePropertyChangeListenergetStatusMessage()Ljava/lang/String;setStatusMessage(Ljava/lang/String;)VoldStatusMessage getStatus setStatus oldStatus SourceFileAnimationWorker.java  java/beans/PropertyChangeSupport  $edu/umiacs/fmm/gui/AnimationWorker$1   %edu/umiacs/fmm/gui/AnimationException   java/lang/Exception        edu/umiacs/fmm/Point   edu/umiacs/fmm/gui/AnimLine     Point  java/util/Vector   edu/umiacs/fmm/Box      edu/umiacs/fmm/gui/AnimCircle   ==================== Performing upward pass. java/lang/StringBuilderPerforming upward pass level  .       Performing downward pass.  .....Level:  # SR translation in L2   R expansion in L4  ) RR translation to children Performing final summation. $ R expansion for all y % Direct summation in L1   S expansion in L3 FMM algorithm started.  passupdown  FMM algorithm completed java/lang/Integer"edu/umiacs/fmm/gui/AnimationWorkerjava/lang/Object-edu/umiacs/fmm/gui/AnimationWorker$ActualTask(Ljava/lang/Object;)V'(Ledu/umiacs/fmm/gui/AnimationWorker;)Vedu/umiacs/fmm/gui/SwingWorkerstart!edu/umiacs/fmm/gui/LayerAnimationrepaintjava/lang/ThreadsleepresetHighlightBoxes resetLines getFmmTree()Ledu/umiacs/fmm/FmmTree;edu/umiacs/fmm/FmmTree getStruct()Ljava/util/Vector;sizeiterator()Ljava/util/Iterator;java/util/IteratorhasNext()Znext()Ljava/lang/Object;getCoord()Ledu/umiacs/fmm/Complex;edu/umiacs/fmm/Complexreal()D imaginary(DDDDLjava/awt/Color;I)VaddLine (Ledu/umiacs/fmm/gui/AnimLine;)V elementAt(I)Ljava/lang/Object;getClass()Ljava/lang/Class;java/lang/ClasstoStringjava/lang/StringindexOf(Ljava/lang/String;)I getCenter()Ledu/umiacs/fmm/Point; addElementedu/umiacs/fmm/gui/Constants ANIM_COLOR_Sjava/awt/Colorequals(Ljava/lang/Object;)Z ANIM_COLOR_SS ANIM_COLOR_SR ANIM_COLOR_RR(DDIILjava/awt/Color;)V"(Ledu/umiacs/fmm/gui/AnimCircle;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;isDummy getXRecursive hasChildrenaddHighlightBox(Ledu/umiacs/fmm/Box;)VgetX getChildren getYRecursivegetL2addHighlightBoxes(Ljava/util/Vector;)VgetL4addAll(Ljava/util/Collection;)Z ANIM_COLOR_RgetYgetL1getL3firePropertyChange9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V!!~.**d*Z***Y* *+"# ($-%../*( >* +,/*. >* 12J Y* L+ 5 < = 5*2 @C s*** ****.*( * *2 *< Y* *>F GHIJ L)M0N4O@PERZSbUkVrW s7 ** [\  e N _a c be 9*** **** *& hijkl$n(o1p8q 9; **6d6+,+ ,6 *+: : ,:  w  :  !"9  !#9 !"9 !#9  gk$oc9gk$oc9*&Y -'(f**)DZuvwx3y4z>|E}a~}z[ QG=+}e g~ a K74+2+++*+,-.*+,-/ *+,-0 *34444444+2+++*+,-.*+,-1 *+,-2 *34444443Y4:,56*+-7 >  3Y4:,6*+-7 >    U3Y4:,563Y+4:+:8:56*-7  <IT\ < &#UUUUU K 5 U K 5  R3Y4:,63Y+4:+:8:56*-7 9FQ\ 9 ##RRRRR H5 R H54,2,+,*+,-.*+,-9 *+,-: *34444443Y4:+56*,-7 >    U3Y4:+563Y,4:,:8:56*-7  <IT\ < &#UUUUU K 5 U K 5> *6d66,;<d6<,=<d6&,>< 6,?< d6+5!:*@Y"#,ABF"%+8;ANQ^agpRyvp(+:8:*,C'>!(((( ( *DE*)*FE*L+=+d>_*GYHIJKLJME+*3:&8:NO*GYHPJQJRJMESV**T*)**U;dV*=dC*)**WiYi***T3Y[:\:'8:O 56*;dV*=dC**WiYi*)*ք$  ,Hk~ 2=GJ X d t x \ 2.mkU-'an imn *)*L+=>*DE*]E*GYH^JKRJME+*3:N8:N7_,*GYHPJQJRJME`**T**aE*`b*)3Y[:`:$8:_ 6*>V*>C*)**WiYi**c**T**dE**cb*)3Y[:c:8:OeW*fV*fC**WiYi**S**T**gE**\b*)3Y[:\:$8:_ 6*?h*\?i**WiYi***j*)f B!'C f!y"$%&'()*+,-. /01%2)395@6G:R;Y<b=i>o?v@ABCDEFGHILMN OPQR)S-T6UVVaWkXwYZ[\_`ad+m $bV@+6lf<PU*mb6lc *DE*)*kE*L+=+d>+*3:8:NSl***GYHPJQJRJMElC*mE*T*)*lfh**WiYi*****)*nE*ob*T*)**WiYi***)p*qE*pb*T*)3Y[:p:$8:O 6l:5 :*;r**WiYi**)Q*j62hi jlm o+pNqVrisptwvxyz{|}~#*15@FR[_hop r+#<h{N8' h{D*DE*sE*ȶt**u* vwxy*z*{*DE*|E*t2  (,06<C DA * +}  A * +~  /* `*M*+* ,+y  /* n$*=** YYy # $$ PK 3f 3P)*edu/umiacs/fmm/gui/ComputationThread.class1 9 8 8 8 8 8 8  8 8 8 8 8 8 8 8 8 8  > )  -B 8 8J 8 8LfmmTreeLedu/umiacs/fmm/FmmTree;fmmTreeNonAdaptive#Ledu/umiacs/fmm/FmmTreeNonAdaptive;errorDnumTransJnumTransNonAdaptive listenerList%Ljavax/swing/event/EventListenerList;propertyChangeSupport"Ljava/beans/PropertyChangeSupport;u[DnumExpnumExpNonAdaptive numDirectnumDirectNonAdaptive()VCodeLineNumberTableLocalVariableTablethis&Ledu/umiacs/fmm/gui/ComputationThread;(Ledu/umiacs/fmm/FmmTree;)Vfmmtree setFmmTreegenUiIrun runningErrorindirectdirectaddPropertyChangeListener&(Ljava/beans/PropertyChangeListener;)Vl#Ljava/beans/PropertyChangeListener;removePropertyChangeListenergetError()DsetError(D)VoldError getNumTrans()J setNumTrans(J)Vn oldNumTransgetNumTransNonAdaptivesetNumTransNonAdaptiveoldNumTransAdaptivegetU()[DsetU([D)V getNumExp setNumExp oldNumExpgetNumExpNonAdaptivesetNumExpNonAdaptiveoldNumExpNonAdaptive getNumDirect setNumDirect oldNumDirectgetNumDirectNonAdaptivesetNumDirectNonAdaptiveoldNumDirectNonAdaptive SourceFileComputationThread.java MN :; <= >? @A BA CD java/beans/PropertyChangeSupport M EF GH!edu/umiacs/fmm/FmmTreeNonAdaptive M  d WN  c ef hi jk ui vk {i |k ok yk k ^_ b_java/lang/Double Mf numTransAdaptivejava/lang/Long Mk IAnumExpAdaptive JA KAnumDirectAdaptive LA$edu/umiacs/fmm/gui/ComputationThreadjava/lang/Thread(Ljava/lang/Object;)Vedu/umiacs/fmm/FmmTreegetNumOfLevels()IgetX()Ljava/util/Vector;getY getPotential()Ledu/umiacs/fmm/Potential;B(ILjava/util/Vector;Ljava/util/Vector;Ledu/umiacs/fmm/Potential;)Vjava/util/Vectorsizejava/lang/Mathrandomsolve([D)[D solveDirectedu/umiacs/fmm/Util([D[D)DfirePropertyChange9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V!89 :;<=>?@ABACDEFGHIAJAKALAMNO4***** * **Y* * P* $ "."3%Q 4RSMTO`***** * **Y* * *+* Y* ***P2 & "."3'8(_)Q`RS`U;VTO]!*+* Y+ +++P,- .Q!RS!:;WNOo+** <* * RP012$1*4QXY+RSZNOH* *** N** W** :*-******** !**"#**$%P:68 9 ;<%=2><?G@RA]BhCsD~GQ*RS}[?f\H2M]H^_OA * +&P OPQ RS `ab_OA * +'P XYQ RS `acdO/*PaQ RSefOn$*J*'* ()Y)*)Y'*+Pjk l#mQ $RS$>?g?hiO/*PwQ RSjkOn$*B** ,-Y!.-Y.+P #Q $RS$lAmAniO/*PQ RSokOn$*B** /-Y!.-Y.+P #Q $RS$lApAqrO/* PQ RSstO>*+ P QRSGHuiO/*0PQ RSvkOn$*0B*0* 1-Y!.-Y.+P #Q $RS$IAwAxiO/*2PQ RSykOn$*2B*2* 3-Y!.-Y.+P #Q $RS$JAzA{iO/*4PQ RS|kOn$*4B*4* 5-Y!.-Y.+P #Q $RS$KA}A~iO/*6PQ RSkOn$*6B*6* 7-Y!.-Y.+P   # Q $RS$LAAPK 3f 3l=//"edu/umiacs/fmm/gui/Constants.class1g S T U V WX Y Z [ \ ] ^_` APP_VERSIONLjava/lang/String; ConstantValueaANIM_STATUS_MSG_SEPARATORbANIM_COLOR_HIGHLIGHTLjava/awt/Color;ANIM_STATUS_STOPPEDIdANIM_STATUS_RUNNINGANIM_STATUS_PAUSED,ANIM_STATUS_COMPLETEDANIM_COMMAND_START ANIM_COMMAND_PAUSEANIM_COMMAND_RESUMEANIM_COMMAND_FFANIM_COMMAND_FF2END(ANIM_COMMAND_STOP2ANIM_COMMAND_RESET<ANIM_COMMAND_NOCOMMANDZ ANIM_COLOR_S ANIM_COLOR_SS ANIM_COLOR_SR ANIM_COLOR_RR ANIM_COLOR_RANIM_DIRECTION_UPANIM_DIRECTION_DOWNANIM_PROPORTIONANIM_MAX_COLOR_STEPSIZEANIM_ARROW_STEPSANIM_INTERVAL_PLAYJ ANIM_INTERVAL_FF4X DEFAULT_NDEFAULT_TRUNCATION_NUMBERDEFAULT_CLUSTER_NUMBER()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/gui/Constants; SourceFileConstants.java IJ c  d 0java/awt/Color Ie 1 2 3 f 4edu/umiacs/fmm/gui/Constantsjava/lang/Object1.1.4====================  LIGHT_GRAYred(III)Vblue!   !"#$%&'()*+,-./0123456789:;+<!=>?A>BDEFGHIJK3*L M NOPJKrFYY Y̷ L' ().*?+QRPK 3f 3- &&"edu/umiacs/fmm/gui/FmmDemo$1.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$1;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$1java/lang/Object!java/beans/PropertyChangeListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$000?(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/beans/PropertyChangeEvent;)V   4 *+* 4   A *+ 56    PK 3f 3圕E#edu/umiacs/fmm/gui/FmmDemo$10.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$10;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$10java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$900;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+*    A *+     PK 3f 3b+XX#edu/umiacs/fmm/gui/FmmDemo$11.class1'    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$11;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  $ %&edu/umiacs/fmm/gui/FmmDemo$11java/lang/Object!java/beans/PropertyChangeListeneredu/umiacs/fmm/gui/FmmDemopanelToolbar1ActionPerformed(Ljava/awt/event/ActionEvent;)V()V access$000?(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/beans/PropertyChangeEvent;)V   4 *+* [   A *+ \]    PK 3f 3 00#edu/umiacs/fmm/gui/FmmDemo$12.class1   ()VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$12;run SourceFile FmmDemo.javaEnclosingMethod   edu/umiacs/fmm/gui/FmmDemo edu/umiacs/fmm/gui/FmmDemo$12java/lang/Objectjava/lang/Runnablemain([Ljava/lang/String;)V setVisible(Z)V   /* x    : Y y z   PK 3f 3Q"edu/umiacs/fmm/gui/FmmDemo$2.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$2;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$2java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$100;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+* =   A *+ >?    PK 3f 3=H"edu/umiacs/fmm/gui/FmmDemo$3.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$3;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$3java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$200;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+* C   A *+ DE    PK 3f 3]t?"edu/umiacs/fmm/gui/FmmDemo$4.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$4;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$4java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$300;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+* S   A *+ TU    PK 3f 3uP&&"edu/umiacs/fmm/gui/FmmDemo$5.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$5;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$5java/lang/Object!java/beans/PropertyChangeListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$400?(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/beans/PropertyChangeEvent;)V   4 *+* _   A *+ `a    PK 3f 3Q"edu/umiacs/fmm/gui/FmmDemo$6.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$6;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$6java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$500;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+* r   A *+ st    PK 3f 39?"edu/umiacs/fmm/gui/FmmDemo$7.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$7;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$7java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$600;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+* ~   A *+     PK 3f 3|"edu/umiacs/fmm/gui/FmmDemo$8.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$8;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$8java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$700;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+*    A *+     PK 3f 3}-"edu/umiacs/fmm/gui/FmmDemo$9.class1&    this$0Ledu/umiacs/fmm/gui/FmmDemo;(Ledu/umiacs/fmm/gui/FmmDemo;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLedu/umiacs/fmm/gui/FmmDemo$9;actionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent; SourceFile FmmDemo.javaEnclosingMethod! "#  # $%edu/umiacs/fmm/gui/FmmDemo$9java/lang/Objectjava/awt/event/ActionListeneredu/umiacs/fmm/gui/FmmDemoinitComponents()V access$800;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V   4 *+*    A *+     PK 3f 3=TATA edu/umiacs/fmm/gui/FmmDemo.class1'                            < !  $  '  *  -  0  3  6  9  < >  A  D    I     O ! $ ' * U * X -  \     c 0 0 i 0  n 3  r 6  v u 6 z 9 } 9 6 < A A D  D D D  D A !"# $ D%&'  A()* D+,  >-./0  1 2 3 4 56 7 !8 99 3: ;< = >? *@ !A *8 -B -C D E *F *G 'H 5I JK JLM N *O PQ 'O R $O S TUV WXY Z [ T\ ]^ ]H_ `JKLMN a Tbc Xde f 3g ; 3h 3i 3j >k  lm no pqrstuvwxy z{|}~  ! -O   '       > 9  ' > ! !  5computationThread1&Ledu/umiacs/fmm/gui/ComputationThread; dialogAbout1'Ledu/umiacs/fmm/gui/dialog/DialogAbout;dialogClickPoints1-Ledu/umiacs/fmm/gui/dialog/DialogClickPoints; dialogInput1'Ledu/umiacs/fmm/gui/dialog/DialogInput;dialogSettings1*Ledu/umiacs/fmm/gui/dialog/DialogSettings; jMenuBar1Ljavax/swing/JMenuBar; jMenuFileLjavax/swing/JMenu; jMenuHelpjMenuItemAboutLjavax/swing/JMenuItem; jMenuItemExitjMenuItemImportjMenuItemRegenjMenuItemSettingsjPanel1Ljavax/swing/JPanel; jSeparator1Ljavax/swing/JSeparator; lblStatusLjavax/swing/JLabel; panelMain1Ledu/umiacs/fmm/gui/PanelMain; panelStatus1 Ledu/umiacs/fmm/gui/PanelStatus; panelToolbar1!Ledu/umiacs/fmm/gui/PanelToolbar;treeLedu/umiacs/fmm/FmmTree;animationCompletedZ computedErrorDnumTransAdaptiveJnumExpAdaptivenumDirectAdaptivenumTransNonAdaptivenumExpNonAdaptivenumDirectNonAdaptiveframeIconImageLjava/awt/Image;()VCodeLineNumberTableLocalVariableTablethisLedu/umiacs/fmm/gui/FmmDemo;initComponentsreinit((Ljava/util/Vector;Ljava/util/Vector;I)VsourceLjava/util/Vector;usILocalVariableTypeTable*Ljava/util/Vector;&Ljava/util/Vector; SignatureT(Ljava/util/Vector;Ljava/util/Vector;I)V!dialogClickPoints1ActionPerformed(Ljava/awt/event/ActionEvent;)VevtLjava/awt/event/ActionEvent;dialogInput1ActionPerformed!dialogInput1ActionPerformedHelperdoubleVecToDoubleArr(Ljava/util/Vector;)[Ddi$Ljava/util/Iterator;ans[Di*(Ljava/util/Vector;)[DjMenuItemImportActionPerformedjMenuItemRegenActionPerformed jMenuItemSettingsActionPerformedjMenuItemAboutActionPerformed#jMenuItemAboutActionPerformedHelper computationThread1PropertyChange#(Ljava/beans/PropertyChangeEvent;)V Ljava/beans/PropertyChangeEvent;&computationThread1PropertyChangeHelperpanelMain1PropertyChangepanelMain1PropertyChangeHelperpopsAdaptopsReg newStatusjMenuItemExitActionPerformedpanelToolbar1ActionPerformed actionCommandLjava/lang/String;main([Ljava/lang/String;)Vargs[Ljava/lang/String; initFmmTreex[Ledu/umiacs/fmm/Point;y1([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;)V2([Ledu/umiacs/fmm/Point;[Ledu/umiacs/fmm/Point;I)Vq potentialLedu/umiacs/fmm/Potential;'(Ljava/util/Vector;Ljava/util/Vector;)VW(Ljava/util/Vector;Ljava/util/Vector;)VX(Ljava/util/Vector;Ljava/util/Vector;I)VpointVecToArray+(Ljava/util/Vector;)[Ledu/umiacs/fmm/Point;vecC(Ljava/util/Vector;)[Ledu/umiacs/fmm/Point; access$000?(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/beans/PropertyChangeEvent;)Vx0x1 access$100;(Ledu/umiacs/fmm/gui/FmmDemo;Ljava/awt/event/ActionEvent;)V access$200 access$300 access$400 access$500 access$600 access$700 access$800 access$900 SourceFile FmmDemo.java wf f vf tf uf }z f ef if yz QR DE FG HI JI KI LI MI NI  +/edu/umiacs/fmm/gui/resources/logo16x16.gif   OP XR >?==================== NApplication initialized. Please generate source and target points to proceed. $edu/umiacs/fmm/gui/ComputationThread !"%edu/umiacs/fmm/gui/dialog/DialogAbout Q #$(edu/umiacs/fmm/gui/dialog/DialogSettings )*%edu/umiacs/fmm/gui/dialog/DialogInput '(+edu/umiacs/fmm/gui/dialog/DialogClickPoints %&javax/swing/JLabel :;edu/umiacs/fmm/gui/PanelToolbar @Ajavax/swing/JPanel 67edu/umiacs/fmm/gui/PanelMain <=edu/umiacs/fmm/gui/PanelStatusjavax/swing/JMenuBar +,javax/swing/JMenu -.javax/swing/JMenuItem 41 31 51javax/swing/JSeparator 89 21 /. 01edu/umiacs/fmm/gui/FmmDemo$1 InnerClasses Q  edu/umiacs/fmm/gui/FmmDemo$2 edu/umiacs/fmm/gui/FmmDemo$3 java/awt/BorderLayout Q  ?@ABCDEFGHIJIKILIMINIOP#QRSX* * * * * * * * * ***** T: $).AENWU XVWXRS 4*!Y"#*$Y*%&*'Y*()**Y+,*-Y./*0Y12*3Y45*6Y78*9Y:;*Y?@*AYBC*DYEF*DYEG*DYEH*IYJK*DYEL*AYBM*DYEN*#OY*PQ*&*R*)*S*,*T*,UY*VW*/XY*YZ*[\Y]^*_*`a**b*2cYd ef*2gh*2iYjk*[*2lm*5nY*op*[*5qm*8rY*8st*8uYvYwxy*;zY{|*;}Y*~*8*;W*zY{*8*W*[*8m*C*CcYd e*FcYd e*FY**F*F*FY**C*FW*GcYd e*GY**G*G*GY**C*GW*HcYd e*HY**HS*H*HY**C*HW*C*KW*LcYd e*LY**LE*L*L*LY**C*LW*@*CW*M*McYd e*NcYd e*NY**N*NY**M*NW*@*MW**@*TNS !%"0#;$F%Q&\'g(r)}*+,-./0139:;< BH*J/K5L=MPNYOgPtRXZ\]^dfg ik!l4mGn^ogppqwyz{|} -9EXox'/3U 4VWYZS^+ * *++,,+*#*,*;*5*,**,*#T.  !-6AO]U*^VW^[\^]\^^_`^[a^]bcdefSh(**/*/*;*5T'U(VW(ghifS=*T UVWghjRSH**,*,*)T U VWklS5+M>+:¶9,R,T (03U>(mG$no5VW5]\.pq ,r_` 5]bcstfSA *,ıT U VW ghufS[**;+Ŷ*5TUVWghvfSA *)ƱT U VW ghwfS=*DZT UVWghxRS7 *&ȱT U  VWyzS>*+ɱT UVWg{|zS+˶̙C* +*Y϶+ѶҶӶжԶ*+¶õ+ն̙*+ֶ׵+ض̙*+ֶ׵t+ٶ̙*+ֶ׵W+ڶ̙*+ֶ׵:+۶̙*+ֶ׵+̙ܶ*+ֶ׵Tb 8;ILXfiu     UVWg{}zS>*+ݱT UVWg{~zS+޶߶+̙+=N*5*5*5*5*5*5*]*>*i*iia*a7*i*iia*a7**Y*ӶжԶ*Y***жԶ*Y***жԶ**XdR*5*5*5*5*5*5**,+̙*+ѶҶ+̙T"' .!?"J#U$`%k&t'()*+, -d.m/v0y23456789;<=>?IU>_II'_VWg{fS=T LMUVWghfSJ+M,̙ *,̙*)Ƨ},̙*#Y*Q*#[,̙O,̙C,̙*,ħ/,̙*/,̙ ,̙*;,TfQRSTUW&X)Y2ZA_H`KaTbWc`dcelftgwhijlmpqU VWgh S9 YT w |U  RSF*)L*)M>*)+Y   S,+2S*+, T" #39?EU*'r_FVW ;0SP*+,*) T  U VWS:Ȼ Y:*+,*;***Y+*)жԶ*YYжԧY*жԶӶжԶ*!Y*#*#T&  "+]U4VW_ Sl*+,*)T  U VW\\`aacZSx**+*, T U*VW\\^_`aacSR +TU VW \`  acS:*+ TUW{S:*+ TUWhS:*+TUWhS:*+TUWhS:*+TUW{S:*+TUWhS:*+TUWhS:*+TUWhS:*+TUWhS:*+TUWhb OUXn}PK 3f 3&襜)edu/umiacs/fmm/gui/LayerAnimation$1.class1+     !"#this$0#Ledu/umiacs/fmm/gui/LayerAnimation;&(Ledu/umiacs/fmm/gui/LayerAnimation;)VCodeLineNumberTableLocalVariableTablethis InnerClasses%Ledu/umiacs/fmm/gui/LayerAnimation$1;propertyChange#(Ljava/beans/PropertyChangeEvent;)Vevt Ljava/beans/PropertyChangeEvent; SourceFileLayerAnimation.javaEnclosingMethod$ %&  & '() *#edu/umiacs/fmm/gui/LayerAnimation$1java/lang/Object!java/beans/PropertyChangeListener!edu/umiacs/fmm/gui/LayerAnimation initFields()V access$000G(Ledu/umiacs/fmm/gui/LayerAnimation;)Ljava/beans/PropertyChangeSupport; java/beans/PropertyChangeSupportfirePropertyChange    4 *+* 7   D *+ : ;   PK 3f 3]9##'edu/umiacs/fmm/gui/LayerAnimation.class1 a b a a  a a a a a a  a    a a   a  a a a a b      % %    ,   % 2 2 4 %!=L a"# a$ : :% :& :' %( :) *+ :, :- :. 2/ 20 21 22 23 24 25 26 78 %9: P P;?ə a< a= %> %? 7@ 7A B C D E  FGHI proportionIcLjava/awt/Color;highlightBoxesLjava/util/Vector; Signature(Ljava/util/Vector;lines1Ljava/util/Vector;circles3Ljava/util/Vector; direction currLevelfmmTreeLedu/umiacs/fmm/FmmTree;aw$Ledu/umiacs/fmm/gui/AnimationWorker;statuspropertyChangeSupport"Ljava/beans/PropertyChangeSupport;()VCodeLineNumberTableLocalVariableTablethis#Ledu/umiacs/fmm/gui/LayerAnimation;(Ledu/umiacs/fmm/FmmTree;)V initFieldssetAnimationWorkerCommand(I)Vcommand getDirection()I setDirectiond getCurrLevel setCurrLevellgetHighlightBoxes()Ljava/util/Vector;setHighlightBoxes(Ljava/util/Vector;)VLocalVariableTypeTable+(Ljava/util/Vector;)VresetHighlightBoxesaddHighlightBox(Ledu/umiacs/fmm/Box;)VbLedu/umiacs/fmm/Box;addHighlightBoxesgetLinessetLines4(Ljava/util/Vector;)V resetLinesaddLine (Ledu/umiacs/fmm/gui/AnimLine;)VLedu/umiacs/fmm/gui/AnimLine; getCircles setCircles6(Ljava/util/Vector;)V resetCircles addCircle"(Ledu/umiacs/fmm/gui/AnimCircle;)VLedu/umiacs/fmm/gui/AnimCircle; getProportion setProportionpgetHighlightColor()Ljava/awt/Color;setHighlightColor(Ljava/awt/Color;)V getFmmTree()Ledu/umiacs/fmm/FmmTree; setFmmTreeinitComponentspaintComponent(Ljava/awt/Graphics;)VcornerLjava/awt/Point;widthilinecirclegLjava/awt/Graphics;g2Ljava/awt/Graphics2D; drawCircle7(Ljava/awt/Graphics2D;Ledu/umiacs/fmm/gui/AnimCircle;)V drawArrow6(Ljava/awt/Graphics2D;Ledu/umiacs/fmm/gui/AnimLine;F)VtmpPolyLjava/awt/Polygon;i1i2g2dstrokeFfromXDtoXfromYtoY fromXScaled toXScaled fromYScaled toYScaledaDiryCor(ID)IlendirxCorrunstop setInterval(J)VinJ getInterval()JaddPropertyChangeListener&(Ljava/beans/PropertyChangeListener;)V#Ljava/beans/PropertyChangeListener;removePropertyChangeListener access$000G(Ledu/umiacs/fmm/gui/LayerAnimation;)Ljava/beans/PropertyChangeSupport;x0 SourceFileLayerAnimation.java wx yz deJ Kg fg java/beans/PropertyChangeSupport yL rs z zjava/util/Vector li hi ni"edu/umiacs/fmm/gui/AnimationWorker yM tu#edu/umiacs/fmm/gui/LayerAnimation$1 InnerClasses N pe qe OL PQ RSjava/awt/Dimension yS TU Vzjava/awt/BorderLayout WX YZ java/awt/Graphics2D[ \_ `a bc de f ghedu/umiacs/fmm/Boxi jk lmn oe pe qredu/umiacs/fmm/gui/AnimLine sjava/awt/BasicStroke t yu vw edu/umiacs/fmm/gui/AnimCircle xy zy { |r }~ g y y  m m m m y y y y  rjava/awt/Polygon S     z z !edu/umiacs/fmm/gui/LayerAnimationjavax/swing/JPaneljava/io/Serializableedu/umiacs/fmm/gui/ConstantsANIM_COLOR_HIGHLIGHT(Ljava/lang/Object;)V&(Ledu/umiacs/fmm/gui/LayerAnimation;)V setCommand addElementaddAll(Ljava/util/Collection;)ZsetSize(II)VsetPreferredSize(Ljava/awt/Dimension;)Vrepaint setLayout(Ljava/awt/LayoutManager;)V setOpaque(Z)Vjava/awt/RenderingHintsKEY_ANTIALIASINGKeyLjava/awt/RenderingHints$Key;VALUE_ANTIALIAS_ONLjava/lang/Object;setRenderingHint2(Ljava/awt/RenderingHints$Key;Ljava/lang/Object;)VsetPaint(Ljava/awt/Paint;)Vsize elementAt(I)Ljava/lang/Object;edu/umiacs/fmm/gui/UtilgetBoxNECorner'(Ledu/umiacs/fmm/Box;I)Ljava/awt/Point;getSize()Djava/awt/PointxyfillRect(IIII)VgetColorgetWidth(F)V setStroke(Ljava/awt/Stroke;)VgetOuterCornerXScaled(I)IgetOuterCornerYScaledgetRfillOvalisFilled()Zjava/awt/ColorWHITEgetInnerCornerXScaledgetInnerCornerYScaledgetRRgetFromXgetToXgetFromYgetToYgetFromXScaled getToXScaledgetFromYScaled getToYScaledjava/lang/Mathatan2(DD)DdrawLineaddPoint drawPolygon(Ljava/awt/Polygon;)V fillPolygoncos(D)Dsingojava/awt/RenderingHints$Key!abc defghijklijmnijopeqerstuvewx(yz{r,****Y*** * |"%  &#''(+)} ,~y{|,****Y**+* * |"*  +#,'-+.},~,rsz{{=* Y * Y * Y *Y**Y*|1 23!5-6<=} =~{A *| @A} ~ e{/*|C} ~{>*| FG}~e{/*|I} ~{>*| LM}~e{/*|O} ~{P*+| RS}~hi hkjz{: * Y | U V}  ~{A *+| XY} ~ {T *+W| [ \} ~ i  kj{/* |^} ~{P*+ | ab}~li lmjz{: * Y | d f}  ~{A * +| hi} ~ {/*|k} ~{P*+| no}~ni nojz{: * Y | q r}  ~{A *+| tu} ~ f{/*|w} ~{a***Y*|z{ |}~}~e{/*|} ~{>*+| }~fg{/*|} ~{>*+| }~rsz{X"* Y!"*#*Y| !} "~{*+$+%M,&'(,*)>**G*+,:*-:.*k6,/0d``1>* *9* +2:,3),4Y567*,89>***+::*,;ޱ|V )6AOgmz}p 61A&OeOe#oAe%e~ {W+,<)+,*=,*>,?h,?h@,A*+B)+,*C,*D,Eh,Eh@|(/6V}