Changeset 3b6f1b in git
- Timestamp:
- Sep 12, 2014, 2:11:16 PM (9 years ago)
- Branches:
- (u'spielwiese', '8d54773d6c9e2f1d2593a28bc68b7eeab54ed529')
- Children:
- 750a0ef0a22f27fddb8987152aad2b122395dd60
- Parents:
- eb7c6b1e58d5e8f567c011a4a28afa0700b274e35ce0932fba9e2d08b5823f3de76db0209913f4ae
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
Tst/Long/gcdp_l.res.gz.uu
reb7c6b r3b6f1b 1 1 begin 664 gcdp_l.res.gz 2 M'XL(" "Y215(``V=C9'!?;"YR97,`[%M;CQ['<7W7KQCHQ<OOXT=U5]]MD(`#2 M'XL("/0_`%0``V=C9'!?;"YR97,`[%M;CQ['<7W7KQCHQ<OOXT=U5]]MD(`# 3 3 M`X&!)`A@YU76B%Q2"RQWB>5*'B?(?\\Y5=T]LR9]`6(CL"(]:&?FZVM=SJFJ 4 4 M;O[FM[_Z];\MR^)?+5]]]<5O^IN\P-OR[O6;#[^[??'X\7&Y++?W=^^6Q^N/ … … 123 123 M($T>K^>X1R7J_FT$N%*UPLJO*<Y`AN%.R$/,A3<\0R>_)GJZ5W8JDT,6*'I+ 124 124 MDEG?K-CQ^FE&8C+@SVN>:T%18`$FV%U&;38C2M[-\D%&D$-T3+6K6E_^I[UO 125 MV['E1JY\/U^AAWDX75M[G+R3,-S?X(=Y%E#84Z=K4+![(,GP[SO6B@NYCR6A 126 MQQ@,#$\)D%29W$DRR6!P1<0*9BEVOV^1AS:4]XXEB4O$.UQIBH$W[#Z\U%MK 127 MRN4*)4/#VK`1E.5::=B?]#6'WA3]LU430Z"N-J55U1CPL5Q;SW2X`N*1?A/8 128 M-%QKRM+5J([<+J'1`?G[5NE8)&TKS;F<O]E3V#\9JR(\N.2LU5Y=:S8-:.'V 129 M5<*M!M785PPW+J\UAJM-,-=,:_;28KA%^F5P8H]"6'#4T)K#_&#R9VV'I6#> 130 MLC`5:JK;5%@:C(%!L5<PU&$['KH0LRFN-,?0?8`_BI&CDJQ;DPD61$35_6W+ 131 M7&?P8_9M5((#&)(`G3ES6Z$SET:@>;]MQ"N+(J7P3%$NRJ$QI[-E)O@NVXT] 132 MP_$)S3B3ZSY`1^-)0RKJ.KQM.978!1!]3'6&LPV^$ONSJ7WJP7=!MZ>WK8?Y 133 M`]FX5,&`%M1/<P%A_,/=EF?UIPHVIV[^ME$#YU`;YB=[H8#Y9DJS)/L1_".' 134 MLTUD:)[.[-E]PY&+JMQR:,\T(K0!=0AK<>M,669C^]O&-8=KUKZVOZVD%@!$ 135 MKJII-:A-4AX68H`^W)H\>OBR4[K<8FA-[_6-;[#4<W@UY:JO/MTO4"_2(P"C 136 M5H1-.ARPEPL![(<:)D.Y%'D=)D,^_"/Y-UG*7T'O&72G-<+FJPNTOF-K%K0J 137 M6@*(6O9@(&700N4G<->^$IKS)W#)B<S#8S<$%A(.+\)E67[\!=Q1L\(PD+%L 138 M`H@AR/(#6,0HAS>J5(7H[:*K2'#U$D!=M1?P1LG`$Z[#,M$VQ')!3"\#5F=` 139 M_T7CX9Y+JWB3A-[<5J4])&:`C.X%VZ$(=(=$";2!Z=(S?8>T"40YP_P8"<[% 140 M^ZQ3?E':I.MQT&B0Y2Q-B#FT@.M7Y6O0.$J=72@8",&6&*D&[QVH5H5]P&#F 141 M>M%S*-LO_9<@K[V*437=O7E?$P98[C21>LMX!]D"PK]9]34&'L1KP,$GVKL/ 142 M<^S!@K\XE"EA&$1KB9'5YKK<+A0US:$4N44;JRW:<+)-F!$E2I%6&EZARPO= 143 MA@B)&XAKHA`T/A3+/Z]WP;1F'E99VQCCQ"F0*>LR/KDF-P[SY+NMQ:[#.D+J 144 M"\6@?S%Q@R82";RN9>*%D#H\A8)9%AJM`B3A;95MV\2+]#YX,V6UPIF)/!6, 145 MO,!7%S"1DTQW9^:H(%X,MV^NRR1,Q)633R8'ZH"T@Z[B\@72-87XDD&0'TP9 146 MR%?2799)&$A&ZI6EB%'2I&'U+$/`!!15KK4!I^R0;40F-_'U(5_2>9VZJW4* 147 MN528.#7J=(6$B1)3"<RH8O:!]VQ5W=LZ?F(\TW4JJ^<5FRIZ,7.?)F&R'6.. 148 MZ(&F@SQQ^OLU7<9Z<^?KHGDKYH;,R.S9G<>B+;,NYWJI%,]%UVW9WN.$,MC7 149 M@EO13A4]*5WMM9N4B<[.*DEX5S@I[BM1T!?]^)G=!.63*^'":,^+JW5BK$JG 150 MQBA#7>R7`/A7Z(55S8?>>N5HSHD.]$N$!^@XGQ[D?#@V\U0/,A*G`N-D9!8< 151 M&$?T;W*,`U>VD5:DWFV"PA*8VS[.=):%;2CJH)MM*&MU8THXN/KA$!41MEU- 152 M+NI0`@S0;^V'/Q1P_W"(9NX.]O?21!\Z1%MXM6#^]8V3-8#H;G%B'KLMNCJ@ 153 M$0^,"%^8AA6W0W1JGE)2CLSA$)4NG%'%@?RP<(AFQ5-D4M<C6@^SY<`YF+\= 154 MK[\\!TQVBN@=_*'A2P::D=TD.\KI9?EMP:>!!RIB=/.P"T52:T3K^RH1K:\G 155 MQLE7VB"B$&*T\(FVDLTPA',@FLK,9HC^03R&>=N53JO'H6"MCGS$[(LHFL,K 156 M*NCE"L-0Q-(RVQ"2C0Y"`G(_0O9BQ]9PB\H<5D<Y(@*';5CFV+9AQXD5BG+@ 157 ME3=ZI=C\!\Z9HQ[FH6Q"VS-:+#L@7^NP#G,+:Y^N@.'F83:V-NY>;?M&9?_R 158 M(1-PTPP9`=]JVB2$(<0&66+=D52#B5@O"X`,M7C:`8L.3VIAHL%7P1N.RHJR 159 M(,+Y)O.`(TW<^,S*/,6O1@MKB&ZYG`^/G6Q%O;OQN5+X\4*8Q*8LV_*7JS9M 160 M?NFZJYH7B8&?@7TSQC>%F0W#<WG(72Z&96?>=@08]F1JY3`Z1:#-C2T73<,? 161 M,$VGNK/<ZLS`GV%VRO:1MK/.,OLZ'$3K-#SK-@#@O"O5K':8FTK`SSQB9D5+ 162 M]<:<FK`\X>%K;GF*\:U&,9QZ,YUJN><KGD*T-X7#;N@$05F/W)XY5#W<:(CS 163 M+P\XT9FWW*^7YWXGS3EX\MA-"^SCXC(K-S$;)`Q].&3F-HUY>677R\4R@.7/ 164 M>`1691NG4I8WS,&B$L50C$4E]ENX/*![M\<)$8HT-]?#\E.HE6=$_DB:FO4T 165 M/EM$G'!1W%\'ET0\A7CCJJ%8D(O57+%`#A93+S1^59X4\XH(!_D=SB>#9K9[ 166 M4UE3II9[WH$W!*JZ+2/H8EEA=E\VCW:XZP3.7Z'+L><[EPRB,J;?%N/FT,HB 167 M`26<B?G8<)%5>C6_?:5-K\%$UY-(Q3PO4\K+4JW@L-!%&J&JF-@+^:I7F)U& 168 M6*;>#@TD&CA/WV06Q^=RJU.I9^3597\5NI]B1J&.RXAPM"RV9G>#KX*YW1LF 169 MLW+J"'4\F0",;-S9#L,SK7!"X^IJ'I*NS=FP/HO4!,%7;"`BFG^C@>S5G]5Q 170 M.4(AY7=R;026PF:1'5"-&K'-$'#ICN^!.V@B`.:+B5#%AL`.4MQ^E/5#NV4- 171 M(%:1'GG\(C('MB\@<`BJ1J`FWQ&'>Y6?*N$#5H^L)*E\=8]*@8QQ-8/UHD9@ 172 M0<NZ(9$B(R3F!IE:C?EBWQ)C9FO0]%@,F1'3EVM-&MBR+M'\0LPMUUX,TXMP 173 MTT:7Y8BPEZRA!D3/:!,I,:*JT;\^&KH_BU1WKY?:E#)RZUJ-A!8CFXBJ$RC> 174 M:!S19&PYT:AHC-OE`J0L9F$.,%_8P04S#&`FP3H7?%[<8,QDLXQ"XUVD3PU* 175 MEB\R10CEX<Q6DT,&L/=B/!"9F\SWK]?(G!Q$]98@'`7RB957(_24K';9L*`B 176 M6#6-!D\1Z('Q%>L)AD"?,&C:I_!\"L]_7'A<+1T!BU*-:+0"WC821((`TR;= 177 M`KH[\F+8KV3C#Q#=Z.G?6I+<YJD;<</9<Y?=%A,C<";RK>L,WVPC,INJB1NB 178 M`PS1\7:*(&]K/#'#]\>&;;B9G2@7FHF,N^T*#5YO8M3'"U70'75O;)41H&:W 179 MK\TI:DBJ"%*4IGZ;O=?`:RY,;,&?@\P(?0C$L2OP:<NT!PR[8T_6/&[\V7OU 180 M';_I02C!>$I@/]K0$9@7330GL23>"2[@/=ZPC<R&;<QAU.PI<G`CJ%[A^-\! 181 M\LHHF85&*AG-S7X&!YJCV@J24`O+%Y?=0_%((EZ:[X;[Y"_I0^`/A0S)576Z 182 M327WDGP0Y!VG'H]P\W5X53LCD#I-R)8'\4[_Y*D=]@RBZ*O$&S60(U6`*K.V 183 MB;CYYTHQ#!4)0RU:`A1SBP!GUBB!J`*^7YMCADG?,7^DYX/,I0_AV$3-F(%+ 184 MML3(,9`>T![GHA@MC9XLIL?SL)1@K"+#7YT1^D02Y6#.%OE[JGTC?S$/WAXA 185 M(`^KHUX[6ED9*++C5\2*C$A`6;?1`RWB0(G1+/Q22,;6M#7$!4)*"^9]!4D` 186 M9[>(KM2&>%&+W4?2;3P%$RT%I1:7PT/6<F%9<>,V6T1L"E9^6,N%<F`1862- 187 M7]?E]^&[](=$$&;Q02@X2N>ROI$[1L)2(><B!+M@\9?]1K@<%ER4B]G]=*&^ 188 M8@D59G!&,)>L;/.A%3(O-&D=OI0-:0MVJA%D%ERN::!6+J9FF!7LF&Y"P3B' 189 MFWO;[;+3F+CQ0*/1[#Z/%0B[7<0M`#TOEP\#;/IZ&=5&S(B@<V:N_''8[FDZ 190 M?Y)18XO_0EMLET;F<I\'V:8-`]&,(.=F2?DR>M<9-&Z;:@J"S0KK?;9I9S"M 191 MOIV"<)%<L47@S)[NH4]&DU?DX:V0(%CK(AR'\9XLB@G6S65'.#7V)5P+R'#I 192 MY3#>4ZPCEBGS`\9[F7L48*V7(VPLBL1CS84AR?IB$>2P/LD<C4G*NOZW0W5= 193 M?JY4:[MW\)^M=9CN\'XE-]U'JW8Z468NY7:H[HP&4F]*C_RG.34!E#SB'5DD 194 MM2+V%5)J\A54&[`[['X[H\:BT$.\F=R&?#5WJ(XPW5O;@4\`AK[M?;#SDU$, 195 MX5P=ZD8\>!;EB/_A$.J__,/7-<*8;?3[A1NOX4PFBXCB;SU$2_Z:>XTIF/') 196 M(^SQS0,7ZUK^JV!8`,"($@S$`D]3-MHE8`YSB`!^RHB<@D;_TXQVZ/0S-8,R 197 MH[+Q?@]O"!!,#BW8F%G2+D<YF6M"_QQ[?0F&(<$K@(Z`$Y-\7/1%KQ61S@Q. 198 MD6"857(\5$CK&HYT4E*COI$\5@ZDDS'>!]+IQ=:R7"S--VWP4VU:C4"8L6(O 199 MD*N:W9)&O&`UQSE&]C*<`PD,2'4AU_URH-/T1&4%0Z%O`6!`@=PX1P:\7(%S 200 MQM(SR40:6KA0`&7J)LY7.G]+H)RJ)\C)GVM$Q+\B>^0*H9/+WGR+%X4VJ]WE 201 MD2F!<NCV")0#%^$(E%.[GZ?7]NLTVD@^0W*YKAP@1Y`DO2B`0K*.HQT1A1G) 202 M`P`SPP("%=$!/8`-T*<&30I'N-4>K`Q<KI4"XN2D!_K@S[G)@S7HSX9Q9'Z: 203 MHYRA>>W`.SV%A2$`ILP-0^%AZL9BKW0^^JDR@CMSM$.20XTW(G6T!-#),!WU 204 MS[+3\0!A>FQ2A:??F',5%Y<>["Y_S@.RD`D?<1%@FU',EX8R^MD,\VP0C[-M 205 MTMYSB'N:J76Y:"W9489EHU<@G1QL/B*=Z<Q8$8!"3H8"H'"TXVRO=`(=.'N3 206 M(QU&T/7/<K7P,0/:Y+(IN-`%[0JD@P5O]^551^`C.)U'>"(+$?`58"?K(0PX 207 MO4"7@$$=',(>T!+(IQLIJI#ZHF=696;O'5&*M=F&A3PH1U4@P23[4=G>V,)] 208 M*^0.F.9R82UT0';[61]!54*4(C$Q+:!.J@;$Y*)::H?\E<.G/\68OXX811@R 209 MQ#9ZS"/_[)ODA4R8&0%&8)MN=%7RB_4$#/Q*C;9`.M?6/X`TU(+Z-RB;S6X? 210 MH4P2XD:XF(TNEQSKR/1U(\CE=%!W,>5U!S=P$D4/J-.O;#\"7>A@R&7HY0UU 211 M$!J[`NJ4-@WJ2$_'@75RV?LE:7'-;&]>Z!%H&<'_S:MCIE,0O8A]JD>3R#J^ 212 M#.T@X^Q(]Y:A&-&4G1H7\>.6[-Q&X.!^TN3:SO9A_-C$E?G>>CXI(QASYVM@ 213 M;ZB;N@M7R"H[5C'L6)C)83X`#TC-&_!8TI%=U'S9(6=C[*@SA&*#I*[G%GF@ 214 M(A45\G2PI,K!`2C_[OQSLJ00FH,/Z\IT$$J?7N6_#5XD`2%?B[1`'Y1R&<0P 215 M'*_WU1-]2"1E"`"&FVDMLFHJ4^%$13+O`127V9FNA\0!>@DKB"QWT8?X`1DN 216 M(*R_ZG9#/QAL7FE$9@(_`<4%7UD`;V>"7H-$B%%?J6'AJ!2,\'6)74E*18:K 217 MD%8[.#"#W63RA)CD;$2,'78#1/17Y7D@>0$<%X$LI$C!6\?3X5YEWV4G*FD9 218 MFA0H.!Q-=++)9J$W37;UK[(^)YVAG<7R_U>R"%D]'7(XS8#OR122`8:5YCW* 219 M;OVU3B9>"A)3!E$K649I81@K<B(3<S];!6\%R9?E]89#BE`,)_`@X:2QZ@): 220 M"(Y-I:=3MMNOM69F1,(KIU0X$,A$8E!.3R:82;1?5U=ZS@6>VR)%J&(`$=IC 221 M7DBB-Q=YC[?5F-XB.R8F@+.,4^B8E9G0@.QY:$)VQZ](=D(+0XDW3;3KZWTH 222 MT:D,.D.[DGLN\V4G$4R><X1?<`#;8@K/JN1@B9DC0RP=QB`4R**\%:H0[8$^ 223 M"N"I8'#1(UJJ-J$\*(%I%,4L0GV7?00^:=FZOB)<]XKCB3F.`+&O.*L&<U2R 224 MIN"RAMJ0'8-/M#2L%O)R"L=1M&*BI)J43?9!I42V'YEF)AD)DD$7"UA0]THB 225 M7\8HUDX.'=*V,<JK@QF4R0S*RN-+'(&5.4VUI887T`H&4H#[4")7Q1O.A&G$ 226 M@3@H5Z]P&1>]\A0$9&F]\GS08:3(!@$LFLS%]8QE(HHU&V4-T4F(6D8'95N# 227 MI.'<$Z=#BII%1`+@@`V,0J^]0"@/232,.@F1C>PE43$R1)U40\8DP,?0]%D= 228 M1+C7[T496*2K960^XRVUA<E76)>3U>;0'.:*]<849?*GFD`P"TU`_)0(R`:0 229 MM"6X=28/392B1+-*SSU<Z9-TQZ(YQ/T+=2,\S\Q$3B28ELI%!2$-Y2A+D,G. 230 MC9S'>572`IG+#.4H5CL[BB",2(/HG%=-O0[=B.4F`IDN9H619$IJ97+5*"I& 231 MI%1>Y1I0'++I-21D7<4T(PZ2(7,S(55;$\NE5;%-RF7*L2^-0V09`=70&:$$ 232 M,2N'J4:(#7.J99`P(*,BU"(]I8*E=O2>BEW)GC8P('&RM*E'G%O";EP,)4$L 233 MH(^ZJT>X\MB)22;D9+1B##(W*_FE1D$4V*])U8*W*5G#=>1]33((JZ:F9QEU 234 MKKUB2K)F3@9\Q&@!&Q_VB#%,2XKR8GJ\S&K1+2(E+HZKNY[$!WUV8O?"'B$M 235 MZ!8B(XGMXE4]?]S)\"X\%S";FN1WA=`)&2;LIPO[E$Q%-2T)B6F)*YPJ"@=> 236 M('N>_$2JR9JH:!LD$KE]J6.;:*XD-;E/"G6C1#]Y"-$T'0G&+E6@O`*>[^`_ 237 MRBZ53$?*'E*XX0-O8J<1V_F5NYFIR#M]F:]Z_!EF2F!@X?HCP9%J<ND[@C7) 238 MP%<&[74-+C^HR78IX;GK.^:+VU5GJB.4I(`K.Z;@,B8P1J&UXGJRZF8C<T=9 239 MP3J_=25QFIK4=$RX;704*W8*GJ4`-8F`#82U4$MFQ-EP`.ZUM62CEI02<IEQ 240 M4"2Z6"@))/.6PCS)Q>U.ME=YPYZZ:TD8')P'"E(1VT1FZ=+BHCF:2ME.I,.. 241 M)@.&B^:DWJ3!4WA9N!DBA(DQZIO4FU4.*,P5.QOFFWL5.>.E6&JH[!+<S(!G 242 M9,E.5Y,(HE"-MF2;$7:;G)7SK0%(CB(/YJ>JG8MG+8C=9IH2:AL1V*D1U`1X 243 M(H^I)@TJ:CE8:?7\NIY(\].YER7.COSQ\>/;GWX4D/K^X\>?CJ_)I9J?GB__ 244 M?==<?_-TR]^O\P_.N?R#AZ*Y]N?_@Q\?9Z+5X8=9_J/\=_]D^H&6S[>/L>.W 245 MR5"*I#*<#O7X24R(-S$.OLF_'S_ABP07;EYRL\K-+#<;85_RV_AM?7F7@G+7 246 M7R^YVUZ^R9T.@C=_NJR"PE_6>]D_107MY9UU,VC-!Z:4=+DS>-R&W6CLPCL[ 247 M,?;MJEU@#>4^KJ@`57<ID'?AEQ)P?[#B;ZRE$\;[W:;]8S4XS.^*$M0SI*0J 248 MFI2[7>X.UH%#EN)6UP[Z.!5$D[2D61\QK/!IQ"/5^EA?/AA^DMN-E7^S>N"W 249 MTWJ:M5"LGNKOVJR!IO7\E'W0FC6`SK=[1=3J(3=8/3M:="R1*:<%W?I9.988 250 MA&PES3K:I*.X5^3>9"\+AU(J:79[6">K=E)K+U9[TSI^LK-8K*19+_O-[V:Y 251 MNZSV<2]V9UK'JXXPOMEG)<-ZWMASO=>MSQT"H/6RUF]60[\]K,YB3];C=\-Z 252 M"SG,VPAN!PFKX=RKYQ4DM4N->_&((/+=I+_WY;+Y#:]VK!E(669G.>%-AWWP 253 MT6EKIOE/OV'E?;]@>BPED\G+;F8=6;8_&B6@L]X52Z:Z.'[#^N>0ZSDM*D&V 254 MC#C+.'%-[V;MFBZ76]&[WK="*9Q>A]S-NGYL5543S&9K"':HW?;%EETTFQ5D 255 MZS.7D``ZETSO=;5)ODRD?&5E7>DB*MU*BG5=%Q%*EI5D?P$NH_O<HNCK*U,< 256 M;2GE8WV5D,AE)<4Z;&LIY,I7$M?-35_$*IJQ:MCT7A>4]T,&#Y9-^_YP*,CC 257 MCRJ6\,C<'P(3OI5W9*,\WN3/_)X_9#=^PVWY,\-.O?*CL`@E"&\_,G[ZCM(' 258 M?OG^4;0D/01<?K.GTJ/(SS[*%ZW_+@_]W=='M"$/RN5NA[/V\';03#1RU]]: 259 M0ZPZ6SO:JK;C[WR$ZUJ/76SJX4*V-65J!$BGCOWKL>.<L^7W<PADN45-OL&H 260 M*AYQ;^][%3]>49`/L;//B[)L/&V!;)MQ\+W%M%B0='UNK6#B=<N\Z]N)[H00 261 MH#*BX-P+957.*#CV0NP/<=^7<;UG;=0W$]\*V[W5*+`U:VL0?)I#1YB<6N6^ 262 MF_A^V&]E%YS;(<)$47!LAUA_O.\[A^][S1LN+\_[7K&F7?7[1G8<SW1\P3'A 263 M"XY_.02'Z$<U*.?4H8^)T5[<<M,U(A71=0A0"6V3]6X(E<F)[A"NX4+'N$Q1 264 MO_"LBGD(5'74LWJ-/:6?\J*[RG2T`QQ_B%8Q]3W@2=Z"U4)2ZHS]9AQ2HMO- 265 M4ODX1$QE;\"L'H>`U9"9E0_YZB$Q^8KMQU0=)G_+5@EAX>NW8V6HJ%2'-7D+ 266 M'#X\=,B5"QR^Q71(50WI81WU6!,J._.0*!<U1-"/[<0%K;+!?`CR]_KY0-G] 267 M^Q.(OM//E0IUOC-_LU.A?AOO]0.^,='"T()=+K,6OT%--[F&`^(-3U:YT-S/ 268 M1^.C11XM\U'?^&3ADZU*Q9F/%CQ:4'7ATX5/SP<K*W+9J'_7H_-Y*FXJJT=[ 269 M8P59-709TD1F%9E5Y$O:*+K7H!(T46TOZ*QCK<=@%:AA//H;G_ZH6MBD`=VJ 270 M\'26VFU+ZK8A3/R<OX8^?PP\[MU-4AL>EJ:^V&!6WXQT-/O>C7P\T8+<.H94 271 M.BPWCF'57L>XZLH^1I8KU?<N'UU=?UIY/@8Y:_5E#S0/7+,^Z4B#B?,X!IIG 272 MMC^-<].*]T!KK7D/-1&=O1;[,_`2>0\W?I`?QV@K/#D&'!W3K5Z'(?MF_RWZ 273 MG4PZ,>0NZP<VQH=;;5]6)8>HTP-(\&WK2>(U*TBVK%4%EN/VUH#W[+?-^)2; 274 M4ZK/3_?S5GFF2G?AJ?8P3]T;6J&!5;?)_F`4J:W=0\'=\E'TI.+L8(U`#JQM 275 MWG.[COOEU'7WF5<Z"O.I\>3=2MF%I]:[)3M1;X.+K?O$-&GI*"U/*A#^U'*4 276 MYB=-F.8N,DTMF^*]^!@;`K&V)I*UCY)ZZD^X?=-16)ZT:#'B]9.E8M;A4:5M 277 M00A:^]UV*/NB6V8>\RBLIV(&F^-\TA5_T]?-UU'F@`@V8YU>4H^-H=J+];/0 278 MMP<U(FNM1YF#HVYF[U'D1@W.P+/;#G?<S!7KJ,^CS+><QC=[+G/XU/EB,2VG 279 MT2.6Z#T*'"FY^=OO?CSUL]73312/(K=[!D71>W\@K\[^'05N]^")LO?*XT/( 280 M"1]"=GO:O4R5,A;8J]B2&@0DU"9<88*-YJ5WGD!G#AURK(U%($:X=Z#*O/6' 281 MBS8._PJ]X<+&3^'UY$@P8":(7%M9A&3V7D-/E!#),B[#@BXV.*L@](,^+&NK 282 MGC@P;_%#_J*KA!J"5ZR*+09(WG/,5\+SP;/'\K'Z2T@4WBW6?@MAPAE("@=M 283 MUK6WNN*UTGD?'"Y?Z#FD"M\%.U9Y#9'JUXPU[K*1O6856%"A'`Q2GYJ/8X8K 284 MPK6I2MSLCBA=D0Y;YC.<%'B%"9R\3HB8K8Y^;]41I>O-H?M%_-XUYE1-G!T] 285 MNO8;.I9QWQ7?W!/MJZC:[<-,.;[5G?KWQ]%\AQ\-81!?$#@4PAW=FA7H*(AQ 286 MV&'X9"@@R(80#0XH@%%8XN"-Q\[HYJ^81#=^@R/$&HUV?'$@0?"IP(Y`0:#D 287 M1_WBO7P+^%*?G`1/O?VNLT]=#;QU]C8_]79W]ONNEN^ZFI^[6ME5'_O#7,2W 288 MNAW/X).*RHL2'3!MI7SHP0'%6-%2,EZV%X)?7;5\`"T*(W+Q<)WN1?UE^RA2 289 MOO<TUUFTW13I,@?V+CU,2QY*.+VLO6P_!CX*FUL]B[8[`Y^,NM99=GHT%K]D 290 M.([BPY<&53>C1=LR426SGTHY2[8K)#%A:9R%IS<$+]GF]51^.$6H'H:==*S% 291 MA]L-*1W^S0CN'1I52/@,S?&6OJTJ]./Y%&N6L_3TJ\@(C5;267QZ5_")JV:' 292 M(EAQ.%DX2&.TL^47<SE2^][+B#>US5G[)+MO+D]%IY,FZ3%-[2P_?340S#J? 293 MGS]<-MCH5GUZVH&)Z>_>UU'Z8BY7ZO"=<&`87KW-,L;MVL.0OG,'<9!'>WKP 294 M]`K)(/>Z129]YQOB=_GF6>KXIMGN-NI3W>'9Y28!&L_9M1?S4'.G0!0\GKU> 295 MSF`,OTZ2UEEX>J:8&F]'$UCQZ9\241[]N3BB,[K9'U/DP;7EF]*MKGX69I\% 296 MW9K&:F>_4%A\?PH[RWQ2X;B72:I.FM>2,S*$`SSK2$?IZ55#&G^/"5XO3R$B 297 MF:#6TMFDN[<UJ@=`?C9;?'ITW^07S79I]OF9NI.;2;<];`F=6K*AFR7H.&H' 298 MJ'@^3>E'V1FEP@EZ(2_SY3E2Q5-#0T%Y(-(!_907C1%T;_&R-^'7QLOY:/%9 299 MTQC1JD=9]DE;BMMV$0K0'2K#M7RBL;]X2(1?>._S*#EC98E\^WJ4GO$R?*&R 300 MQL!9B#00Y+J-/3@>*353XB<]J;,<I=6G<BH$:GXD[S9$.9=+S>6S3]FG4I[_ 301 MV$7]Y0S:015Z9HV6G0$\')@^QU%X1O%PIH3GPNZ(K5LQLO[\7-;M95_V(O@T 302 MRSK*JL_CXCS6LS_%YQ&O(1.I)=A*([:$C[OXH#5]O8#+./AQC>LHG0=FYL== 303 M<\M'\3C`,SXJ5-=1&#!:)ZO5<98VGZQ%M?C4:O69XFN4NR_UJB_B2#SAN\5' 304 MT3K0>.(A`OU\<AZ@'-]*#MGQN+1A<W[4Z*RWVVPLSD;TU"US3@9[*JO*RHKU 305 M-)!]XE%L\RQ?!\#'M\]"6"W`'2A_D?)W':7#AG:]F+=Y%W4?5_9(!M;*LO?( 306 M;01\HNHH<WMPZNB4\[EI@[,4]=2CR+WT;*V[YO"VW,#`EQ*C9-FK+2KK_82' 307 M$5C5D2'7#Y?VN,),Q_D&90-:VS;VS<"JZ::@^4"QNJ/>6Z>SW^"KH5">_]"2 308 MWM_X4Q6@5F.X5;>Q,K5%!ZPEH!P2!@*J!JI,RDO4DHTF5W1=0>H'O[^,3W8? 309 MT-1@HB`?I,<>F#00(KER-*,-D#HXE#FM2*E@P0:%\[[L9<O+]AKBI.Z>RPDR 310 M`_`5?H8X'CE]AG@W63K7QI<.\V2><9";>E$"WN'3F.9K45S)MG&([I@GF`SH 311 M)@HXI2<<&:@-.:;NY?WI]"K*Q'4<+Q8`TK':!%_V&B_FN0F,UN^:C;VQ86`6 312 M(/Y23U@8`*S`@?6$"0-\)=!9ZC@!H2.OQ9,5#C#HH&O@XS_MQ5Q%@;;XS>=@ 313 M1H5L(A:[G4BG>Q*R@I.&#M07,"K?1CH]V@&A^.6=<<CDEL5=;?:QL0X\7\ 314 MW3M(&:"I.LEGN5'AH`&VR@G@`A*56\'YTQN]!1Y*`)OS0&Z.A6#(XJOV&[4Y 315 M$*+3;;8-V!P"M:`!K1/]!%_"H)IU%WZO-=PC=GI)@<ROU0^`%N`&9\&<X,QQ 316 M#?3KNDZ7O(.:>:]>4\CDC-&=&Y,YCJDWYY>,L!=TFR?S^`!5@5,`R'([$%6` 317 ME,3C<@\TY0!E4?>=0,K1"8=W.5\M+(/U-,#=@+]I-9\0!TD!/^#FJB=`"N@! 318 M[JE*E\,CAQU8WLXX<L6FFSB:.9V"@3;Z_8`WWK:L+*<=.3ZW?3N?@"8`!#Y6 319 MBN.E-YIQ^,#!FF=PV<'#N+GWW1%RM]>6,?38L,-CW:,CP.Q[D>W//NH.0AP- 320 MS/N)(&*OIQ<U"$J.3&>\R')OH<-2W9Q/2IQ#P6G:]BAR&+C8M[USCR,H-[X_ 321 M->P[9R(R_`J]>?.=4<!>U9GW;;SW#]P8.5DHN<L=1J5Y+UMDNG]8$I8\:/'I 322 M;O%IJ?JMT:_7&7/,%V/,X[U)S:MK?+G+%6N=U>++3>[`RS>ZQ9>KW&#,VB/, 323 M16X@*-D?K#_+I70^:[0Y@N<E:<390KVY>,#9(^CY6A9TAF>R(0M)6JSFF>P: 324 M@,]L0J[US*G2&N/2'OD5:'YI9-J#OOA"P++H=$1]Q\B/9N'6HO'6GM%Z5:\F 325 M,Y@P%1PQN3$9Y9Z/M0/!D/S^F&\[$#RO4J7Q,Q*<T'119RB8ZM)JI3]T.AT+ 326 MYS]%%!@R^%AO$0;&3^ICJFL8%4CU!?[2B6/"^WC@/.MOVE0KTGJZ\#!^R>*% 327 M)S_F%Q6G>]LA>96F,R;OTG0&Y2E-[8S*JS#)J,B=0YBPO3U"F-(\1`E!WG&$ 328 MZ"E-Y2D\3WD:H@_/`#UEJFA+=8N5K+A^L@@X"X=<@=W_)%=I]72$[*O.E'2Q 329 MGHYOGE"FC95#P/#)6AL+)6Y<E,&3N=%R?YS2A62.=,H6)M%:"^G2EK++%IG: 330 MEPUQ-KG%BY9#O)"%Y904DR_&$0[Y(AUJ2UA&I6W+%UC;JDY4O#K*RY8NXBI5 331 M)10QLENI))1"DAAK<`G3TFHBYAKN"">.>I+[1WM*#JC_H"S[KZ39__CO4P-& 332 M?WIZ\.G_\?ZV/U3][>>__I-4],/KSV\__/K^UU_>[$[YX5__UZ_O/_SOUY]? 333 M_^GMU[>??XE*)BMYO+_^\U_>_N</O_Y5^^(?MOYEM[W.MN>UTQ)F^LVTA-][ 334 MFS](2OC=1Z*I_.>_^:?'J,_ZFPD)L_UF0L(\4AGF^$Q(^$Q(^$Q(..R$OR$A 335 M8<YC!:W/A(27SX2$_^<)">O:,KC2']H82N?/`!7WI!%YH`&+QK\16=PM%@_^ 336 M?U=(@#0!/OJ6-9M`?U+>/I2M+Q#H_:-\L8HUHX'U9JM3?\4J+<&!F0=6W7UZ 337 M;7>KR=\F'V]6/E,-/E,-_L94@U4/P6F?J0:?J08A._\W4PW6@9_7^$/-6Q\= 338 MU'AD"@SRV>'/:&_*CR?E?QH-O<Q'?S.*>Z8?QJQ=Y68MY95K5L!X4ZHZ<@S$ 339 M[E5#53,9BMG$U*WI(I5\/.:;LM"90M#E";4X"]HI9M;2LV,&M&X,ZXW,<TT4 340 M$'.>)B5<2$T>HH%ZG_#6F!6L"0/R,QB.&3X0-3G12%7K]8L.A[V3C4B-`5%6 341 MF8V(+K,]*'V/B;+*?$A(W_<AT<5UC$H]!D7W+QT5)>C[P)#ROT=&E]@Q..?8 342 MY#TV2NJ/H6G'R.1C9+1=&QK;=6-XCM%QF3K0Y5J?E/Y/2O\GI?^3TO_3'U'Z 343 M12>%SLA7^J3T?U+Z_[^G].<K'VNB_"%.&TFV_T*V?*HYSX=NW3A@+M,4+HI/ 344 M1`H?33GOQ#Y&D.?CV-Z)V$IK@K+(>->(4GTC,3YJRV31W^5W_3&`PUH#=``0 345 MT8Z\H87ZQ7M$M&0]RD=O@):\-YI?$#V*WBA68F_NNR<Y>F'@9'R8V\OZ$7WP 346 M\:O'6+9/6OXG+?_EDY;_2<L_"S]I^5'Z2<O_I.5_TO(_:?F?M/R?_LO1\O/5 347 M#R@\/FGYG[3\3UK^)RW_DY;_2<O_I.4'"/G/2,O/USQV[O6'#D%UW"%:V1'Q 348 M',IR5HX]PY7]XY8U>@N7W^H:J&QDR8"<K\'*#L\<&>O+H[0E:;"RXF)Z`+?A 349 MRIC^Q5C89)\C6LF0)&GNC%<B(`DJO88K&9,<W8*5#7X\]E(CEOVC&N<\*2-8 350 M*>P(7S),J51YC6`61G>7!3$KPKO5HI@-/^60O#7C?RL7W4*:)+&GZTU#FB3% 351 M,]Q)RK)R[S7@"7;TRA;S!`5;^?W*]#8^>WK[]C&4!K_@I?S`Y@,6O#*>E;?? 352 MI`;PJC7LW92]K7VZWL"$E@X4,)JKM%S)C79G+"9B:BBZ<S>PZ67\5J>6C'.? 353 MW#3/R3UGEE1QF]D;!]:G]D8*_-/D[IDUZK=/[8T,\YA:LMF/R2UES^VM[7F] 354 MD>IM\VK<\9A74M1C6O&MO[3G%5&>=LSLGE3E=]NLDCKNDZI,])A4,MZ/.06[ 355 M_IC5LB=5";,VJS?2SVU6;W19^[R2,K^GM>Q9M4YQ6I6NKE-+=D[,;DRL+?!T 356 =_9D,[%]^??WU7W[YFO[T]__MR[\!,S`GJ7K0```` 125 MV;'E1K:;GZ_0P(/35=HVWP\8M[_!`X\%%,IU^AB%>]MHR?#O.]:*!UGGJH7V 126 MA6$8=@F05)G<23+)8'!%Q`IFK79_')&'-I3WCB6)2\0[7&F*@3?M/KS41VO* 127 MY0XE0\/:L!&4Y=YYVI_T-8?>%/US5!-#H*XVI575&/"QI*-G!EP!\<AX%M@T 128 M76O*TM6HCMRNH=$!^<=1Z5@D_2C-M9V_.7+8/P6K(CRXY*RUT5QK=@UHX7:J 129 MX5:#:AP[AAN7:<_I:A/,-=.:H_88;I%^&9S8HQ`6G"VTYC0_F/S9^F4IF+<L 130 M3(66VS$5M@9C8%"<%0QUV*^'$F(VU97FG+H/\$<Q<E22[6@RP8*(J+J_;9OK 131 M#'[,<8Q*<`!#$J`S5^D[=.;6"#3O]X-X95'D')XIRD6]-.9RMLP"W^6XL5<X 132 M/J$95W;=!^AH/&E(1=N7MZWD&KL`HH^YK7"VP5=B?W:U3SWX+NCV]K:-,'\@ 133 M&TD5#&A!XS87$,:_W&UE-7^J8G,:YF^;+7`.M6'Y8"]4,-],:=9L/X)_Y'*V 134 MB0RMVYF]AF\X<M&46P[MF6>$-J`.82T>G2G+;!Y_VTQKNF8=^_C;:NX!0.2J 135 MF5:#VB3E82,&Z,.MR:.7+SOGY!9#[WIO''R#I5["JRE78X_E?H&62(\`C-H1 136 M-AEPP"87`M@/+4R&FA1Y729#N?PCY7=9RE]![YETIW7"YC0$6C^P-0M:%2T! 137 M1"U[,)`R:*'R$[AK7PC-^1.XY$3FX;&;`@L)AS?ALBP__@+NJ-5@&,A8=@'$ 138 M$&3Y`2QBE,,;59M"])[H*A)<O050-^T%O%$R\(3KL$RT#;%<$-,K@-4%T'_3 139 M>'B4VAO>)*,WS[O1'A(S0$8WP7:H`MTA40)M8+J,0M\A;0)1SC`_9H9S\;': 140 MDE_4ONAZG#0:9#E+$V(.;>#ZW?@:-([R8!<J!D*P)4:JPWL'JE5E'S"8I25Z 141 M#F7[I?\2Y+47,:J6NS<?>\$`*X,FTN@%[R!;0/@WF[[&Q(-X#3CX1'N/:8X] 142 M6/")0YDSAD&TEAA9?>WD=J&H:0ZER"W:V'W3AI-MPHPH48JTTO`*0U[H>8J0 143 MN(&X%PI!XT.Q_//R$$QKYF&3M8TQSIP"F;(AXU-:=N.P++[;WNPZK".DOE`, 144 MQA<3-V@BD<"4MHD70NKP%`IFV6BT"9"$MU6V;1,OTOO@S935"F<F\E0P\@)? 145 M7<!$3@K=G86C@G@QW+ZE;9,P$5=./ID<J`/2#KJ*RQ=(UQ3B)(,@/U@RD"^D 146 MNVR3,)",U"M+$:.D2</J68:`"2AJ7&L33MDIVXA,;N;K0[ZD\SIUJ0\*N528 147 M.37J=(6$B1)3"2RH8HV)]^Q-W=LZ?F(\TW4JJ^<%FRIZL<I8)F&R'6..Z(&F 148 M@SQS^D=:+F.CN_-UT[P5<T-F9(WBSF/1ED67<TLJQ6O3=5N/]SBC#/:UX%:T 149 MTT1/2E='&R9EHK.+2A+>%4Z*Q\X4]$T_?F$W0?GD2D@8[96X6A?&J@YJC#K5 150 MQ9X$P+]`+^QF/O0^&D=S+71@)!$>H.-R>Y#+Y=@L2SW(2)P*C%.067!A'-&_ 151 MV3$.7-E&6I%ZCPD*2V`=^[C061:VH:B#8;:AK-6#*>'@&I=#5$38=C6Y:%,) 152 M,$"_;5S^4,#]RR%:N#O8WUL3?>@0[>'5@ODW#D[6`**[Q8EY[+;HZH!&/#`B 153 M?&$:5CP.T:5Y2EDY,I=#5+IP1Q4G\L/"(5H43Y%)W:YH/<R6"^=@_DZ\/GD. 154 MF.P4T3OX0\.7##0CNTEQE#/J]MN"3P,/-,3HUF47BJ2VB-:/72-:WVZ,4U(^ 155 M(*(28O3PB?9:S#"$<R":*LQFB/Y!/*9YVY5.J\>A8*W.<L7LJRB:RRLJZ"6% 156 M82AB:9EM",E&!R$!95PA>[%C6[A%90Z;HQP1@<LVK&L>VW#@Q`I%.?#*&[U2 157 M;/X+YZS9+O-0-J'C&:V6'5#2OJS#TL/:IRM@NGE8C*V-NZD?WZCL7SYD`FZZ 158 M(2/@6TV;A#"$V"!+;#B2ZC`16[(`R%2+IU^PZ/*D5B8:?!6\X:BL*@LBG&\R 159 M#SC2Q(W/HLQ3_&KVL(;HEBOE\MC)5C2&&Y\[AQ\OA$ELRGHL?[GJR^:7KKNF 160 M>9$8^!78MV!\<YC9,#RWA]SE8EIVYO.)`,.>S+U>1J<(M+FQY:)K^`.FZ5)W 161 MEEN=!?@SS$[9/O)QUEEFWX"#:-^&9SL&`)QWM9G5#G-3"?B%1\SL:*D],Z<F 162 M+$]X^+I;GF)\JU$,I][*MUH>)<53B/;F<-A-G2`HZUGZ1P[5"#<:XOS;`TYT 163 MYFWWZY5UWDES#CYX[)8%]G&1S,K-S`8)0Q\.F75,8UZFXGJY6@:P_!F/P*KL 164 M\U;*\H8E6%2B&*JQJ,1^"Y<'=._Q."%"D=?A>EA^"K7RBL@?25.KW<9GCX@3 165 M+JK[Z^"2B*<0;]PM%`MRL;HK%LC!9NJ%QJ_J!\6\(\)!?H?SR:"9[=Y2UI2I 166 MY5%.X`V!JF'+"+I85IC=E\VC7^XZ@?,I=#GV?.>2053F\MMBW%Q:622@AC.Q 167 M7!LNLDI3]]LI'WH-)KK=1"KF>9E2WI9J!8>%+M((5<7$)N2KIC`[C;!,O1T: 168 M2#1P6;[);(Y/<JM3J6?DU15_%;J?8D:ACNN,<+0LMFYW@Z^"N3T;)K-RV@QU 169 MO)@`C&S<U2_#,^]P0N,J=0])M^YL6)]%:H+@*W80$<V_T4'V&A_5<;U"(?7O 170 MY-H(+(7-(CN@&C5BFR'@,AS?`W?01`#,%Q.AB0V!':2Z_2CKAW;+GD"L(CWR 171 M>"(R![:O('`(JD:@ICP0AWN1GRKA`U:/K"2I?`^/2H&,D;K!>E$CL*!EW9!( 172 M41`2<X-,K<:2V+?,F-F>-#TV0V;$]#7M10-;UB6:WXBYE3:J87H1;MKHLAP1 173 M]I(UU('H&6TB)494-?HW9D?W5Y7J'BVI32DCM]/N)+08V414G4#Q3N.()F,O 174 MF49%9]RN5"!E,0M+@/G*#FZ880`S&=:YX//J!F,AFV56&N\B?6I0LGR3*4(H 175 M#V>VFAPR@&-4XX'(W!2^?TNS<'(0U=N"<!3(9U;>C-!3B]IETX**8-5T&CQ5 176 MH`?&5ZPG&`)CP:#IG\+S*3S_=N%QM70%+&HSHM$.>-M)$`D"3%]T"^CNR(MI 177 MOY*-/T!TIZ?_:$ERFY=NQ!UGSR6[+29&X$SD6[<5OME.9+94$W=$!QBBX^T< 178 M0=[>>6*&[X\=VW`W.U$N-!,9=WL*#=Z>Q:B/%VJ@.^K>V!LC0-UNI\,IZDBJ 179 M"%*4IGZ;O=?!:ZY,;,&?D\P(?0C$L13XM!?:`X;=L2=K'C?^'*/YCM_U()1@ 180 M/&6P'VWH",RK)IJ36!+O!!?P&6_81F;#=N8P:O84.;@15&]P_)\`>6.4S$(C 181 MC8SF;C^#`\U1;0-)J(?EB\OAH7@D$6_-=\-]\I?T(?"'0H;DJCG=II%[23X( 182 M\H[SB$>X^3J\:H,12)TF9,N#>*=_\M0.>P91]%WCC3K(D2I`C5G;1-S\<^<8 183 MAH:$H1XM`8JY18`S:Y1`U`#?T^&88=)/S!_I^2!SZ4,X-E$S9N"2K3%R#*0' 184 MM,>Y*$9+HR>+Z?$\+"48J\CP5V>$/I%%.9BS1?Y>:M_(7\R#MT<(R,/J:.E$ 185 M*QL#17;\BEB1$0FH^WF.0(LX4&)V"[]4DK$U;0UQ@9#2BGG?01+`V2VB*[4A 186 M7K1J]Y%T&T_!1,M!J<7E])"U7%A6W'Q>/2(V%2L_K.5*.;"(,++&4TI^'[Y+ 187 M?T@$854?A(JC=)+UC=PQ$I8J.1<AV!6+OYXWPN6TX*)<K.&G"XT=2Z@R@S." 188 MN61EFP^MDGFA2>OPI1Q(6[%3S2"SX'(O`[5RL33#K&+'=!,*QCG<W,=NEYW& 189 MQ(T'&LUN]WFL0-CM(FX!Z'FY?1A@T[=D5!LQ(X+.6;CRYV6[Y^7\24:-+?X+ 190 M;7%<&H7+?5UDFSX-1#."7+HEY<OHI3MHW`_5%`2;'=;[ZLO.8-KC.`7A(DFQ 191 M1>#,GN&A3T:3=^3A[9`@6.LB')?QGBV*"=9-LB.<.OL2K@5DN(QZ&>\YUA'+ 192 ME/D!X[VN,PJPUNL5-A9%XK'FRI!D>[((<EB?9([&)!5=_\>ANI.?*]7[Z1W\ 193 M9WM?ICN\7]E-]]F;G4Y4F$MY'*HGHX'4FSHB_VDM30`EC_A$%DFMB'V%E)J2 194 M@FH#=H?=[W?46!1ZB#>3VY"OY@[5&:9[[R?P"<`PCKT/=GXVBB&<JU/=B!?/ 195 MHE[Q/QQ"_9=_^KIG&+.=?K]PXW6<R6014?RMAVC)7^NL,04S/GF$/;YYX&*G 196 M[;\*A@4`C"C!0"SP-!6C70+F,(<(X*?.R"GH]#^M:(=./U,S*#,J&^^/\(8` 197 MP930@IV9)3TYRBE<$_KG/.M+,`P)7@%T!)R8Y.-B;'JMB'16<(H$P^Q:XJ%* 198 M6M=TI).S&O6=Y+%Z(9V"\;Z0SJBVEN5B:[YIAY_JT&H$PLP=>X%<M>*6-.(% 199 MNSO.,;*7X1Q(8$"JA%SWY$"GZXG*"H9"WP+`@`)Y<(X,>$V!<^;6,\E$&GJX 200 M4`!EVB'.-SI_:Z"<IB?(R9][1L2_(7LDA=#)Y>B^Q8M"6\WN\LB40#ET>P3* 201 M@8MP!LIIP\_3Z^=U.FTDGR&YW*D$R!$D22\*H)"LXVA'1&%%\@#`S+2`0$-T 202 M0`]@`_1I09/"$6YM!"L#EWOG@#@EZX$^^',=\F`+^K-A')F?[BAG:EX[\,[( 203 M86$(@*GKP%!XF(:QV!N=CWZJC.#.$NV0Y-#BC4@=K0%T"DQ'_;.>=#Q`F!&; 204 M5.7I-^9<Q472@]WESW5!%C+A(RX";#.K^=)01C^;89X#XG&V33Y[#G%/-[4N 205 M%[UG.\JP'O0*I%."S4>DLYP9*P)0R<E0`!2.=ISME6^@`V=O=J3#"+K^65,/ 206 M'S.@3:F'@@M=T%,@'2QXNR^O.@,?P>D\PQ-9B8!3@)VBAS#@]`)=`@9U<`A[ 207 M0$L@GV&DJ$KJBYY959B]=T4I]F$;5O*@'%6!!)/M1_5X8ROWK9`[8)KDPEKI 208 M@!SVLS&#JH0H169B6D"=W`R(R46SU`[YJX1/?XDQGZX811@RQ#9ZS"/_'(?D 209 MA4R8%0%&8)MA=%7RB_4$#/Q*C;9`.NGH'T`::D']&Y3-;K>O4"8)<3-<S$:7 210 MRXYU9/J&$>1*OJB[F/)V@ALXB6($U!FIV(]`%[H8<@5Z^4`=A,920)W:ET$= 211 MZ>F\L$ZI9[\D+:Z;[<T+/0*M(/A_>'7,=`JB%[%/\V@26<?)T`XRSJYT;QF* 212 M&4W9J7$1/^[9SFT$#AXW3:Z?;!_&CTU<F>^MYY,R@K%.O@;VAG:HNW"%['IB 213 M%=..A5D<Y@OP@-1\`(\E'=E%*\D..9OS1)TA%`<D#3VWR`,5N:J0YXLE52\. 214 M0/U7YY^3)870''Q8J=!!*'UZD?]V>)$$A'RMT@)]4,IE$,-POCSVR/0AD90A 215 M`!ANIKW)JFE,A1,5R;P'4%S68+H>$@?H)6P@LCQ$'^('9+B`L/ZBVPW]8+!Y 216 MI1&9"?P$%!=\90&\G05Z#1(A9GNAAH6C4C#"URUV)2D5!:Y"6NW@P$QVD\D3 217 M8I*S$3%VV`T0T5^4YX'D!7!<!+*0(@5O'4^'>Y%]EYUHI&5H4J#@<#0QR"9; 218 ME=XTV=6_ROI<=(8.%LO_7\@B9/5TR.$T`[XG4T@F&%::]RB[]=>VF'@I2$P9 219 M1+T6&:6-86S(B<S,_>P-O!4D7]:79QQ2A&(X@2<))YU55]!"<&PJ/9VRW7YM 220 MK3`C$EXYI<*!0"82@W)Z,L%,HOVZA])S$GANFQ2AA@%$:(]Y(9G>7.0]/N_. 221 M]!;9,3$!G&6<0L>LS(P&9,]#$[([?D6R$UJ82KSIHEU?'E.)3G72&3J4W)/, 222 MEYU%,'G.$7[!`>R;*3R[D8,E9HX,L708@U`AB_)6J$*T!_HH@*>!P46/:&W: 223 MA/*@!*91%(L(]4/V$?BD9>OZBG#="XXGYC@"Q+[@K!K,42V:@LL:6D=V##[1 224 MTK%:R,NI'$?1BIF2:E*VV`>5$ME^9)J99"1(!EVL8$$]&HE\!:/8!CET2-O& 225 M*.\!9E`A,Z@HCR]S!';A-+6>.UY`*YA(`1Y3B5P-;[@RIA$'XJ!<O<)U)GKE 226 M*0C(TGKA^:#32)$=`E@UF8OK&<M$%&LQRAJBDQ"U@@[*M@9)P[DG3H<4-8N( 227 M!,`!&YB57GN!4!Z2Z!AU$B([V4NB8F2(!JF&C$F`CZ'ILSJ(<*\_JC*P2%<K 228 MR'S&6VH+BZ^PDY/5UM0<YH;UQA1E\J>Z0#`+34#\E`C(!I"T);AU90]-U*I$ 229 MLT;//5SIBW3'JCG$XPMU(SS/S$3.))C6QD4%(0WE*$N0R<Z=G,>5&FF!S&6& 230 M<A2KG1U%$$:D073.BZ9>AV[$<A.!S(E98229DEJ9736*BA$IE5=)$XI#-KV. 231 MA*Q433/B(!DR-S-2M36Q7%H5VZ0F4XYC:QRBR`BHABX()8A9.4TU0FR84RV# 232 MA`&9#:$6Z2D5++6C]U3L2O:T@P&)DZ5-/>+<$G8C,90$L8`^&JX>X<IC)Q:9 233 MD(O1BCG)W&SDEQH%46"_)E4+WJ9D3=>1C[W((&R:FEYDU+GVJBG)5C@9\!&C 234 M!6Q\V"/F-"TIRHOI\3*K5;>(G+DXTG`]B0_ZG,3NC3U"6M`M1$82V\6+>OZX 235 MD^%=>"Y@,37)[PJA$S),V$\W]BF9BF9:$A+3,U<X510.O$#V//F)5),M4]%V 236 M2"1R^_+`-M%=26IRGQ3J1HE^\A"B93H2C%VJ0'D%/#_`?Y1=*IN.E#VD<L,' 237 MWL1.([;S"W<S4Y$/^C)?]/@SS)3`P,KU1X(CU>36=P1KDH&O`MKKGEQ^4),] 238 M*>%YZ#N6Q.UJ,-412E+`E1U3D(P)C%'HO;J>;+K9R-Q15K#.GX>2.$U-:CHF 239 MW#8ZB@T[!<]2@)I$P`;"6JDE"^)L.``W'2W9J26EA%QF'!2)+E9*`LF\M3)/ 240 M<G.[D^U5WG#DX5H2!@?G@8)4Q3:164I:7#5'4RG;F738V67`<-&=U)LU>`HO 241 M"S=#A#`Q1N.0>HO*`86Y86?#?'.O(F>\5DL-E5V"FQGPC"S9Y6H2012JT9YM 242 M,\)N4XIROC4`R5'DP?Q4M6OSK`6QVTQ30FTC`KLT@IH!3^0QU:1!1:T7*ZW= 243 M7]<3:?YP[F6-LR-_?OWY[4\_"TC]_O/[GZZOR>56/CQ?__VIN?WNZ99_O\X_ 244 M..?R#QZ*YOJ?_Q=^?)V)UJ8?9OF?Y+_G)\L/M/QX^QH[?IL,I4@JP^E0K[^( 245 M"?$FQL$W^??]%WR1(.%FDIM-;A:YV0G[LM_&;]O3=RFH#_WUEKO]Z9O<&2!X 246 M\Z?;*JC\97O4\U-4T)^^LVX&K?G`DI(A=R:/V[`;G5WXSD[,<[MI%UA#?<P4 247 M%:#J(07R+OQ2`NY/5OR-M0S">+_;M7^L!H?YI2A!/5-*FJ))N3OD[F0=.&0I 248 M;@WMH(]3131)2[KU$<,*GT8\TJR/[>F=X2>YW5GY-ZL'?CNMIUL+U>II_J[= 249 M&NA:SR_%!ZU;`^A\?S1$K5[E!JMG1ZN.)3+EM&!8/QO'$H-0K*1;1[MT%/>J 250 MW%OL9>502B7=;D_K9--.:NW5:N]:QR]V%HN5=.OE>/:[1>YNJWT^JMU9UO&F 251 M(XQO]EG)M)YW]ESO#>OS@`!HO:SUF]4PGE^MSFI/MNMWTWH+.2S'".X7":OC 252 MW*N/*TAJEQK/XA%!Y+M)?Q_;9?,;7NU:,Y"RPLYRPKL.^^2CR]9,]Y]^P\K[ 253 M<<&,6$HFD\EN%AU9MC\[)6"PWAU+IKDX?L/ZYY#K.2TJ0;:,.,LX<4WO%NV: 254 M+I?GJG>];Y52N+P.N5MT_=BJ:B:8W=80[%"[[8NMN&AV*RC69RXA`70NF=[K 255 M9I.<3*1\915=Z2(JPTJJ=5T7$4JVE11_`2ZCQSJBZ.NK4!QM*95K?=60R&TE 256 MU3IL:RGDRE<2U\VSOHA5M&+5L.FS+BCOEPQ>+)O^X^%0D,>?52SAD6%5KP(5 257 MOM7OA`+HR.N;7)?OY?U9R]]0+I?\`>3AM?('4HXA?2WX_7<4LS;\_/M[M5,D 258 M\JO@S6_O15&W/"H_?J]?K#UY]#]\?8WFY%&YO)K#`+QZ8XBL1U,/_:TU%:_A 259 M3_$EI!T?ARN$UT?L;$L/'++MJE!+0&)U/EZN7>B>0;]?0DCK<]3DFXZJYQGW 260 MSE[8\.,=!>421?OD*,OFAVV1;3,V?K:='HN4[M"C*4SDG@OO^A:CNR.$JLXH 261 MN/='6:DK"J[]$7M&W/>EW1Y%&_4-QK?'_N@M"FP=V[H$Q^;2&R:[5KGO,+Y' 262 MCN=Z"NXM$J&C*+BV2*Q)WO?=Q/?"[@W7IX][8;6F?3OPS>TZLNGZJF/&5QW_ 263 M<@D.$9%J5<ZIPR$3H[/@Y:9K22JG=`E0#0U4]&X(E<F)[AJN]4+ON$Q1Y_#\ 264 MBG4)5',DM$>+?6;<\J([S7($!&Q_B58UE3[A73Z"U4-2VHH]:%Y2HEO05OFX 265 M1$QE;\+4GI>`M9"972[Y&B$Q)<669.H/DW]DJX:P\/7[M3)45)I#G7($#A\C 266 MNN3*!0[?9[JDJH7TL(YVK0F5G75)E(L:HNK7%N."UMA@N03Y1YU](>_QXZE$ 267 M/^CL1HVZOC.G<U"A?IO?VSO\9:*+H06'7*HZ?WV#KNYR#:?$&YYL<J'YH*^= 268 MCU9YM*[7]L8G*Y_L32HN?+3BT8JJ*Y^N?'J]LK(JEYWZ=[\./D_%367UVM]8 269 M05$-7:<T45A%814E21M5]QY4@B::[06#=>S].ED%:IBOXXU/OS<M[-*`;EUX 270 MNDCMMB\-VQ`6?LY?<UN;>-R[FZ4V/"Q-?;'!;+X9Z6B.LQOY>*(%N74-J718 271 M;ES#JKV.<=65?8TL5ZKO73ZZNOZT\G(-<M'JZQEH'L)F?=*1!COG]1IHGN/^ 272 M89R[5GP&6FLM9Z@?L:OK4`.7;]W7=;CQ@_)ZC;8BA6O`SUZOPU!\L_\6_<XF 273 MG1ARE_4++^-CKK8OJY)#).H5Z/#MZ$EB."O(MJQ5!=;K]M&`C^*WS2"5FTNJ 274 M+Q_NEZ/R3)6>PEOM89Z&-[1#`ZMND_W!:%-'NX>">RY7T0<59X=M!')@;>M1 275 M>KKNUUO7/5;9^2HLM\:3=ZOU%-Y:[SG;*7L'7!S=)^9*SU=I_:`"X6.M5VGY 276 MH`GS.D6FJ653?%0?8T,@UM9"`O=5TF[]"5=PO@KK!RU:C8S]P7HQB_&JTK8@ 277 M!++];K^4?=4ML\QU%;9;,8/A<3_IBK_KZY9TE3D@@AW9EI>T:V-H]F+C+O3M 278 M00W+UMI5YN!HF"E\%;FA@W/Q[+;#'3=]Q6(:ZRKS+:?SS3Z6.7P:?+&8EML0 279 M$NOT$06.E-PD'@\_LOJC)31,%*\BMX4F1=%[?R&OP?Y=!6X+X8EZ]LKKX\@9 280 M'T=V&]L]3XTR%MBKVI*:!"34)EQA@HU6TCL?0&<)'7*MC4T@1KAWH<IR](>+ 281 M-@X$"[WAPL;/XXWL2#!@)LA=1UF$9([10D_4$,DZDV%!%QN<7Q#Z01^6M=5N 282 M'%B.^">55""\&K5L41`R3T.>:KX0WA>63E6OTU)`KO%FN_AS#A7"2%@S;K 283 MVEM=\5KI>DP.ER_T$E*%;X5=J[R%2(VT8HV[;!2O6046]"@'@]2GYO=8X9YP 284 M;:H2MX8C2E>DTY;Y"L<%7F$!)^\;(A:K8SQZ<T3I>G/J?A&_=XVY5!,71X^N 285 M_::.9=QWQ;?.1/LJ:G;[,E.N[W?G\>,1-3_@1P&%B@ZPK]="[%")>+)!(D<[ 286 M*9"'H*^B>*`80*P&!PP>UE=';GQRZ=9OB&3HQF]PQ'"GVNU$G808@(_O[8OU 287 M*QP#VK,#Q:QS`;/J@5GS[E\)C*4]/,#).UE?3Q>O[@44,A_&4.!BO0R8\QYG 288 M4%[?[,[X9K=C&'Q:4?E1LNZ7K8YW/4"@&CM:2N;3\3SPZZN6%Z!%83AN'K(S 289 MO&@\';]$+H^1U[Z+CFLB)W-DG]++G.3AA,O+^M/Q7>#CL*6WN^BX,/#IJ+3O 290 MLMN+L?E%PWD57SXUJ+<5+=HVB2J9!57K77+<'YF)2_,NO#T@>,F^TH?RRQ%" 291 ME3#MQ&,MOMQO2.WP;T=PO]#H0L;G:*ZW]*U4X1[/J=BKWJ6W+T5&:/::[^+; 292 MHX)/774[',&*P['"09JSWRT_F>N1&O=19[RI;<C:)]EQ2_U0=#MFLA[7U._R 293 MVS\#P6SKX_.7FP:;VVX?GG8P8CI[C'V5/IGKE7K[)!X8;E>OLXQQ3V<8\@\N 294 M(`[R[!\>O#U!,LBC'9')/_B#^'V^=9<ZINFVH\WVH>[P\')C`)WG[MJ3>:JY 295 M.R`:'L^FISLHPZ^4Y'T7WMXHILC;$056?/ND1)3G^%@<41K=X*\I\B#;]HWH 296 MN>UQ%Q:?!=V.YNYWOU!8?4\*V\K\4.'`ETEJ3I[7DCM"A(,\V\Q7Z>U)0SK_ 297 MB`G>3Q]"13)!O>>[27=S:W0/(/QNMOKTZ%[)+YN=TN+SLW3W-C/N>-4R.K5E 298 M$S?KS['3"53QG)HZKK([6H63]$)>UM/'B!5/#PT%Y0%)!_%+7C1&T#W$V]Z$ 299 M7QVO]Z/59TUC1;M=9<4G;2M6.T4H0'>H#/?VB<;^XJ$1?NE]K*ODCIEE\N[; 300 M57K'S?"ERA8#9Z'20(W[>9[!\8BIF0^_Z(F=]2IM/I5+84_WHWF/\<FYW&HB 301 MWWTJ/I7R_/LI&D]W\`ZJT#-LM.P.Y.'@]#6OPCN:A[,E/"?V1&[=<I'UY^>S 302 M'L_ZMA?!)UKV5=9\'C?GL=W]J3Z/>`V92"W!5AHQ)GSDQ0>MZ^L%1,8!D'NF 303 MJW1=.)D?>2V]7,7S`LSXN%#;5V%`9YVLWN9=VGVR-M7BAU:;SQ1?HSY\J3=] 304 M$4??&=\OOHKVA<`S#Q,8]Y/K`N+X9G+(CL>G#8_SXT9WO<-F8W,VHJ=NC7,R 305 MV%-95596K:>!YC./9%MW^;Y`/;Z!%L)J@>Y`]IO4OW253AO:_60>YE,T?%S9 306 M(QE8*RO>([<+\*FJJ\QMP*6C4^_GE@W.5M33KB+WS+.UX9K#VW*C`E],C))M 307 MK[:IK,\3'CI@55>FW+C<V#.%:8YS#NH!M+9MG)N!5?.S@N8+Q>J.^NB##GZ# 308 MKX9">0Y$SWK_X$]5@%J-X5;=QNK2%AVPUH!R2!P(J!JH,BL_44L.FMS1=06I 309 M[_P.,S[=?4%3@XF"?)`F>V'20(CDS-%T-D#JX%#FM"&U@@4'%*['MI>M3\=3 310 MB!.[1ZDWR`S`5_DYXGCD]A/BW63II(,O'>;)/.-`-_6<!+S#)S+-OZ*XDFWC 311 M,-VY;C`9T$T4<,X?<&2@-N2:NF?WE]N3*!,W<,Q8`$C':@N\V32?S%L3&&T\ 312 M-"O[8,/`+$#\M=VP,`!8A=/J`R8,\)5!:VGS!H2.O#9/6+C`H(.NB8\`]2=S 313 M#P7:XK>?@R$5LHGXZW$<W2Y)R`I.'+I07\"H\CSS[<4.",4O\+1HYG)&8JNR 314 M_J9C0,PG\W&?P&2`IN9DG^U&A8,&V"HW@`M(5)\KSJ$^Z"WP4`;87!=R<RP$ 315 M0Q9?MS^HS8$0'6VK'\#F$*@''6C?Z"=X$P;5K+OP=>WI7K#;,PIDGO:X`%J` 316 M&YP)<X,SQS70KSO=;G@'->O1O*:0R16CNPXF<QS3GIUG,L->T&V>#.0+5`5. 317 M`2`K_4)4`5(RC\V]T)0#E$W==P,I1R<<WNV\M;`,]H<!'@;\3:OYA#A("O@! 318 MUU:[`5)`#W!05;H<'CGLP/)VYI$K-MW$T<SM"`RT,1X7O/&V964Y_<CQN>W; 319 MY08T`2#PT5(<,WW0C,,'#M:Z`\H.'N:S>]P=(0][;1E#CP<[/-8].H+*OA?9 320 M_NRC[B#$T<!ZW`@B]GIZ3H.HY,ATQ8ML]Q`Z+-7-^:;&.11<IFVO(H>!FWT[ 321 M._>\`G'SQ]/#?G0@IH'@+H/0C/R-EC5Z/+\/N!$%>6<+'P^YPT@T[Q6+1@^C 322 M!^%!BTD/\PU*U6^=?KW!.&-)C"O/[UUJWD-CRD.N6.MJ%E/N<@=>OCDLIMSD 323 M!N/4'E6N<J/3&<GZBUQ*YXM&F"-@7K-&F2V\6ZH'F3UJ7M*V0#,\DQW92-)B 324 M,\_DT*![81-RK6=/U=X9B_9HKT#SI-%H#_3B2P';(M(1Z9VSO'8+L5:-L8Z" 325 MUIMZ-9G)A*G@B,F-Q<CV>MTG^`O)'Z_K[01_5ZI-&K^COQE-5W6&@K$NK3;Z 326 M0Y=3L'`.5$1^(8.O^RU"O_A)>UWJ#D8%4GV%OW3AN/`Q7W&N]3=MJE=I/2<\ 327 MC%^R>./)]_5%Q>G13QA>I>F.P[LTW8%X2E._(_$J3#(J<N<2)FQOKR%,>5VB 328 MA,#NO,+R7;W:=TB>\C1%']Y!><I4U9;:$2M9<>-F#G`6+KD"R_^#7.4]\A6F 329 M;SI3TL5V.[YY4IDV5B\!PZ=K;2S4&Y\H@S=;HY?Q>DL7DCKR+5N81&LMI$M; 330 M*BY;9&PG&V+SY2-AQ<+\*E[(QG(:BLD77/.OEWR1`G4DK*#2?N0+[&U5)RI> 331 M`^7U2!=QE:H2BAA9KE022AL!3E4UH2L$I<U$S#7<%4*<[2;YS_XA2:#]D[+M 332 MOY)N__._3A&8X\/3DT__Y^]OYX/5W_[VUW^6BGYZ^=O;3[]]_^NO;W:G_O0_ 333 M_NMOWW_Z;R]_>_GGM]_>_O9K5+)8R>OWEW_YR]M_^>FWOVI?_`/7OYZV]]WV 334 M2B<]8>7?34_X>V_S!\D)?_>1:*K\^1_^Z37JJ_UN8L+JOYN8L*Z4AC4_$Q,^ 335 M$Q,^$Q,N.^$?2$Q8ZUI!^S,QX>DS,>'_>&+"3D<&=_Y#&\/R$@`J/.4`:,#S 336 M$X@L/+T`G'_+0T!J@*4L:`:!YQR\*T-?(-#W]_K%*B:RU7J+U:F_8I6+?`%6 337 M^6S5::]0V\-J\K<IUYO5S_2"S_2"?S"]8+=+</IG>L%G>D'(SO_.]()]X><] 338 M_U#SMM<!.CQ86I,<=O@S^IMRXDGS7T8]K^MUO!FMO=`/8]:N<K.V<LDU$V"^ 339 M*3T=>05B]ZJAJMD+U6QBZM:<2!^?K^M-F>=,&QCRA%J<%>U4,VOIV3$#6C>& 340 M_4:VN28'B#E/DQ(NI"X/T4!]@)G6S`K6)`'Y&0S'`A^(FIQHI*GU^D6'P][) 341 M1J3%@"BKS$9$E]D9E''&1%EE/B2D[/N0Z.*Z1J5=@Z+[EXZ*DO)]8$CS/R.C 342 M2^P:G'MLRAD;)?+'T/1K9,HU,MJN#8WMNC$\U^BX3%WH<N]/&O\GC?^3QO]) 343 MX__ECVC\HI-"9Y24/VG\GS3^_^]I_"65:TW4/\1IP$[8W\'2UUT;E'RQ5TF8 344 MK_6U&]%]8E\W6CR"7T4I]`!X`QQWD/7;&WGP6D-1QOSK!/P2?$"T`:2&^MH7 345 M;=8`D;5\&E9`9&TK*_\T?QHG'-+F:[1^-:[X8[Z;9\MZ$7WP(6K7</5/YOTG 346 M\_[IDWG_R;R_"S^9]U'ZR;S_9-Y_,N\_F?>?S/M?_I]CWI<T+B@\/YGWG\S[ 347 M3^;])_/^DWG_R;S_9-X'"/F_D7E?TKIV[OW'/K_><,P:>=)9+(+*@&1_AXZN 348 M6X.2X_TA1FQA3%+=?&-TC4EVN>PBU1:6!)6ZY\6H)'UNN7>+U#;XY?K(%I4$ 349 M&9H/:F`2?.O<6AL,3#(N*_4L#4U6QB*E58M-(G!9Q=BTT"1(U-I;C4\.*=ZR 350 M7;WFK!'),<9BK)(QR;;RMF@EPI*CY&D1RR:E8+\GBUIV7'-\WKKQO<ML^35; 351 M"+.LG4`\UQ!F[WUJ>),49?FAQS<K?BQCFRW*"=(UKA%L[DKO?O2VT.&W;^\3 352 M!Y9+Q1N.RW<`>+S+E)I(=5Z%&0N-?.J'5E.E&A*WM7OI#23HM1#9K>`SRV!A 353 M[!K)T?I&[0TSM+[8U)/&;C/??=:?23E?'H)?,>5BS)\)-ZZX3SEIZ3[CS^3` 354 MGRF'AS@FW+C?,>&DF/N$\]#Z?B8<[N<SW?U,]3.YWC[52AZ/N29'_<PU&/%G 355 MKA'FZ==4GUE6@K=-,[GC/LM*18]9)N7]S#+0P+HFN9X)5L:LS?`S^><^P71H 356 M^_R2,W_FMYZYM4YQ<I6OKK-+>D[,;DRL+?^<_DP*]J^_O?SVWW_]FO_T'__= 357 +E_\):Y"61X/0```` 357 358 ` 358 359 end -
Tst/Long/gcdp_l.stat
reb7c6b r3b6f1b 1 1 >> tst_memory_0 :: 1 380274734:3.1.3.sw, 64 bit:spielwiese:x86_64-Linux:fifi.mathematik.uni-kl.de:3609202 1 >> tst_memory_1 :: 1 380274734:3.1.3.sw, 64 bit:spielwiese:x86_64-Linux:fifi.mathematik.uni-kl.de:23696083 1 >> tst_memory_2 :: 1 380274734:3.1.3.sw, 64 bit:spielwiese:x86_64-Linux:fifi.mathematik.uni-kl.de:24105924 1 >> tst_timer_1 :: 1 380274734:3.1.3.sw, 64 bit:spielwiese:x86_64-Linux:fifi.mathematik.uni-kl.de:361 1 >> tst_memory_0 :: 1409302516:4.0.0, 64 bit:4.0.0:x86_64-Linux:fifi.mathematik.uni-kl.de:351072 2 1 >> tst_memory_1 :: 1409302516:4.0.0, 64 bit:4.0.0:x86_64-Linux:fifi.mathematik.uni-kl.de:2369624 3 1 >> tst_memory_2 :: 1409302516:4.0.0, 64 bit:4.0.0:x86_64-Linux:fifi.mathematik.uni-kl.de:2410608 4 1 >> tst_timer_1 :: 1409302516:4.0.0, 64 bit:4.0.0:x86_64-Linux:fifi.mathematik.uni-kl.de:120 -
autogen.sh
r5ce0932 r3b6f1b 1 #! /bin/ bash1 #! /bin/sh 2 2 3 3 cd `dirname "$0"` -
configure.ac
r5ce0932 r3b6f1b 56 56 57 57 # Checks for libraries. 58 59 # This test for -lpthread etc has to come before AX_PTHREAD, 60 # because libtool tends to ignore -pthread in linking shared C++-libs 61 # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 62 # (happens with ubuntu 14.04) 63 AC_SEARCH_LIBS(sem_wait,[rt pthreads pthread],[],[ 64 AC_MSG_ERROR([sem_wait not found in rt,pthreads,pthread]) 65 ]) 66 58 67 #AC_CHECK_LIB(pthread,pthread_create) 59 68 AX_PTHREAD([], [ … … 70 79 # Set the correct PTHREAD flags and, if needed, change the compiler to one that is pthread-enabled. 71 80 CC="$PTHREAD_CC" 72 PTHREAD_LDFLAGS="$PTHREAD_CFLAGS" 81 CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 82 LDFLAGS="$LDFLAGS $PTHREAD_LDFLAGS" 73 83 74 84 AC_SUBST(PTHREAD_CFLAGS) -
factory/cfCharSets.cc
reb7c6b r3b6f1b 437 437 l= tmp.getFirst(); 438 438 439 tmp= minus(tmp, l);439 tmp= Difference (tmp, l); 440 440 441 441 select (ppi, l.length(), ppi1, ppi2); … … 444 444 445 445 if (count > 0) 446 ppi= MyUnion (ListCFList (l), ppi1);446 ppi= Union (ppi1, ListCFList (l)); 447 447 else 448 448 ppi= ListCFList(); … … 455 455 if (charset.length() > 0 && charset.getFirst().level() > 0) 456 456 { 457 result= MyUnion (result, ListCFList (charset));457 result= Union (ListCFList (charset), result); 458 458 ini= factorsOfInitials (charset); 459 459 … … 468 468 469 469 tmp2= adjoin (ini, l, qqi); 470 tmp= MyUnion (tmp, tmp2);470 tmp= Union (tmp2, tmp); 471 471 472 472 StoredFactors.FS1= CFList(); … … 616 616 { 617 617 nr_of_iteration += 1; 618 ppi= MyUnion (ListCFList (qs), ppi1);618 ppi= Union (ppi1, ListCFList (qs)); 619 619 } 620 620 … … 636 636 if (!isSubset (cs,qs)) 637 637 cs= charSetViaCharSetN (Union (qs,cs)); 638 if (! isMember (cs, pi))638 if (!find (pi, cs)) 639 639 { 640 pi= MyUnion (pi, ListCFList (cs));640 pi= Union (ListCFList (cs), pi); 641 641 if (cs.getFirst().level() > 0) 642 642 { … … 645 645 if (indexRed <= 0) //irreducible 646 646 { 647 qsi= MyUnion (qsi, ListCFList(cs));647 qsi= Union (ListCFList(cs), qsi); 648 648 if (cs.length() == highestlevel) 649 649 is= factorPSet (factorset); … … 674 674 } 675 675 is= Union (factorsOfInitials (cst), is); 676 iss= MyUnion (adjoin (is, qs, qqi), adjoinb (ts, qs, qqi, cst));676 iss= Union (adjoinb (ts, qs, qqi, cst), adjoin (is, qs, qqi)); 677 677 } 678 678 else … … 685 685 { 686 686 qhi.removeFirst(); 687 qhi= MyUnion (qhi, iss);687 qhi= Union (iss, qhi); 688 688 } 689 689 else -
factory/cfCharSetsUtil.cc
reb7c6b r3b6f1b 457 457 458 458 /* basic operations on lists */ 459 460 bool461 isMember (const CanonicalForm& f, const CFList& F)462 {463 for (CFListIterator i= F; i.hasItem(); i++)464 {465 if (i.getItem().mapinto() == f.mapinto())466 return 1;467 }468 return 0;469 }470 471 /// are list A and B the same?472 bool473 isSame (const CFList& A, const CFList& B)474 {475 if (A.length() != B.length())476 return 0;477 478 CFListIterator i;479 480 for (i= A; i.hasItem(); i++)481 {482 if (!isMember (i.getItem(), B))483 return 0;484 }485 for (i= B; i.hasItem(); i++)486 {487 if (!isMember (i.getItem(), A))488 return 0;489 }490 return 1;491 }492 493 494 /// is List cs contained in List of lists pi?495 bool496 isMember (const CFList& cs, const ListCFList& pi)497 {498 if (pi.isEmpty())499 return 0;500 501 ListCFListIterator i;502 503 for (i= pi; i.hasItem(); i++)504 {505 if (i.getItem().length() != cs.length())506 continue;507 if (isSame (cs, i.getItem()))508 return 1;509 }510 return 0;511 }512 513 459 /// is PS a subset of Cset ? 514 460 bool … … 517 463 for (CFListIterator i= PS; i.hasItem(); i++) 518 464 { 519 if (! isMember (i.getItem(), Cset))465 if (!find (Cset, i.getItem())) 520 466 return 0; 521 467 } 522 468 return 1; 523 }524 525 /// Union of two List of Lists526 ListCFList527 MyUnion (const ListCFList& a, const ListCFList& b)528 {529 if (a.isEmpty())530 return b;531 if (b.isEmpty())532 return a;533 534 ListCFList output;535 ListCFListIterator i;536 CFList elem;537 538 for (i= a; i.hasItem(); i++)539 {540 elem= i.getItem();541 if ((!elem.isEmpty()) && (!isMember (elem, output)))542 output.append(elem);543 }544 545 for (i= b; i.hasItem(); i++)546 {547 elem= i.getItem();548 if ((!elem.isEmpty()) && (!isMember (elem, output)))549 output.append(elem);550 }551 return output;552 469 } 553 470 … … 570 487 { 571 488 elem= i.getItem(); 572 if ((!elem.isEmpty()) && (! isMember (elem, b)))489 if ((!elem.isEmpty()) && (!find (b, elem))) 573 490 b.insert(elem); 574 491 } 575 }576 577 ///if list b is member of the list of lists a remove b and return the rest578 ListCFList579 minus (const ListCFList& a, const CFList& b)580 {581 ListCFList output;582 ListCFListIterator i;583 CFList elem;584 585 for (i= a; i.hasItem(); i++)586 {587 elem= i.getItem();588 if ((!elem.isEmpty()) && (!isSame (elem, b)))589 output.append (elem);590 }591 return output;592 }593 594 /// remove all elements of b from list of lists a and return the rest595 ListCFList596 minus (const ListCFList& a, const ListCFList& b)597 {598 ListCFList output= a;599 600 for (ListCFListIterator i= b; i.hasItem(); i++)601 output = minus (output, i.getItem());602 603 return output;604 492 } 605 493 … … 621 509 return iss; 622 510 623 qhi= minus(qh, qs);511 qhi= Difference (qh, qs); 624 512 length= qhi.length(); 625 513 … … 659 547 if (iscopy.isEmpty()) 660 548 return iss; 661 qhi= minus(qh, qs);549 qhi= Difference (qh, qs); 662 550 length= qhi.length(); 663 551 for (i= iscopy; i.hasItem(); i++) … … 1052 940 { 1053 941 iitem= i.getItem(); 1054 if (! isMember (iitem, mem))942 if (!find (mem, iitem)) 1055 943 { 1056 944 j= i; … … 1059 947 { 1060 948 jitem= j.getItem(); 1061 if (! isMember (jitem, mem))949 if (!find (mem, jitem)) 1062 950 { 1063 951 if (contractsub (iitem, jitem)) … … 1075 963 } 1076 964 } 1077 return minus(cs,ts);1078 } 1079 965 return Difference (cs,ts); 966 } 967 -
factory/cfCharSetsUtil.h
reb7c6b r3b6f1b 101 101 102 102 bool 103 isMember (const CFList& cs, const ListCFList& pi);104 105 bool106 103 isSubset (const CFList &PS, const CFList& Cset); 107 108 ListCFList109 minus (const ListCFList& a, const CFList& b);110 104 111 105 ListCFList … … 115 109 adjoinb (const CFList & is, const CFList & qs, const ListCFList & qh, 116 110 const CFList & cs); 117 118 ListCFList119 MyUnion (const ListCFList& a, const ListCFList& b);120 111 121 112 void -
factory/cfEzgcd.cc
reb7c6b r3b6f1b 307 307 for (int i= A.min(); i <= A.max(); i++) 308 308 { 309 if (!A[i].isZero()) 309 if (!A[i].isZero() && 310 ((getCharacteristic() > degree (U,i)) || getCharacteristic() == 0)) 310 311 { 311 312 termEstimate *= degree (U,i)*2; … … 433 434 } 434 435 436 /// real implementation of EZGCD over Z 435 437 static CanonicalForm 436 438 ezgcd ( const CanonicalForm & FF, const CanonicalForm & GG, REvaluation & b, … … 776 778 #endif 777 779 780 /// Extended Zassenhaus GCD over Z. 781 /// In case things become too dense we switch to a modular algorithm. 778 782 CanonicalForm 779 783 ezgcd ( const CanonicalForm & FF, const CanonicalForm & GG ) … … 790 794 791 795 #ifdef HAVE_NTL 792 static inline793 int Hensel_P (const CanonicalForm & UU, CFArray & G, const Evaluation & AA,794 const CFArray& LeadCoeffs )795 {796 CFList factors;797 factors.append (G[1]);798 factors.append (G[2]);799 800 CFMap NN, MM;801 Evaluation A= optimize4Lift (UU, MM, NN, AA);802 803 CanonicalForm U= MM (UU);804 CFArray LCs= CFArray (1,2);805 LCs [1]= MM (LeadCoeffs [1]);806 LCs [2]= MM (LeadCoeffs [2]);807 808 CFList evaluation;809 long termEstimate= size (U);810 for (int i= A.min(); i <= A.max(); i++)811 {812 if (!A[i].isZero() && (getCharacteristic() > degree (U,i))) //TODO find a good estimate for getCharacteristic() <= degree (U,i)813 {814 termEstimate *= degree (U,i)*2;815 termEstimate /= 3;816 }817 evaluation.append (A [i]);818 }819 if (termEstimate/getNumVars(U) > 500)820 return -1;821 CFList UEval;822 CanonicalForm shiftedU= myShift2Zero (U, UEval, evaluation);823 824 if (size (shiftedU)/getNumVars (U) > 500)825 return -1;826 827 CFArray shiftedLCs= CFArray (2);828 CFList shiftedLCsEval1, shiftedLCsEval2;829 shiftedLCs[0]= myShift2Zero (LCs[1], shiftedLCsEval1, evaluation);830 shiftedLCs[1]= myShift2Zero (LCs[2], shiftedLCsEval2, evaluation);831 factors.insert (1);832 int liftBound= degree (UEval.getLast(), 2) + 1;833 CFArray Pi;834 CFMatrix M= CFMatrix (liftBound, factors.length() - 1);835 CFList diophant;836 CFArray lcs= CFArray (2);837 lcs [0]= shiftedLCsEval1.getFirst();838 lcs [1]= shiftedLCsEval2.getFirst();839 nonMonicHenselLift12 (UEval.getFirst(), factors, liftBound, Pi, diophant, M,840 lcs, false);841 842 for (CFListIterator i= factors; i.hasItem(); i++)843 {844 if (!fdivides (i.getItem(), UEval.getFirst()))845 return 0;846 }847 848 int * liftBounds;849 bool noOneToOne= false;850 if (U.level() > 2)851 {852 liftBounds= new int [U.level() - 1]; /* index: 0.. U.level()-2 */853 liftBounds[0]= liftBound;854 for (int i= 1; i < U.level() - 1; i++)855 liftBounds[i]= degree (shiftedU, Variable (i + 2)) + 1;856 factors= nonMonicHenselLift2 (UEval, factors, liftBounds, U.level() - 1,857 false, shiftedLCsEval1, shiftedLCsEval2, Pi,858 diophant, noOneToOne);859 delete [] liftBounds;860 if (noOneToOne)861 return 0;862 }863 G[1]= factors.getFirst();864 G[2]= factors.getLast();865 G[1]= myReverseShift (G[1], evaluation);866 G[2]= myReverseShift (G[2], evaluation);867 G[1]= NN (G[1]);868 G[2]= NN (G[2]);869 return 1;870 }871 872 static inline873 bool findeval_P (const CanonicalForm & F, const CanonicalForm & G,874 CanonicalForm & Fb, CanonicalForm & Gb, CanonicalForm & Db,875 REvaluation & b, int delta, int degF, int degG, int maxeval,876 int & count, int& k, int bound, int& l)877 {878 if( count == 0 && delta != 0)879 {880 if( count++ > maxeval )881 return false;882 }883 if (count > 0)884 {885 b.nextpoint(k);886 if (k == 0)887 k++;888 l++;889 if (l > bound)890 {891 l= 1;892 k++;893 if (k > tmax (F.level(), G.level()) - 1)894 return false;895 b.nextpoint (k);896 }897 if (count++ > maxeval)898 return false;899 }900 while( true )901 {902 Fb = b( F );903 if( degree( Fb, 1 ) == degF )904 {905 Gb = b( G );906 if( degree( Gb, 1 ) == degG )907 {908 Db = gcd( Fb, Gb );909 if( delta > 0 )910 {911 if( degree( Db, 1 ) <= delta )912 return true;913 }914 else915 return true;916 }917 }918 if (k == 0)919 k++;920 b.nextpoint(k);921 l++;922 if (l > bound)923 {924 l= 1;925 k++;926 if (k > tmax (F.level(), G.level()) - 1)927 return false;928 b.nextpoint (k);929 }930 if( count++ > maxeval )931 return false;932 }933 }934 935 796 // parameters for heuristic 936 797 static int maxNumEval= 200; … … 938 799 939 800 /// Extended Zassenhaus GCD for finite fields. 940 /// In case things become too dense we switch to a modular algorithm 801 /// In case things become too dense we switch to a modular algorithm. 941 802 CanonicalForm EZGCD_P( const CanonicalForm & FF, const CanonicalForm & GG ) 942 803 { … … 1154 1015 { 1155 1016 TIMING_START (ez_p_eval); 1156 if( !findeval _P( F, G, Fb, Gb, Db, b, delta, degF, degG, maxeval, count, o,1017 if( !findeval( F, G, Fb, Gb, Db, b, delta, degF, degG, maxeval, count, o, 1157 1018 maxeval/maxNumVars, t )) 1158 1019 { // too many eval. used --> try another method … … 1248 1109 bt = b; 1249 1110 TIMING_START (ez_p_eval); 1250 if( !findeval _P(F,G,Fbt,Gbt,Dbt, bt, delta, degF, degG, maxeval, count, o,1111 if( !findeval(F,G,Fbt,Gbt,Dbt, bt, delta, degF, degG, maxeval, count, o, 1251 1112 maxeval/maxNumVars, t )) 1252 1113 { // too many eval. used --> try another method … … 1453 1314 1454 1315 TIMING_START (ez_p_hensel_lift); 1455 gcdfound= Hensel _P(B*lcD, DD, b, lcDD);1316 gcdfound= Hensel (B*lcD, DD, b, lcDD); 1456 1317 TIMING_END_AND_PRINT (ez_p_hensel_lift, "time for Hensel lift in EZ_P: "); 1457 1318 -
factory/cfGcdUtil.cc
reb7c6b r3b6f1b 14 14 #endif 15 15 16 /// coprimality check 16 /// Coprimality Check. f and g are assumed to have the same level. If swap is 17 /// true, the main variables of f and g are swapped with Variable(1). If the 18 /// result is false, d is set to the degree of the gcd of f and g evaluated at a 19 /// random point in K^n-1. This gcd is a gcd of univariate polynomials. 17 20 bool 18 21 gcd_test_one ( const CanonicalForm & f, const CanonicalForm & g, bool swap, int & d ) … … 217 220 } 218 221 222 /** 223 * same as balance_p ( const CanonicalForm & f, const CanonicalForm & q ) 224 * but qh= q/2 is provided, too. 225 **/ 226 CanonicalForm 227 balance_p ( const CanonicalForm & f, const CanonicalForm & q, const CanonicalForm & qh ) 228 { 229 Variable x = f.mvar(); 230 CanonicalForm result = 0; 231 CanonicalForm c; 232 CFIterator i; 233 for ( i = f; i.hasTerms(); i++ ) 234 { 235 c = i.coeff(); 236 if ( c.inCoeffDomain()) 237 { 238 if ( c > qh ) 239 result += power( x, i.exp() ) * (c - q); 240 else 241 result += power( x, i.exp() ) * c; 242 } 243 else 244 result += power( x, i.exp() ) * balance_p(c,q,qh); 245 } 246 return result; 247 } 248 219 249 /** static CanonicalForm balance_p ( const CanonicalForm & f, const CanonicalForm & q ) 220 250 * … … 227 257 **/ 228 258 CanonicalForm 229 balance_p ( const CanonicalForm & f, const CanonicalForm & q, const CanonicalForm & qh )230 {231 Variable x = f.mvar();232 CanonicalForm result = 0;233 CanonicalForm c;234 CFIterator i;235 for ( i = f; i.hasTerms(); i++ )236 {237 c = i.coeff();238 if ( c.inCoeffDomain())239 {240 if ( c > qh )241 result += power( x, i.exp() ) * (c - q);242 else243 result += power( x, i.exp() ) * c;244 }245 else246 result += power( x, i.exp() ) * balance_p(c,q,qh);247 }248 return result;249 }250 251 CanonicalForm252 259 balance_p ( const CanonicalForm & f, const CanonicalForm & q ) 253 260 { -
factory/cfModGcd.h
reb7c6b r3b6f1b 22 22 23 23 CanonicalForm modGCDFq (const CanonicalForm& F, const CanonicalForm& G, 24 Variable & alpha, CFList& l, bool& top_level);24 Variable & alpha, CFList& l, bool& top_level); 25 25 26 26 /// GCD of A and B over \f$ F_{p}(\alpha ) \f$ 27 static inline CanonicalForm modGCDFq (const CanonicalForm& A, const CanonicalForm& B, 28 Variable & alpha) 27 static inline 28 CanonicalForm modGCDFq (const CanonicalForm& A, ///<[in] poly over F_q 29 const CanonicalForm& B, ///<[in] poly over F_q 30 Variable & alpha ///<[in] algebraic variable 31 ) 29 32 { 30 33 CFList list; … … 34 37 35 38 36 CanonicalForm modGCDFp (const CanonicalForm& F, const CanonicalForm& G, 37 bool& top_level, CFList& l); 39 CanonicalForm 40 modGCDFp (const CanonicalForm& F, const CanonicalForm& G, bool& top_level, 41 CFList& l); 38 42 39 CanonicalForm modGCDFp (const CanonicalForm& F, const CanonicalForm& G, CanonicalForm& coF, CanonicalForm& coG, 40 bool& topLevel, CFList& l); 43 CanonicalForm 44 modGCDFp (const CanonicalForm& F, const CanonicalForm& G, 45 CanonicalForm& coF, CanonicalForm& coG, 46 bool& topLevel, CFList& l); 41 47 42 48 ///GCD of A and B over \f$ F_{p} \f$ 43 static inline CanonicalForm modGCDFp (const CanonicalForm& A, const CanonicalForm& B) 49 static inline 50 CanonicalForm modGCDFp (const CanonicalForm& A, ///<[in] poly over F_p 51 const CanonicalForm& B ///<[in] poly over F_p 52 ) 44 53 { 45 54 CFList list; … … 48 57 } 49 58 50 static inline CanonicalForm modGCDFp (const CanonicalForm& A, const CanonicalForm& B, CanonicalForm& coA, CanonicalForm& coB) 59 static inline 60 CanonicalForm modGCDFp (const CanonicalForm& A, const CanonicalForm& B, 61 CanonicalForm& coA, CanonicalForm& coB) 51 62 { 52 63 CFList list; … … 55 66 } 56 67 57 CanonicalForm modGCDGF (const CanonicalForm& F, const CanonicalForm& G, CFList& l, 58 bool& top_level); 68 CanonicalForm 69 modGCDGF (const CanonicalForm& F, const CanonicalForm& G, CFList& l, 70 bool& top_level); 59 71 60 72 /// GCD of A and B over GF 61 static inline CanonicalForm modGCDGF (const CanonicalForm& A, const CanonicalForm& B) 73 static inline 74 CanonicalForm modGCDGF (const CanonicalForm& A, ///<[in] poly over GF 75 const CanonicalForm& B ///<[in] poly over GF 76 ) 62 77 { 63 78 ASSERT (CFFactory::gettype() == GaloisFieldDomain, … … 73 88 /// Zippel's sparse GCD over Fp 74 89 static inline 75 CanonicalForm sparseGCDFp (const CanonicalForm& A, const CanonicalForm& B) 90 CanonicalForm sparseGCDFp (const CanonicalForm& A, ///<[in] poly over F_p 91 const CanonicalForm& B ///<[in] poly over F_p 92 ) 76 93 { 77 94 ASSERT (CFFactory::gettype() == FiniteFieldDomain, … … 82 99 } 83 100 84 /// Zippel's sparse GCD over Fq 101 85 102 CanonicalForm 86 103 sparseGCDFq (const CanonicalForm& F, const CanonicalForm& G, 87 104 const Variable& alpha, CFList& l, bool& topLevel); 88 105 106 /// Zippel's sparse GCD over Fq 89 107 static inline 90 CanonicalForm sparseGCDFq (const CanonicalForm& A, const CanonicalForm& B, 91 const Variable& alpha) 108 CanonicalForm sparseGCDFq (const CanonicalForm& A, ///<[in] poly over F_q 109 const CanonicalForm& B, ///<[in] poly over F_q 110 const Variable& alpha ///<[in] algebraic variable 111 ) 92 112 { 93 113 CFList list; … … 96 116 } 97 117 118 /// extract monomials of F, parts in algebraic variable are considered 119 /// coefficients 98 120 CFArray 99 getMonoms (const CanonicalForm& F); 121 getMonoms (const CanonicalForm& F ///<[in] some poly 122 ); 100 123 101 124 bool … … 104 127 const CanonicalForm& cand); 105 128 106 CanonicalForm modGCDZ ( const CanonicalForm & FF, const CanonicalForm & GG ); 129 /// modular GCD over Z 130 CanonicalForm modGCDZ (const CanonicalForm & FF, ///<[in] poly over Z 131 const CanonicalForm & GG ///<[in] poly over Z 132 ); 107 133 #endif -
factory/cfModResultant.cc
reb7c6b r3b6f1b 640 640 } 641 641 642 ASSERT (i >= 0, "ran out of primes"); //sic 642 if (i <= 0) 643 return resultant (A, B, x); 643 644 644 645 setCharacteristic (p); -
factory/cf_cyclo.cc
reb7c6b r3b6f1b 26 26 #endif 27 27 28 29 /// integer factorization using table look-ups,30 /// function may fail if integer contains primes which exceed the largest prime31 /// in our table32 28 int* integerFactorizer (const long integer, int& length, bool& fail) 33 29 { … … 110 106 } 111 107 112 /// compute the n-th cyclotomic polynomial,113 /// function may fail if integer_factorizer fails to factorize n114 108 CanonicalForm cyclotomicPoly (int n, bool& fail) 115 109 { … … 138 132 139 133 #ifdef HAVE_NTL 140 /// checks if alpha is a primitive element, alpha is assumed to be an algebraic141 /// variable over some finite prime field142 134 bool isPrimitive (const Variable& alpha, bool& fail) 143 135 { -
factory/cf_cyclo.h
reb7c6b r3b6f1b 17 17 // #include "config.h" 18 18 19 int* integerFactorizer (const long integer, int& length, bool& fail); 20 CanonicalForm cyclotomicPoly (int n, bool& fail); 21 bool isPrimitive (const Variable& alpha, bool& fail); 19 /// integer factorization using table look-ups, 20 /// function may fail if integer contains primes which exceed the largest prime 21 /// in our table 22 int* integerFactorizer (const long integer, ///< [in] some integer 23 int& length, ///< [in,out] number of factors 24 bool& fail ///< [in,out] failure? 25 ); 26 27 /// compute the n-th cyclotomic polynomial, 28 /// function may fail if integer_factorizer fails to factorize n 29 CanonicalForm 30 cyclotomicPoly (int n, ///< [in] some integer 31 bool& fail ///< [in,out] failure? 32 ); 33 34 /// checks if alpha is a primitive element, alpha is assumed to be an algebraic 35 /// variable over some finite prime field 36 bool isPrimitive (const Variable& alpha, ///< [in] some algebraic variable 37 bool& fail ///< [in,out] failure? 38 ); 22 39 23 40 #endif -
factory/cf_map_ext.cc
reb7c6b r3b6f1b 160 160 } 161 161 162 /// changes representation by primitive element to representation by residue163 /// classes modulo a Conway polynomial164 162 CanonicalForm GF2FalphaRep (const CanonicalForm& F, const Variable& alpha) 165 163 { … … 170 168 } 171 169 172 /// change representation by residue classes modulo a Conway polynomial173 /// to representation by primitive element174 170 CanonicalForm Falpha2GFRep (const CanonicalForm& F) 175 171 { … … 209 205 } 210 206 211 /// maps a polynomial over \f$ GF(p^{k}) \f$ to a polynomial over212 /// \f$ GF(p^{d}) \f$ , d needs to be a multiple of k213 207 CanonicalForm GFMapUp (const CanonicalForm & F, int k) 214 208 { … … 247 241 } 248 242 249 /// maps a polynomial over \f$ GF(p^{d}) \f$ to a polynomial over250 /// \f$ GF(p^{k})\f$ , d needs to be a multiple of k251 243 CanonicalForm GFMapDown (const CanonicalForm & F, int k) 252 244 { … … 260 252 } 261 253 254 /// map F in \f$ F_{p} (\alpha ) \f$ which is generated by G into some 255 /// \f$ F_{p}(\beta ) \f$ which is generated by H 262 256 static inline 263 257 CanonicalForm mapUp (const CanonicalForm& F, const CanonicalForm& G, … … 313 307 314 308 #ifdef HAVE_NTL 315 /// determine a primitive element of \f$ F_{p} (\alpha ) \f$, 316 /// \f$ \beta \f$ is a primitive element of a field which is isomorphic to 317 /// \f$ F_{p}(\alpha ) \f$ 318 CanonicalForm 319 primitiveElement (const Variable& alpha, Variable& beta, bool fail) 309 CanonicalForm 310 primitiveElement (const Variable& alpha, Variable& beta, bool& fail) 320 311 { 321 312 bool primitive= false; -
factory/cf_map_ext.h
reb7c6b r3b6f1b 22 22 CanonicalForm getItem (const CFList& list, const int& pos); 23 23 24 /// maps a polynomial over \f$ GF(p^{k}) \f$ to a polynomial over 25 /// \f$ GF(p^{d}) \f$ , d needs to be a multiple of k 24 26 CanonicalForm GFMapUp (const CanonicalForm & F, int k); 25 27 28 /// maps a polynomial over \f$ GF(p^{d}) \f$ to a polynomial over 29 /// \f$ GF(p^{k})\f$ , d needs to be a multiple of k 26 30 CanonicalForm GFMapDown (const CanonicalForm & F, int k); 27 31 32 /// map F from \f$ F_{p} (\alpha ) \f$ to \f$ F_{p}(\beta ) \f$. 33 /// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$. 28 34 CanonicalForm 29 mapUp (const CanonicalForm& F, const Variable& alpha, const Variable& beta, 30 const CanonicalForm& prim_elem, const CanonicalForm& im_prim_elem, 31 CFList& source, CFList& dest); 35 mapUp (const CanonicalForm& F, ///<[in] poly over \f$ F_{p} (\alpha ) \f$ 36 const Variable& alpha, ///<[in] alg. variable 37 const Variable& beta, ///<[in] alg. variable 38 const CanonicalForm& prim_elem, ///<[in] primitive element of \f$ F_{p} (\alpha ) \f$ 39 const CanonicalForm& im_prim_elem,///<[in] image of prim_elem in \f$ F_{p} (\beta ) \f$ 40 CFList& source, ///<[in,out] look up lists 41 CFList& dest ///<[in,out] look up lists 42 ); 32 43 44 /// map F from \f$ F_{p} (\beta ) \f$ to \f$ F_{p}(\alpha ) \f$. 45 /// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$ and F in 46 /// \f$ F_{p}(\alpha ) \f$. 33 47 CanonicalForm 34 mapDown (const CanonicalForm& F, const CanonicalForm& prim_elem, const 35 CanonicalForm& im_prim_elem, const Variable& alpha, CFList& source, 36 CFList& dest); 48 mapDown (const CanonicalForm& F, ///<[in] poly over \f$ F_{p} (\beta ) \f$ 49 const CanonicalForm& prim_elem, ///<[in] primitive element of \f$ F_{p} (\alpha ) \f$ 50 const CanonicalForm& im_prim_elem,///<[in] image of prim_elem in \f$ F_{p} (\beta ) \f$ 51 const Variable& alpha, ///<[in] alg. variable 52 CFList& source, ///<[in,out] look up lists 53 CFList& dest ///<[in,out] look up lists 54 ); 37 55 56 /// determine a primitive element of \f$ F_{p} (\alpha ) \f$, 57 /// \f$ \beta \f$ is a primitive element of a field which is isomorphic to 58 /// \f$ F_{p}(\alpha ) \f$ 38 59 CanonicalForm 39 primitiveElement (const Variable& alpha, Variable& beta, bool fail); 60 primitiveElement (const Variable& alpha, ///< [in] some algebraic variable 61 Variable& beta, ///< [in,out] s.a. 62 bool& fail ///< [in,out] failure due to integer 63 ///< factorization failure? 64 ); 40 65 66 /// compute the image of a primitive element of \f$ F_{p} (\alpha ) \f$ 67 /// in \f$ F_{p}(\beta ) \f$. 68 /// We assume \f$ F_{p} (\alpha ) \subset F_{p}(\beta ) \f$. 41 69 CanonicalForm 42 mapPrimElem (const CanonicalForm& prim_elem, const Variable& alpha, 43 const Variable& beta); 70 mapPrimElem (const CanonicalForm& prim_elem, ///< [in] primitive element 71 const Variable& alpha, ///< [in] algebraic variable 72 const Variable& beta ///< [in] algebraic variable 73 ); 44 74 45 CanonicalForm GF2FalphaRep (const CanonicalForm& F, const Variable& alpha); 75 /// changes representation by primitive element to representation by residue 76 /// classes modulo a Conway polynomial 77 CanonicalForm GF2FalphaRep (const CanonicalForm& F, ///< [in] some poly over GF 78 const Variable& alpha ///< [in] root of a Conway 79 ///< poly 80 ); 46 81 47 CanonicalForm Falpha2GFRep (const CanonicalForm& F); 82 /// change representation by residue classes modulo a Conway polynomial 83 /// to representation by primitive element 84 CanonicalForm Falpha2GFRep (const CanonicalForm& F ///<[in] some poly over 85 ///< F_p(alpha) where alpha 86 ///< is a root of a Conway 87 ///< poly 88 ); 48 89 49 /// map from \f$ F_p(\alpha) \f$ to \f$ F_p(\beta) \f$ such that 90 /// map from \f$ F_p(\alpha) \f$ to \f$ F_p(\beta) \f$ such that 50 91 /// \f$ F\in F_p(\alpha) \f$ is mapped onto \f$ \beta \f$ 51 92 /// 52 /// @return @a map returns the image of @a primElem such that the above 93 /// @return @a map returns the image of @a primElem such that the above 53 94 /// described properties hold 54 95 CanonicalForm 55 map (const CanonicalForm& primElem,///< [in] primitive element of 96 map (const CanonicalForm& primElem,///< [in] primitive element of 56 97 ///< \f$ F_p (\alpha) \f$ 57 98 const Variable& alpha, ///< [in] algebraic variable … … 68 109 /// @return @a findMinPoly computes the minimal polynomial of F 69 110 CanonicalForm 70 findMinPoly (const CanonicalForm& F, ///< [in] an element of 111 findMinPoly (const CanonicalForm& F, ///< [in] an element of 71 112 ///< \f$ F_p(\alpha)\backslash F_p \f$ 72 113 const Variable& alpha ///< [in] algebraic variable -
factory/facAbsFact.cc
reb7c6b r3b6f1b 239 239 iter++; 240 240 CanonicalForm contentx= content (iter.getItem(), x); 241 if (degree (contentx) > 0) 242 { 243 result= CFList(); 244 eval= CFList(); 245 LCFeval= CFList(); 246 E.nextpoint(); 247 continue; 248 } 249 contentx= content (iter.getItem()); 241 250 if (degree (contentx) > 0) 242 251 { -
factory/facBivar.h
reb7c6b r3b6f1b 281 281 ); 282 282 283 /// compute p^k larger than the bound on the coefficients of a factor of @a f 284 /// over Q (mipo) 283 285 modpk 284 coeffBound ( const CanonicalForm & f, int p, const CanonicalForm& mipo ); 285 286 void findGoodPrime(const CanonicalForm &f, int &start); 287 286 coeffBound (const CanonicalForm & f, ///< [in] poly over Z[a] 287 int p, ///< [in] some positive integer 288 const CanonicalForm& mipo ///< [in] minimal polynomial with 289 ///< denominator 1 290 ); 291 292 /// find a big prime p from our tables such that no term of f vanishes mod p 293 void findGoodPrime(const CanonicalForm &f, ///< [in] poly over Z or Z[a] 294 int &start ///< [in,out] index of big prime in 295 /// cf_primetab.h 296 ); 297 298 /// compute p^k larger than the bound on the coefficients of a factor of @a f 299 /// over Z 288 300 modpk 289 coeffBound ( const CanonicalForm & f, int p ); 301 coeffBound (const CanonicalForm & f, ///< [in] poly over Z 302 int p ///< [in] some positive integer 303 ); 290 304 291 305 #endif -
factory/facFqSquarefree.cc
reb7c6b r3b6f1b 35 35 static inline 36 36 CanonicalForm 37 pthRoot (const CanonicalForm & F, const int &q)37 pthRoot (const CanonicalForm & F, int q) 38 38 { 39 39 CanonicalForm A= F; … … 125 125 126 126 CanonicalForm 127 maxpthRoot (const CanonicalForm & F, const int &q, int& l)127 maxpthRoot (const CanonicalForm & F, int q, int& l) 128 128 { 129 129 CanonicalForm result= F; -
factory/facFqSquarefree.h
reb7c6b r3b6f1b 141 141 CanonicalForm 142 142 maxpthRoot (const CanonicalForm & F, ///< [in] a poly which is a pth power 143 const int & q,///< [in] size of the field143 int q, ///< [in] size of the field 144 144 int& l ///< [in,out] @a l maximal, s.t. @a F is 145 145 ///< a p^l-th power -
factory/facMul.cc
reb7c6b r3b6f1b 5 5 * 6 6 * This file implements functions for fast multiplication and division with 7 * remainder 7 * remainder. 8 * 9 * Nomenclature rules: kronSub* -> plain Kronecker substitution 10 * reverseSubst* -> reverse Kronecker substitution 11 * kronSubRecipro* -> reciprocal Kronecker substitution as 12 * described in D. Harvey "Faster 13 * polynomial multiplication via 14 * multipoint Kronecker substitution" 8 15 * 9 16 * @author Martin Lee … … 33 40 34 41 #ifdef HAVE_FLINT 35 void kronSub (fmpz_poly_t result, const CanonicalForm& A, int d)42 void kronSubQa (fmpz_poly_t result, const CanonicalForm& A, int d) 36 43 { 37 44 int degAy= degree (A); … … 106 113 107 114 fmpz_poly_t FLINTA,FLINTB; 108 kronSub (FLINTA, A, d);109 kronSub (FLINTB, B, d);115 kronSubQa (FLINTA, A, d); 116 kronSubQa (FLINTB, B, d); 110 117 111 118 fmpz_poly_mul (FLINTA, FLINTA, FLINTB); … … 214 221 215 222 fmpz_poly_t FLINTA,FLINTB; 216 kronSub (FLINTA, A, d);217 kronSub (FLINTB, B, d);223 kronSubQa (FLINTA, A, d); 224 kronSubQa (FLINTB, B, d); 218 225 219 226 int k= d*m; … … 2146 2153 2147 2154 fmpz_poly_t FLINTA, FLINTB; 2148 kronSub (FLINTA, A, d1);2149 kronSub (FLINTB, B, d1);2155 kronSubQa (FLINTA, A, d1); 2156 kronSubQa (FLINTB, B, d1); 2150 2157 int k= d1*degree (M); 2151 2158 -
factory/facMul.h
reb7c6b r3b6f1b 19 19 20 20 #ifdef HAVE_NTL 21 /// multiplication of univariate polys over a finite field using NTL, if we are 22 /// in GF factory's default multiplication is used. 21 /// multiplication of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k, 22 /// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication 23 /// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be 24 /// considered as elements over Z/p^k or Z/p^k[t]/(f). 23 25 /// 24 26 /// @return @a mulNTL returns F*G … … 29 31 ); 30 32 31 /// mod of univariate polys over a finite field using NTL, if we are 32 /// in GF factory's default mod is used. 33 /// mod of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k, 34 /// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication 35 /// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be 36 /// considered as elements over Z/p^k or Z/p^k[t]/(f); in this case invertiblity 37 /// of Lc(G) is not checked 33 38 /// 34 39 /// @return @a modNTL returns F mod G … … 39 44 ); 40 45 41 /// division of univariate polys over a finite field using NTL, if we are 42 /// in GF factory's default division is used. 46 /// division of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k, 47 /// Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication 48 /// is used. If @a b!= 0 and getCharacteristic() == 0 the input will be 49 /// considered as elements over Z/p^k or Z/p^k[t]/(f); in this case invertiblity 50 /// of Lc(G) is not checked 43 51 /// 44 52 /// @return @a divNTL returns F/G … … 49 57 ); 50 58 51 /// division with remainder of @a F by 52 /// @a G wrt Variable (1) modulo @a M.59 /// division with remainder of @a F by @a G wrt Variable (1) modulo @a M. 60 /// Uses an algorithm based on Burnikel, Ziegler "Fast recursive division". 53 61 /// 54 62 /// @return @a Q returns the dividend, @a R returns the remainder. … … 62 70 ); 63 71 64 /// division with remainder of @a F by 65 /// @a G wrt Variable (1) modulo @a MOD.72 /// division with remainder of @a F by @a G wrt Variable (1) modulo @a MOD. 73 /// Uses an algorithm based on Burnikel, Ziegler "Fast recursive division". 66 74 /// 67 75 /// @sa divrem2() -
factory/ftmpl_inst.cc
reb7c6b r3b6f1b 151 151 152 152 // 153 template int operator== (const List<CanonicalForm> &, const List<CanonicalForm> &); 153 154 template List<CanonicalForm> Union ( const List<CanonicalForm> &, const List<CanonicalForm> & ); 155 template List<CFList> Union ( const List<CFList>&, const List<CFList>&); 154 156 template List<CanonicalForm> Difference ( const List<CanonicalForm> &, const List<CanonicalForm> & ); 157 template List<List<CanonicalForm> > Difference ( const List<List<CanonicalForm> >&, const List<List<CanonicalForm> >&); 158 template List<List<CanonicalForm> > Difference ( const List<List<CanonicalForm> >&, const List<CanonicalForm>&); 159 155 160 template CanonicalForm prod ( const List<CanonicalForm> & ); 156 161 template bool find ( const List<CanonicalForm> &, const CanonicalForm&); 162 template bool find ( const List<List<CanonicalForm> >&, const List<CanonicalForm>&); 157 163 // place here your own template stuff, not yet instantiated by factory 158 164 // -
factory/include/factory/templates/ftmpl_list.h
reb7c6b r3b6f1b 112 112 113 113 template <class T> 114 int operator== (const List<T>&, const List<T>& ); 115 116 template <class T> 114 117 List<T> Union ( const List<T>&, const List<T>& ); 115 118 116 119 template <class T> 117 120 List<T> Difference ( const List<T>&, const List<T>& ); 121 122 template <class T> 123 List<T> Union ( const List<T> &, const List<T> & , int (*ecmpf)( const T&, const T& )); 124 125 template <class T> 126 List<T> Difference ( const List<T> &, const List<T> & , int (*ecmpf)( const T&, const T& )); 127 128 template <class T> 129 List<T> Difference ( const List<T> & F, const T & G); 130 131 template <class T> 132 List<T> Difference ( const List<T> & F, const T & G, int (*ecmpf)( const T&, const T& )); 118 133 119 134 template <class T> … … 126 141 bool find (const List<T>&, const T& t); 127 142 143 template <class T> 144 bool find (const List<T> & F, const T& t, int (*ecmpf)( const T&, const T& )); 128 145 #endif /* ! INCL_LIST_H */ -
factory/templates/ftmpl_list.cc
reb7c6b r3b6f1b 101 101 cur = cur->prev; 102 102 while ( cur ) 103 103 { 104 104 first = new ListItem<T>( *(cur->item), first, 0 ); 105 105 first->next->prev = first; … … 144 144 ListItem<T> *dummy; 145 145 while ( first ) 146 146 { 147 147 dummy = first; 148 148 first = first->next; … … 151 151 ListItem<T>* cur = l.last; 152 152 if ( cur ) 153 153 { 154 154 first = new ListItem<T>( *(cur->item), 0, 0 ); 155 155 last = first; 156 156 cur = cur->prev; 157 157 while ( cur ) 158 158 { 159 159 first = new ListItem<T>( *(cur->item), first, 0 ); 160 160 first->next->prev = first; … … 164 164 } 165 165 else 166 166 { 167 167 first = last = 0; 168 168 _length = 0; … … 171 171 } 172 172 return *this; 173 } 174 175 template <class T> 176 int operator== ( const List<T>& l1, const List<T>& l2 ) 177 { 178 if (l1.length() != l2.length()) 179 return 0; 180 ListIterator<T> iter2= l2; 181 for (ListIterator<T> iter1= l1; iter1.hasItem(); iter1++) 182 { 183 if (!(iter1.getItem() == iter2.getItem())) 184 return 0; 185 iter2++; 186 } 187 188 return 1; 173 189 } 174 190 … … 201 217 *cursor->item = t; 202 218 else 203 219 { 204 220 cursor = cursor->prev; 205 221 cursor->next = new ListItem<T>( t, cursor->next, cursor ); … … 227 243 insf( *cursor->item, t ); 228 244 else 229 245 { 230 246 cursor = cursor->prev; 231 247 cursor->next = new ListItem<T>( t, cursor->next, cursor ); … … 275 291 _length--; 276 292 if ( first == last ) 277 293 { 278 294 delete first; 279 295 first = last = 0; 280 296 } 281 297 else 282 298 { 283 299 ListItem<T> *dummy = first; 284 300 first->next->prev = 0; … … 305 321 _length--; 306 322 if ( first == last ) 307 323 { 308 324 delete last; 309 325 first = last = 0; 310 326 } 311 327 else 312 328 { 313 329 ListItem<T> *dummy = last; 314 330 last->prev->next = 0; … … 327 343 int swap; 328 344 do 329 345 { 330 346 swap = 0; 331 347 ListItem<T> *cur = first; 332 348 while ( cur->next ) 333 349 { 334 350 if ( swapit( *(cur->item), *(cur->next->item) ) ) 335 351 { 336 352 T* dummy = cur->item; 337 353 cur->item = cur->next->item; … … 481 497 theList->insert( t ); 482 498 else 483 499 { 484 500 current->prev = new ListItem<T>( t, current, current->prev ); 485 501 current->prev->prev->next = current->prev; … … 498 514 theList->append( t ); 499 515 else 500 516 { 501 517 current->next = new ListItem<T>( t, current->next, current ); 502 518 current->next->next->prev = current->next; … … 514 530 ListItem <T>*dummynext = current->next, *dummyprev = current->prev; 515 531 if ( current->prev ) 516 532 { 517 533 current->prev->next = current->next; 518 534 if ( current->next ) … … 524 540 } 525 541 else 526 542 { 527 543 if ( current->next ) 528 544 current->next->prev = 0; … … 558 574 j = G; 559 575 while ( ( ! iselt ) && j.hasItem() ) 560 576 { 561 577 iselt = f == j.getItem(); 562 578 j++; … … 576 592 for ( i = F; i.hasItem(); ++i ) 577 593 L.insert( i.getItem(), cmpf, insf ); 594 return L; 595 } 596 597 template <class T> 598 List<T> Union ( const List<T> & F, const List<T> & G, int (*ecmpf)( const T&, const T& )) 599 { 600 List<T> L = G; 601 ListIterator<T> i, j; 602 T f; 603 bool iselt; 604 605 for ( i = F; i.hasItem(); i++ ) 606 { 607 f = i.getItem(); 608 iselt = false; 609 j = G; 610 while ( ( ! iselt ) && j.hasItem() ) 611 { 612 iselt = ecmpf (f, j.getItem()); 613 j++; 614 } 615 if ( ! iselt ) 616 L.append( f ); 617 } 578 618 return L; 579 619 } … … 594 634 if ( ! found ) 595 635 L.append( f ); 636 } 637 return L; 638 } 639 640 template <class T> 641 List<T> Difference ( const List<T> & F, const List<T> & G, int (*ecmpf)( const T&, const T& )) 642 { 643 List<T> L; 644 ListIterator<T> i, j; 645 T f; 646 int found; 647 for ( i = F; i.hasItem(); ++i ) 648 { 649 f = i.getItem(); 650 found = 0; 651 for ( j = G; j.hasItem() && (!found); ++j ) 652 found = ecmpf (f, j.getItem()); 653 if ( ! found ) 654 L.append( f ); 655 } 656 return L; 657 } 658 659 template <class T> 660 List<T> Difference ( const List<T> & F, const T & G, int (*ecmpf)( const T&, const T& )) 661 { 662 List<T> L; 663 ListIterator<T> i; 664 int found; 665 for ( i = F; i.hasItem(); ++i ) 666 { 667 found = ecmpf (G, i.getItem()); 668 if ( ! found ) 669 L.append( i.getItem() ); 670 } 671 return L; 672 } 673 674 template <class T> 675 List<T> Difference ( const List<T> & F, const T & G) 676 { 677 List<T> L; 678 ListIterator<T> i; 679 int found; 680 for ( i = F; i.hasItem(); ++i ) 681 { 682 found = G == i.getItem(); 683 if ( ! found ) 684 L.append( i.getItem() ); 596 685 } 597 686 return L; … … 621 710 return false; 622 711 } 712 713 template <class T> 714 bool find (const List<T> & F, const T& t, int (*ecmpf)( const T&, const T& )) 715 { 716 if (F.length() == 0) return false; 717 ListIterator<T> J= F; 718 while (J.hasItem()) 719 { 720 if (ecmpf (J.getItem(), t)) 721 return true; 722 J++; 723 } 724 return false; 725 } 726 -
libsingular-config.in
r5ce0932 r3b6f1b 42 42 { 43 43 cat <<EOF 44 Usage: lib polys-config [OPTION]44 Usage: libsingular-config [OPTION] 45 45 46 46 Known values for OPTION are: 47 47 48 --prefix show lib polysinstallation prefix48 --prefix show libsingular installation prefix 49 49 --libs print library linking information 50 50 --cflags print pre-processor and compiler flags -
xalloc/omalloc.h
r5ce0932 r3b6f1b 71 71 static inline void * omAlloc0(size_t s) 72 72 { void *d=omAlloc(s);memset(d,0,s); return d; } 73 static inline void * omalloc0(size_t s) 74 { if (s!=0) { void *d=omAlloc(s);memset(d,0,s); return d;} else return NULL; } 73 75 74 76 static inline void *omRealloc(void *d, size_t ns)
Note: See TracChangeset
for help on using the changeset viewer.