Changeset b8f8ea in git


Ignore:
Timestamp:
Apr 9, 2013, 3:24:54 PM (9 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '48f1dd268d0ff74ef2f7dccbf02545425002ddcc')
Children:
84299e1e1d2b92c5e28fc52391cc529f8eb8ade7f8565ac2b56eae4e46fb63670efa1bc402ae3628
Parents:
8e48d4973dda2a880260a9e9a6e0705b49ab77960b447e5e0cc1cede9cfd6c91fab1752432a2bd62
Message:
Merge pull request #314 from mmklee/factory_bugfix_sw

Factory bugfix sw
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/crypto.lib

    r0b447e rb8f8ea  
    957957//======================== Pollards p-factorization ================
    958958proc pFactor(number n,int B, list P)
    959 "USAGE:  pFactor(n,B.P); n to be factorized, B a bound , P a list of primes
     959"USAGE:  pFactor(n,B,P); n to be factorized, B a bound , P a list of primes
    960960RETURN: a list of factors of n or n if no factor found
    961961NOTE: Pollard's p-factorization
    962962       creates the product k of powers of primes (bounded by B)  from
    963963       the list P with the idea that for a prime divisor p of n we have
    964        p-1|k, and then p devides gcd(a^k-1,n) for some random a
     964       p-1|k, and then p divides gcd(a^k-1,n) for some random a
    965965EXAMPLE:example pFactor; shows an example
    966966"
  • Singular/LIB/general.lib

    r0b447e rb8f8ea  
    12731273{ "EXAMPLE:"; echo = 2;
    12741274   ring r=32003,(a,b,c,d,e),dp;
    1275    int n=6;
     1275   int n=7;
    12761276   ideal i=
    12771277   a^n-b^n,
     
    12801280   d^n-e^n,
    12811281   a^(n-1)*b+b^(n-1)*c+c^(n-1)*d+d^(n-1)*e+e^(n-1)*a;
    1282    timeStd(i,2);
    1283    timeStd(i,20);
     1282   def i1=timeStd(i,1);
     1283   def i2=timeStd(i,20);
     1284   listvar();
    12841285}
    12851286
  • Singular/LIB/grobcov.lib

    r0b447e rb8f8ea  
    33903390  if (size(L)>0)
    33913391  {
    3392     for (i=1;i<=size(L)/2;i++)
     3392    for (i=1;i<=size(L) div 2;i++)
    33933393    {
    33943394      if (L[2*i-1]=="null"){E=L[2*i];}
  • Tst/Short/factorizep_s.res.gz.uu

    r8e48d49 rb8f8ea  
    11begin 644 factorizep_s.res.gz
    2 M'XL("*U>3%$``V9A8W1O<FEZ97!?<RYR97,`E/U-DRQ/>MV)[?DIKLU&#00<
     2M'XL("&*18E$``V9A8W1O<FEZ97!?<RYR97,`E/U-DRQ/>MV)[?DIKLU&#00<
    33M<\O?2Q2P&)L-S<9F,[,;(V@4"5!M:@$T=$N\1=E\=X6?YSS',SRB;KJ,1E3T
    44M_Z:'9U5F^-OS.^?\;__[__SO_M<?/WY\_/V/_^7?_4\__H>__/DO?_NG/_[?
     
    13341334M_?CX67K\Z__V#^FO__L_Y"-^I%CLZK/&G^=_S^?_2D=,YS?KK_\;KC]B3I_G
    13351335MO]3S?YU[\=*\>3Q*KG;Q4<OGS_'Z(^;>RWC!<;[OFN;[J2_OIYUO]^]^_--_
    1336 M_$]_^9=__>-__\<??_BGO_JW/_[RCW_^B_VG/__XPY_^YL?YW_Y_[9U+;^0X
    1337 MEN_W_2DTC;MPAJPL\4VA.G,UF]D,+C"SFH4OG`]G&965U<@(.R0-^KO?<PXI
    1338 MDN&P765WXF(N\._JM"5*\2=_/`\^0A$^LP\WI=CH:'JK5SVHT7NS'H>IO'6V
    1339 MZJ,9)F7YH@Y3?/!(RM:,QA[VW!ZNL8=K[7'97>PO#R?&<&2,!P9PIGFYK0;8
    1340 M7]'DZ.+P9D<'E@ZNM!R:_F)0N\.5BGSJPW8ZR:F7&T<Y=D65S"KE2LJ3F*CY
    1341 M34U;.57;J9/34>X49>>+FD]J1AI@MP88N8U&AW1JI0TT+.93J<YNU5DCI[IH
    1342 M!M9,EZ1JFMGG4\^GM)BA&FV0X\C'3LKUE&_S4IVNR+$(>J'60NVE7JWE6)"U
    1343 MDF.I5&^5>A%74U&;JIJT04D;8E*30Q:3`U?CV#>.X=5K7;FX\=X.>W/H]_J@
    1344 M^X,M/KRW4C3L#Z84VUI\J._:LD!;Y$\U2:!<"MNEX>Q2I$N^WSNZ9+E:P_7Z
    1345 M=&WB:P-=ZZ687DNM.+AR78WI!KHXG%]4FW+/RGVZJ[U!5_E2-<N<WL5]0CV4
    1346 MWR!75D[WAZ&4<%=P?]42[HG^\-@FX<E_1OY3IABU2:W>G"4&WZ16[YK$H,>1
    1347 MD\/-Y9?+^\OE\NYR?G/9-5G"^[,LX6FPD,SP"SD19=6[*S/8W<V5WGW9W>\6
    1348 M.M==WUW$'5^\IV):0FV7Z>?<T\V[+W0DUSB7W!5IBI5A>Z'9S4.]E<YV"^E^
    1349 MV:Y=Z=JBJ=*%\:%W__*(=__RG'?;FR_Z7B_Z;I`CL\S]%W-O9MW'&T,7N%Q_
    1350 MN5_N],`%9NX]G^N[N;\Q=^:Q`3:HIH7ZS#R!$N]#DUQ??KC\>'ES:HY@S\P1
    1351 M7#7'-77,!_IW0Z.CBGYW35WW@<;'C]REO5+.Z-TUE;C=1[IRPZ.@-6.@$D\E
    1352 M]+JJVHQ]X6SL>W&7WI0<\:&D!:\_?.RO;TY<G9RZU-H,=>%\J(OCPRZ[F,F!
    1353 MUY,Q+JJS[HKZ?1G7R(=<3QYH^I7SZ$P]M5SQ)QFN(AVXGIR5NFJYXDO\V\GD
    1354 M8J;.6JY\56Q&S6C_Z=PZ<YNX2=PB?B>MGZ,\!^.6*(_$K(8?=?6/N5ET35/\
    1355 M>9^%<S>33GLP3XOQO-NFTFU;T421-KA@QI'[B=\BL:-3@8XG"GE#,ZDX[5)7
    1356 MTK2+IJ&1[PMT2I.U&*WFJ]R5MBC2R-0';R8UY9YWO0G>[Y)E_.#M1.=T:N@T
    1357 M#&Z*3G$F8!L-SM*\:>(T<37U>IS")-8LXA1V@_5JI#DC-W$=O!NMRTVDT\G:
    1358 MR87<1$WS0N5#4&',K312XKUR-C>.YIU%G%(NS=N,#FK,K25GZ:/703"YO9ZK
    1359 M5#%XG9L<J"",+O@HC8YT2I='P[5Q^X)5H]'2/IJPEJK(Q2ALK??2D,!MO]+4
    1360 M-<;HK:U:BI0WSDMWN=1^+HN3U5L3K4R$?=2N--*=5.6XR]RHH\U-E@GU0)@3
    1361 M]TMB8`GJ5I\0>+X=O8]1VB:3\2EJ;U/+N&`(Y#3*Y&;I-'D?QT@.DMMEY#8?
    1362 MG(M;NV2./VAC8G(Q7<+1*C/1Q'_.K:/ZW*A<R&TKZ63BN2)E0#TEMULE19HX
    1363 M!I=:PB5#U,I*G38WS0XA:#MM/I>6().=XF9$;EAU8)X\.J?)$Z5!:9U"7>Z,
    1364 MS>VS@PHFV.3@ZY4;:#FCX^12G5Q"2Q1'G9%KY$:4N>3$<TGB\Q1.N7XC+S'*
    1365 M6R556CF/COQ,Y18X`HU63,!7?4].8;Q+%7!!D9_8BU6@86(+*Z[>4VAXE>2-
    1366 M"-"K*4AS;7Z@%)"LPE<#^:W>?)S/L[H:1XYNYZU/0<K2H0\4C].4E4/O':_V
    1367 MY,4KY5WM53:NG(:1'"V_-`Z4#%P@*CJ92B6<0I2>0DR]29G`<W_1H1H'!N-^
    1368 MHO`Z#CHZRR^7\#^2'<91F2U%T8*QG\8X!5O"_UCJX$Q"*T7R\E!2P5&6;7YS
    1369 M85I/]K1JU9L9/9U;2BA3B7TZ#]/(=I3`H5/2,UIBOU9EQ.#>RXT<7W2CBBJ$
    1370 M<=J"GZJF<(NCK\%/1<'&&F1&BM1D*-N$&OQ-/914!LI^$YMY2P145523VCS-
    1371 MI\HIS7`OI?CB7HHC17@*?JY$C<&Z'/RZJ8%SB3)A#":67*#E!11TDVO2`?<]
    1372 M&8KS3I,0^%Y*$UZ;K4_M@QHXPK6A0)`[M@S!:LJZH'/&\J4LDD'BEL.XQ%MR
    1373 M"9?3`QF\I]C7JN:'U@=2I%NZH<D6_!I/1M9MON!"0S'E?),RI-"/2OFQ9(I6
    1374 MG@/=:Z>,VO(:XW-PC":G#O8Y'E[2:)G<W3(&[SC8K04ZE19A7C]J$C%V<T6S
    1375 MO6X:)QK"2A:QXL+1>+]E,K:VE423THQ4%FC@,267N%J5XGA7-%Y&LPT?.MU!
    1376 MH1(]CW-;1N$R.]%<-&X9C`HBU93'I57B9_(ZAI)7?%.38M^BV]WD2VKQK$D3
    1377 M`J>VM,7^[)V3J)#D(X;Q);\$?H6FS#EMV:FI@F->6Q]EAK%RP`X4-<91IESR
    1378 M.:'JP,[$V<4X0\.+Q.R1Y]D4ZF28'+-<0O/N:$.)V6,9=I5*06]TF6D8>07-
    1379 M3VP)7BX(P9$#E8#E(I*TH01LJIFF%'K*$=M6PQ,);0DW#=UT20),9@P2VSQ?
    1380 MT-%0%&P1FUJNM#:^!JP44K\9-]9X/:F)=WVHYZA':NBFYB8#E6A-=5*+\T3.
    1381 MY_LHY]*H:;:DTTA[3ESD[V/,<:O3"S1E/\G&;LLT7)VB'-@&;+[9T%S#-"%[
    1382 M:H[`WC62PRK;1+#<,U"C0JR#?2JT1*!"S34\/1MIDA5SY)H3>5[S\H0JUCE`
    1383 MLK<BJ-$T<9R+M77>F29Z4SD-T=/H2_B>5I)&=L_N7[,-M2N&J,<MH)-7N8FF
    1384 MJ+%$M$V.H6FN')LPMJV\YJ6`&4T4=ZPYA5](7-I--:=P_U!!!EN3WPXT@=&C
    1385 M+\'M3M0YO"E0K;RHIA%65Y20C*]I1*:XSN7YRYICP/(<=`MS?Z+-<4WN9GU-
    1386 M&]P'-.]@W)0$2)2RAIOLEB:8(08>&M8<.!--8V2IP%=-4>=(UF1[D]<Z?)$R
    1387 M%<W"?1WQCK(VIWN4+_$C]]$HXWV=`4L93_-='=_:RCB>>55@?8Z=]`)/`>QR
    1388 M\!O*&3&H%,^KW$##=[!;G$@)A5,[JIW4X61Z92<]C35>$@&-1;R74")$2AW'
    1389 MEMGB0^1IOLLY9@ONJLVA[`W-E;<13B>"2`N&/.@LI51[,NDX-=&1.I(6B"KX
    1390 M)CCT21T<R[3XI/&X1HK>>I;6`J$)9%I;T#QZ]#DZ3.H_3NNJ1(<Y4>=1FUS2
    1391 MJ]"&2K8F#7`T8I3PV$J=3XFM5$%)F'--#@^;WYB@&4P-C^0+FG*N#R4B<F&@
    1392 M5:WW30Q2)2,Y:QX64I30BDL%6M:-.29.'8F3A:/%IW5-L!F:C]``Y"0H?#(Y
    1393 M+=HH;DM4D;EILCW9'"2&UH[476E"=2RK))J>43<96H9R]>)W=)'FL+1"&(O;
    1394 M'>4-GJ!DV6)R3%A:K$[%P_B<UG,RW<S!4.N0*8&AM*WR])N7<K0>GW(2E@(:
    1395 M5HPW)>]*&3D5K9UL=2RIAQ9MM,QL%ETGE>DT2U>QYM_T*F."'HOOD[BE/+$M
    1396 MQ!(D1;[UP1:/TB?*DD`LI=5I;#Q*IQZC95>>BIM22,$=7./85(&.:1*[>5U5
    1397 MYXS!6P2ZNE;JYBF8*:_X-@^V@_.4S,?&?6F]/-G@INQ8]D0[90H:<*+.3I8M
    1398 M1@YBFIDI@P0R?1#'$B.2<SC>-UE*`2W35<A>5JM(2WIK0TZF1U[J4C1M&QQ2
    1399 M8&@9U^0)+J)4;4H.-5+D*;MO4]]C67"3F.SK4,1/*KL8K=C)0S8CRHMI"A-L
    1400 MF0.G>SA^0C69%/*T7,?-8"?U\"2`VLU[`\5_J*&4DK;U3C(GUQZUB=5@J90<
    1401 MRS?K:GTB+H,_3=2=C8VOD%2@%>>TY063A`*M);7/)DN=0\NDB=?-U1F*MAUE
    1402 M<N24S2MQFUZA/4\K-JL["CV.JFQ/QRG8N;2Z._*^'@6ZR@,*%Q1U7LV3:>IV
     1336M_$]_^9=__>-__\<??_BGO_JW/_[RCW_^B_VG/__XPY_^YL?YW_Y_[9U=;]Q(
     1337MEJ;O^U=P&GLA)447XSN(:OMJ@,'<#!8[<[47&LAERR64[6HX4TZ2@_[O>\Z)
     1338M8$2D4E*7U,9@%GBGIRPR2+X13YR/^$BF=&8?;DJQT='T5J]Z4*/W9CT.4_GH
     1339M;-5',TS*\D4=IOC@E92M&8T][+D]7&,/U]KCJKO87QU.C.'(&`\,X$SSN*T&
     1340MV%_3Y.CB<+FC`TL'UUH.37\QJ-WA6D4^]6$[G>34RXVC'+NB2F:5<B7E24S4
     1341M_*:FK9RJ[=3)Z2AWBK+S1<TG-2,-L%L#C-Q&HT,ZM=(&&A;SJ51GM^JLD5-=
     1342M-`-KIDM2-<WL\ZGG4UK,4(TVR''D8R?E>LJW>:E.5^18!+U0:Z'V4J_6<BS(
     1343M6LFQ5*JW2KV(JZFH355-VJ"D#3&IR2&+R8&K<>P;Q_#JM:Y<W'AOA[TY]'M]
     1344MT/W!%A_>6RD:]@=3BFTM/M1/;5F@+?*GFB10+H7MTG!V*=(EW^\=7;)<K>%Z
     1345M?;HV\;6!KO523,]2*PZN7%=CNH$N#N<7U:;<LW*?[FIOT%6^5,TRIW=QGU`/
     1346MY0_(E973_6$H)=P5W%^UA'NB/SRV27CR/R/_4Z88M4FMWIPE!M^D5N^:Q*#'
     1347MD9/#[=6GJ^]7R]7]U7QYU359PONS+.%IL)#,\"LY$675^VLSV-WMM=Y]VGW?
     1348M+72NN[Z[B#N^^)V*:0FU7:9_YYYNWGVB([G&N>2^2%.L#-N#9C</]58ZVRVD
     1349M^VF[=JUKBZ9*%\:'WOWK(][]ZW/>;6\_Z>]ZT?>#')EE[C^9[V;6?;PU=('+
     1350M]:?OR[T>N,#,O>=S?3_WM^;>/#;`!M6T4)^9)U#B?6B2FZOW5[]<W9Z:(]@S
     1351M<P17S7%#'?.>_KNET5%%O[NAKGM/X^,OW*6]4L[HW0V5N-TO=.661T%KQD`E
     1352MGDKHN:K:C'WA;.Q[<9?>EASQOJ0%K]__TM_<GK@Z.76IM1GJPOE0%\>'778Q
     1353MDP.O)V-<5&?=%?6[,JZ1#[F>/-#T*^?1F7IJN>9O,EQ'.G`].2MUU7+-E_BG
     1354MD\G%3)VU7/NJV(R:T?[#N77F-G&3N$7\25H_1WD/QBU17HE9#;_JZA]SL^B:
     1355MIOCS/@OG;B:=]F">%N-YMTVEV[:BB2)M<,&,(_<3?T1B1Z<"'4\4\H9F4G':
     1356MI:ZD:1=-0R/?%^B4)FLQ6LU7N2MM4:21J0_>3&K*/>]Z$[S?)<OXP=N)SNG4
     1357MT&D8W!2=XDS`-AJ<I7G3Q&GB>NKU.(5)K%G$*>P&Z]5(<T9NXCIX-UJ7FTBG
     1358MD[63"[F)FN:%RH>@PIA;::3$>^5L;AS-.XLXI5R:MQD=U)A;2\[21Z^#8')[
     1359M/5>I8O`Z-SE001A=\%$:'>F4+H^&:^/V!:M&HZ5]-&$M59&+4=A:[Z4A@=M^
     1360MK:EKC-%;6[44*6^<E^YRJ?U<%B>KMR9:F0C[J%UII#NIRG&7N5%'FYLL$^J!
     1361M,"?NE\3`$M2M/B'P?#MZ'Z.T32;C4]3>II9QP1#(:93)S=)I\CZ.D1PDM\O(
     1362M;3XX%[=VR1Q_T,;$Y&*ZA*-59J*)_YQ;1_6Y4;F0VU;2R<1S1<J`>DINMTJ*
     1363M-'$,+K6$2X:HE94Z;6Z:'4+0=MI\+BU!)CO%S8C<L.K`/'ET3I,G2H/2.H6Z
     1364MW!F;VV<'%4RPR<'7:S?0<D;'R:4ZN826*(XZ(]?(C2ASR8GGDL3G*9QR_48>
     1365M,<I;)55:.8^._$SE%C@"C59,P%=]3TYAO$L5<$&1G]B+5:!A8@LKKMY3:'B5
     1366MY(T(T-,4I+DV/U`*2%;AJX'\5F\^SN=978TC1[?SUJ<@9>G0!XK':<K*H?>.
     1367M5WOR\$IY5WN5C2NG821'RX_&@9*!"T1%)U.IA%.(TE.(J3<I$WCN+SI4X\!@
     1368MW$\47L=!1V?Y<0G_(]EA')794A0M&/MIC%.P)?R/I0[.)+12)"\/)14<9=GF
     1369M-Q>F]61/JU:]F='3N:6$,I78I_,PC6Q'"1PZ)3VC)?9K548,[KW<R/%%-ZJH
     1370M0ABG+?BI:@JW./H:_%04;*Q!9J1(38:R3:C!W]1#266@[#>QF;=$0%5%-:G-
     1371MTWRJG-(,]U**+^ZE.%*$I^#G2M08K,O!KYL:.)<H$\9@8LD%6AZ@H)M<DPZX
     1372M[\E0G'>:A,#W4IKPVFQ]:A_4P!&N#06"W+%E"%93U@6=,Y8O99$,$K<<QB7>
     1373MDDNXG![(X#W%OE8U/[0^D"+=T@U-MN!G/!E9M_F""PW%E/--RI!"/RKEQY(I
     1374M6GD.=*^=,FK+:XS/P3&:G#K8YWAX2:-E<G?+&+SC8+<6Z%1:A'G]J$G$V,T5
     1375MS?;<-$XTA)4L8L6%H_%^RV1L;2N))J49J2S0P&-*+G&U*L7QKFB\C&8;/G2Z
     1376M@T(E>A[GMHS"97:BN6C<,A@51*HICTNKQ,_D=0PEK_BF)L6^1;>[R9?4XEF3
     1377M)@1.;6F+_=D[)U$AR4<,XTM^"?R$ILPY;=FIJ8)C7EL?98:Q<L`.%#7&4:9<
     1378M\CFAZL#.Q-G%.$/#B\3LD>?9%.IDF!RS7$+S[FA#B=EC&7:52D%O=)EI&'F"
     1379MYB>V!"\7A.#(@4K`<A%)VE`"-M5,4PH]Y8AMJ^&)A+:$FX9NNB0!)C,&B6V>
     1380M+^AH*`JVB$TM5UH;7P-6"JG?C!MKO)[4Q+L^U'/4(S5T4W.3@4JTICJIQ7DB
     1381MY_-]E'-IU#1;TFFD/2<N\O<QYKC5Z0%-V4^RL=LR#5>G*`>V`9MO-C37,$W(
     1382MGIHCL'>-Y+#*-A$L]PS4J!#K8)\*+1&H4',-3\]&FF3%'+GF1)[7O#RABG4.
     1383MD.RM"&HT31SG8FV==Z:)WE1.0_0T^A*^IY6DD=VS^]=L0^V*(>IQ"^CD56ZB
     1384M*6HL$6V38VB:*\<FC&TKKWDI8$83Q1UK3N$'B4N[J>84[A\JR&!K\MN!)C!Z
     1385M]"6XW8DZAS<%JI6':AIA=44)R?B:1F2*ZUR>OZPY!BS/0;<P]R?:'-?D;M;7
     1386MM,%]0/,.QDU)@$0I:[C);FF"&6+@H6'-@3/1-$:6"GS5%'6.9$VV-WFMPQ<I
     1387M4]$LW-<1[RAK<[I'^1(_<A^-,M[7&;"4\33?U?&MK8SCF5<%UN?820]X"F"7
     1388M@]]0SHA!I7A>Y08:OH/=XD1**)S:4>VD#B?3*SOI::SQD@AH+.*]A!(A4NHX
     1389MMLP6'R)/\UW.,5MP5VT.96]HKKR-<#H11%HPY$%G*:7:DTG'J8F.U)&T0%3!
     1390M-\&A3^K@6*;%)XW'-5+TUK.T%@A-(-/:@N;1H\_185+_<5I7)3K,B3J/VN22
     1391M7H4V5+(U:8"C$:.$QU;J?$ILI0I*PIQK<GC8_,$$S6!J>"1?T)1S?2@1D0L#
     1392MK6J];V*0*AG)6?.PD**$5EPJT+)NS#%QZDB<+!PM/JUK@LW0?(0&("=!X9/)
     1393M:=%&<5NBBLQ-D^W)YB`QM':D[DH3JF-9)='TC+K)T#*4JQ>_HXLTAZ45PEC<
     1394M[B@?\`0ERQ:38\+28G4J'L;GM)Z3Z68.AEJ'3`D,I6V5I]^\E*/U^)23L!30
     1395ML&*\*7E7RLBI:.UDJV-)/;1HHV5FL^@ZJ4RG6;J*-?^FIXP)>BR^3^*6\L2V
     1396M$$N0%/G6!UL\2I\H2P*QE%:GL?$HG7J,EEUY*FY*(05W<(UC4P4ZIDGLYG55
     1397MG3,&;Q'HZEJIFZ=@IKSBVSS8#LY3,A\;]Z7U\F2#F[)CV1/ME"EHP(DZ.UFV
     1398M&#F(:6:F#!+(]$$<2XQ(SN%XWV0I!;1,5R%[6:TB+>FM#3F9'GFI2]&T;7!(
     1399M@:%E7),GN(A2M2DYU$B1I^R^37V/9<%-8K*O0Q$_J>QBM&(G#]F,*`_3%";8
     1400M,@=.]W#\A&HR*>1IN8Z;P4[JX4D`M9OW!HK_4$,I)6WKG61.KCUJ$ZO!4BDY
     1401MEF_6U?I$7`9_FJ@[&QM?(:E`*\YIRPLF"05:2VJ?398ZAY9)$Z^;JS,4;3O*
     1402MY,@IFU?B-CVA/4\K-JL["CV.JFQ/QRG8N;2Z._*^'@6ZR@,*%Q1U7LV3:>IV
    14031403MAY;[U5:6[>=I'J]X2%JR("VK:#&;)C&KW$!A/DU;IYW4P<%+LTL;RMI!)$*@
    14041404MV;XJIB)-Q9.4W%G2#EI.T,1BRZ'Z1%7F\)%"N\PL4M,I.C6GN=R1GI.HB7D5
    1405 MD4IHTL>JJ>NJ(@<K+="<3QUUO`H\^YRVF2`7,*5SFQMP@:8,1P-^[J=`2TA:
     1405MD4IHTL>JJ>NJ(@<K+="<3QUUO`X\^YRVF2`7,*5SFQMP@:8,1P-^[J=`2TA:
    14061406MHN0%$!<4=5F>CX08LNU3!13SKD[S`\VD:%62+"T5T&1]\IP4M@)>Z5`FS#!5
    1407 MGV.5%HHV.>[Q*O+"GVX5(_(YI3D:TK<@C3SCE$F25$RGO&NVS5%D[X=F*;G2
    1408 M6&KA53EG2]Z2I@M3'YVQXR@U3)0KJ+-CFG9,`PWM'!#'*S7^7`3JFPZ*WU]_
    1409 MU5[^--JZG4^29J90TYZ_B&*@Y@3Y$@KJZW&<]4*CLS'>S0N-1I:_OM_1K$.'
    1410 MV:X#)QVZ=Z5)753\J8*5;AF-G1>S]I;_@`G?%)2=S2J[O89NHB--"\5YR8\9
    1411 M\/<NK[14I(%YUJN\":34O*Q<[\@?Z*0C.U+12@TP_.<95MNOCE8!5LV6%L11
    1412 M\^=]>:4L;3A*;%-[#:_0^>O?J60<M:=&''N:HO-=*Y=1+N-6\)81?_**+P='
    1413 M;=!'FF&Z2&W0:8>%FYKNHE:0+,_LJ(%'&IJL6DF?C$B==N2%FIY8_Z@IH01-
    1414 M\ERH)_ZZ]B,O5KW65`,?4I7447PX\7>+<V'/8^-,=5$9_^4(/J()A1E7T7::
    1415 M7WSD#>2HPKSPD>6_$,)/9C@:?^;U:&13?9$#.TV3/+7!,^KY2-VG:=JV\`%U
    1416 MK%WE@%+^T94WO^@6-^F9-V3U2.[`NY].W,%XR]:CF9Z+DS@#33<B?^2:@H"<
    1417 MH9]HB2O.8"EJLC,XDF=G&&S@ORY`)?PHBW@#!Z5X0]JP$W>@N2M_B3W[A;R2
    1418 M34_]Y-@;9)/1BC<H7@`F=^`/`(H[\$R)',CRULVHV2N/XM(VN42DN;-X!'==
    1419 M7/@V3DWL$I1QW.82FEXB+L&OY6_BE\+HK'A%;ZVVR2LF^>2P>`J-HN(4AC_G
    1420 M*MY!QB&GH(YAQV=3C\8%<0IB==P0L?#(WR-/9<90`(KYJ2$NN826SV-S&?6F
    1421 M3BX1V.G8(VB6&U81GL@X;&!^OX/]88C\-2[B(MP;Y`4]56.3.]!LRHH[*'[K
    1422 M2?Q!\0=#Y8`B._N#"\>'?_DKYYOFX1W%#^^<OGFG^'F=!\]7/?+>G>)G>$[?
    1423 MNZ.I2'W+\X),E,<C_J-J_)`4SV04CZTJOQ>S+3VH[S@[ROWCFQT_=4+7U7!,
    1424 M=^JQI]?$@7[8/H_._%OUM"!^4VMW#99_94H=3$FHJQZ/2O<K-636:N"/=BWR
    1425 MA\$7/1SK5Q$L?!O[+2V(TT>ZR*8TAR6SRR<B*0R>,$-HVDO3,NZT_(S94*97
    1426 M0^HV[AI/QSI-75(?4?'`_4A#5>X60Q>.^;V7/(?*+RH3>GF'>1WRZF<X7N7I
    1427 M9-./]2$'&M]>VX_-^\QND(1#$;^L-4/-;O%'"GGN+`YS/4CN*._:K_Z8.EN"
    1428 MAN\P_/T._`>(UI[SQ\-'5TJ;5=/^LT<@**U6]];BVB=N[<\>?*#<U+R3O[N8
    1429 M>^[_F;NREZ=*MN->M>7YS,B9J<>GY0_.'EY-.K4EOD%[]8."U3+%&E1;Z?@Y
    1430 MPY1GJ&;3%GBY@^U0'IO*Y]L=45Y"%I_+$U+Y?+N#GXG:BHHP/PN5"K/8LX\F
    1431 ME6YH)E)^>OMB&Y6^#4U6#/_\DVM_MF_;KO1M5S[VZ<VM>;IIJDF9H^44=CJW
    1432 M<F[[)KB#;5[J?L`S)!L<@]J&M%(1)?^ARG.@TH[&J_D1H'.<VOS&VN&UT^8G
    1433 MFB\M?C13Q\8UXOF`&1MS1-,^#'N67>)Y=HE-=OFS5HQ-C\4?D`=^A!5C8YJ8
    1434 M`_'*=$-'>:PT?&IZ<OH!038L38/*ON+4&&0Z>T9134T,3,TSBNZ1)[O4U'0U
    1435 M/W7QP'I30\U/-51+TJ"\](:G,S(^]S*SH8,=A?]83$E+]"*@QQ_0(TM?Q]AY
    1436 M;4VYGENO5*R;1KPHH>C1-B_]GY%0].B;-H7LBFH47[2UY;&YZ[6YY&2>0ZF[
    1437 MG=_PZ6/Y1*O&YNHLG]#BI<Y0:'5;'M'\=/*(IE9G$W"MV@GX]?"!S'7-6[6[
    1438 M#[ONXV#EU`T?^H^T4MA]DME'?:UK&O7:Z;.VI3N&Z_Y#[0T]7=O^PT=:_16#
    1439 M#M9?N_Z3Z:W_0,?4OK.O+"CM"4W;XGF'30]7+.5QP\N[R_M+^41"VW5Z/.LZ
    1440 MK=K'-7W9OKPP::W"'^`8TI8JOV'*[\7)!%I.8YF6'_.L6\F[L=OF9I_?3N1U
    1441 MT#RTJQ:MF]#C=_%>Z84^UHZ?%*^(EUZ6I[0^YFT83<M9QT]T:OGJ+W[#9%R/
    1442 M-=(668AJ[[T<A&F*,W\%&A6("*WMYSHUKW%8)RX/;*<OS:4O8$V2X'?VV#VU
    1443 MO*\XJ/(@TU`>9K&#V=[6LM)E:7$S;._-\8)1GBZB#C?;HT>^5RI=R@^<#>F]
    1444 MQ::KF[2@7SMJ#FZJ/D[K$4?U.4_=S<_;!<<KE"'P7H+F;Y.C_\G:1UG^:BO>
    1445 MG;/6S/6##+P(ZN4S.C._B>,"?WVL%-BGDH=NTI9.X^R)C\HC;N*6\H21J4[9
    1446 M6WD/[]3_3).+S&O''UV=CS=U"(("?>(_:<CGDUW3.3E>WSB=[(99_ICL\0E6
    1447 MTP2'R>,2#ZOS8&0P?7A4J1J',S]@5"+]=3"/S#6T:9S*A#]NXG:DFZ/:[,:V
    1448 MY@=,;Z79S;<FGF'H"M)\Q$[SVR$"(OL%$I+]G<P&+F3OY0VGQJ[O^#,9NCYI
    1449 MTRMYH(ENNZM/K\C6Q-K7SPCIYM-YVKXVY=5]&HZ]?M7]70-*1>N=W@)IS4=S
    1450 M.N#O&:S3"KOJ._[\/37QJ>&G^;R@MJYTS2#@O=BT=A1/^)XD;YSE]1_TJ\'&
    1451 MR8*8S`EXOY[2_0%;XW(VIY,T9LG8U:>]-MF_8$S*4F_Z-;,VGMOL*6KWST]C
    1452 M>:.8MQV6M9U3R0;VO/*W&ZV/)PS7N);;)K+45@XU:C=->]*,-EF,"2@DIF8Z
    1453 M[AI3NQ^0.,A`LUFEYHK!W]O$.]%2]Q,@C:>X)Z>PKC&>^W\ZA6T^YZ=]SA;R
    1454 M7AU_ED4>UYWE^28N.?;RIIZXT"-WU,YO/ENF_6L30T.S\A>MK501C3/MJJ@M
    1455 MIF,Z/#Y!V7B#=YL[4>!38*P4^MOZB#]!QI-!U<1ZLU>G7[U7-[3!SEM#@YG+
    1456 M'%I<:>!%WMH_9:;&0?+NV,6+8[O9&=,_8F<LQ?5J7A;:S::7+IM>/,RD)76.
    1457 MZT6\*R7EO.^=)M^4AGDNGTKDX:@^-(B-H5^]+>:;5:Q\R<!)R,LW`)AF)S#-
    1458 M\_CK,_BW;[8$ES1KFM/OLXWNID\:'\L[9VF[/ST3*N^>./FP>7H'FQ\LH8M]
    1459 M#/*`Q"*;_T%N"/D&GE='*N&G;>I+N&2*L;DG],[F4YZVJ[%W>JO$IH(I5Y+J
    1460 MK&+IR4<CCS2F)J22]%1D+9&/R<=)WN%_4!K"[E3/E@:Z$TVK;$N>RG3+L4M/
    1461 MP#9M+7K3^*!42]VFP9RDU,6FD?*TMYJ<RX"VU.+S7:[>Y4.&WNXR_>1SK=RO
    1462 M<:LUFK8W<VG4IKDWY';S4YCU7C4FPJUO2JNK\S=)XM6;JO_3EZ#-'JZ.V_1V
    1463 MVXW;/;I=5SJHV>#5\0>,2S1IHUI/MNFHZI.=.JK_J1E;;')5='6.LTCF7MM9
    1464 MSC8)Y41_.L]I=I#UC]A!?NT\I]DUUGG7^&(>>*ZPR$\:5WEZG8]7*6]F#,U^
    1465 MLG[U?O+)(-ML/P[S-FO@W:JRL<HI>C@6KUNVXT!>.1P??]>JM+'QI"D/8OQ!
    1466 M,S9=/Q%=?C1,WB6:Y3.&#6QC^.G5@]1883G%\3MN/7]&MV`[#C0>H_G#M'0H
    1467 M/Q\=BDIC&F>:POF61/HHW9_;CV@VU/7TVF1TOA^Q[4,,+]V#,,T&O1E5G0/R
    1468 MQ\_X`WW;/GE^*"'/"$^O_EP$="/V`S*)/IE#Y6KGI6\6N'-N:BI]/*>89A??
    1469 MC*ZL`F6BRSBR6Y&WE;8);^.:IMEQ-^./>$.J3&NKH2B5#/*%MU3S$Z:*32NF
    1470 M\C9&OTH*67C?@I/(4-^^,,U6O%$_8&[;M^^_#,VI3:?#^I0)5.,:RA03]"D?
    1471 M3-O`M#WKT2`TME,_8,E*?4P]/S5N13W'UGB\TU5C>M4$/\_G:DS(+&PP:1.<
    1472 M9^%-^QNKJ5=//_Q)R$\NK992U%<O2ENMZ1)/OI]X-L?HQBVTRLMOV_7\9B;]
    1473 MI)E4:7ZS@6]>O8%?NW]U/;_M]=B7>YAF&]WD;?2!^*RDG,%I?HJ5OVC#FIR%
    1474 MTK/F`S^K*ZX?J6/D@)_+:\*WV1DWK]\9YZ94-TIU5"^2RINL)(U+;6N6/D*1
    1475 M(9Y<]YAF#]SH[;WF2(:9NUYU!:O9VS:OWML^R;;SR9JNIQ%Q'NK@R5R6NX''
    1476 M&QLF3LC.>!I"@QKC4X'?;'*;O,E-LW8[J,K1V/V'[&8W$+TN$W<KI]:9:H^>
    1477 M9EC-<S\]K0ICF>W,\DQE3A11SJUR^?9)7*">RR,_0_,">=QGJ()*G*;6I\1I
    1478 M:G/X2XWHO+16R3SL#YX2>N@XS6Z]X=WZTS<23;/_;GC_/;VIV/&[59?7;\X>
    1479 MYS"\9_[;[3=YWY"_%(?WQ*_I7S6=K6\K7LB5-[PDD\\[1<XGM5"/7*@">_&5
    1480 M?#Q?*2TGDRPV:\:QVS?+?*%*9_X;##194Z&_N"8=_GL)Z8C_<J(<\%])NKCF
    1481 M+1+^@X92MBA=B\QVJ)<I'XKF1+*VUGKV=K/A??&;W[]W%[??#MWM.\+N;KN_
    1482 M<=R-^F<NN.V->5/N)L_][W+BWY+-]LO^\/FW[N*OP_#]^MNGWW_[ZV5W6].2
    1483 MC7S3F;=OE]W(EV]ONHN]7/I*;OZF^Y=WG2MU.LVWE%KYN^;X?Q7!^53RX?OG
    1484 MZU]KJ53\C^W4CW^BL5Z?-_9+<UFJ?A"G[75JR#^>V1"/R6YALU6-X,"/T8GE
    1485 MV)KIMH=_:!*ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N
     1407MGV.5%HHV.>[Q.O+"GVX5(_(YI3D:TK<@C3SCE$F25$RGO&NVS5%D[X=F*;G2
     1408M6&KA53EG2]Z2I@M3'YVQXR@U3)0KJ+-CFG9,`PWM'!#':S7^7`3JAPZ*/U]_
     1409MU5[^--JZG4^29J90TYY_$<5`S0GR2RBHK\=QU@N-SL9X-R\T&EG^]?V.9ATZ
     1410MS'8=..G0O2M-ZJ+B;Q6L=,MH[+R8M;?\!TSXIJ#L;%;9[35T$QUI6BC.2W[-
     1411M@'_O\DI+11J89[W*AT!*S<O*]8[\A4XZLB,5K=0`PW^>8;7]ZF@58-5L:4$<
     1412M-7_?EU?*TH:CQ#:UU_`*G7_].Y6,H_;4B&-/4W2^:^4RRF7<"MXRXF]>\>7@
     1413MJ`WZ2#-,%ZD-.NVP<%/37=0*DN69'37P2$.352OIDQ&ITXZ\4-,3ZQ\U)92@
     1414M29X+]<2_KOW(BU6O-=7`AU0E=10?3OR[Q;FPY[%QIKJHC/]R!!_1A,*,JV@[
     1415MS0\?>0,YJC`O?&3Y+X3PFQF.QI]Y/1K95%_DP$[3)&]M\(QZ/E+W:9JV+7Q`
     1416M'6M7.:"4?W3EPR^ZQ4UZY@U9/9([\.ZG$W<PWK+U:*;GXB3.0-.-R%^YIB`@
     1417M9^@G6N**,UB*FNP,CN39&08;^*\+4`F_RB+>P$$IWI`V[,0=:.[*O\2>_4*>
     1418M9--3/SGV!MEDM.(-BA>`R1WX"X#B#CQ3(@>RO'4S:O;*H[BT32X1:>XL'L%=
     1419M%Q>^C5,3NP1E'+>YA*9'Q"7X6?Y-_%(8G16OZ*W5-GG%)-\<%D^A452<PO#W
     1420M7,4[R#CD%-0Q[/ALZM&X($Y!K(X;(A8>^??(4YDQ%(!B?FJ(2RZAY?O87$:]
     1421MJ9-+!'8Z]@B:Y895A"<R#AN8/^]@?Q@B_QH7<1'N#?*"GJJQR1UH-F7%'11_
     1422M]"3^H/B+H7)`D9W]P87CP[_\E?--\_*.XI=W3C^\4_R^SH/WJQ[Y[$[Q.SRG
     1423MG]W15*1^Y'E!)LKC$?]1-7Y)BF<RBL=6E3^+V98>U'><'>7^\7+';YW0=34<
     1424MTYUZ[.F9.-`_ML^C,_]4/2V(+VOMKL'RKTRI@RD)==7C4>E^I8;,6@W\U:Y%
     1425M_C#XHH=C_54$"]_&?DL+XO25+K(IS6')[/*-2`J#)\P0FO;2M(P[+;]C-I3I
     1426MU9"ZC;O&T[%.4Y?41U0\<#_24)6[Q="%8_[L)<^A\D-E0B^?,*]#7OT,Q^L\
     1427MG6SZL;[D0./;:_NQ^9S9#9)P*.*7M6:HV2W^2"'/G<5AK@?)'>53^]4?4V=+
     1428MT/`=AG^_`_\!HK7G_/'PU9729M6T_^P5"$JKU;VUN/:)6_NS%Q\H-S6?Y.\N
     1429MYI[[?^:N[.6MDNVX5VUY/C-R9NKQ:?F#LX=7DTYMB6_07OVB8+5,L0;55CI^
     1430MSC#E':K9M`5>[F`[E->F\OEV1Y1'R.)S>4,JGV]W\#M16U$1YG>A4F$6>_;5
     1431MI-(-S43*3V]>;*/2MZ')BN$??W/MC_9MVY6^[<K'OKVY-4\W334I<[2<PD[G
     1432M5LYMWP1WL,VC[@>\0[+!,:AM2"L54?(?JCP'*NUHO)I?`3K'J<UOK!U>.VU^
     1433MHOG2XD<S=6Q<(YX/F+$Q1S3MR[!GV26>9Y?89)<_:L78]%C\`7G@1U@Q-J:)
     1434M.1"O33=TE,=*PZ>F)Z<?$&3#TC2H["M.C4&FLW<4U=3$P-2\H^@>>;-+34U7
     1435M\UL7#ZPW-=3\5D.U)`W*2V]X.B/C<R\S&SK84?B/Q92T1"\">OP!/;+T=8R=
     1436MU]:4Z[GU2L6Z:<2+$HH>;?/H_XR$HD??M"ED5U2C^**M+8_-7:_-)2?S'$K=
     1437M[?R&3Q_+)UHU-E=G^806+W6&0JO;\HKFAY-7-+4ZFX!KU4[`;X;W9*X;WJK=
     1438MO=]UOPQ63MWPOO^%5@J[#S+[J,^ZIE&OG3YK6[ICN.G?U][0TXWMW_]"J[]B
     1439MT,'Z&]=_,+WU[^F8VG?V*PM*>T+3MGC>8=/#%4MYW?#J_NK[E7PCH>TZ/9YU
     1440MG5;MZYJ^;%]>F+16X2]P#&E+E3\PY<_B9`(MI[%,RX]YUJWDT]AM<[//'R?R
     1441M.F@>VE6+UDWH\:=XK_1"'VO'3XI7Q$LORU-:'_,VC*;EK.,W.K7\ZB_^P&1<
     1442MCS72%EF(:N^]'(1IBC/_"C0J$!%:V\]U:E[CL$Y<'MA.7YDK7\":),&?[+%[
     1443M:OE<<5#E1::AO,QB![-]K&6ER]+B9M@^F^,%H[Q=1!UNME>/?*]4NI1?.!O2
     1444M9XM-5S=I0;]VU!S<5'V<UB..ZG.>NIO?MPN.5RA#X+T$S;]-COY/UC[*\J^V
     1445MXMTY:\U<O\C`BZ!>OJ,S\X<X+O"OCY4"^U3RT$W:TFF</?%1><5-W%+>,#+5
     1446M*7LKG^&=^I]I<I%Y[?BCJ_/QI@Y!4*!/_"<-^7RR:SHGQ^L;IY/=,,M?DST^
     1447MP6J:X#!Y7.)A=1Z,#*8/CRI5XW#F!XQ*I+\.YI&YAC:-4YGP]YNX'>GFJ#:[
     1448ML:WY`=-;:7;S6Q//,'0%:;YBI_GC$`&1_0()R?Y>9@,7LO=RR:FQZSO^3H:N
     1449M;]KT2EYHHMONZ]LKLC6Q]O4[0KKY=IZVKTUY=9^&8Z]?=7_?@%+1>J^W0%KS
     1450MT9P.^/<,UFF%7?4]?_^>FOC4\--\7U!;5[IF$/!>;%H[BB=\3Y(WSO+Z+_K5
     1451M8.-D04SF!+Q?3^G^#EOC<C:GDS1FR=C5I[TVV;]@3,I2E_V:61O/;?84M?O'
     1452MI[&\4<S;#LO:SJED`WM>^;<;K8\G#->XEMLFLM16#C5J-TU[THPV68P)*"2F
     1453M9CKN&E.['Y`XR$"S6:7FBL&_MXEWHJ7N)T`:3W%/3F%=8SSWWSJ%;;[GIWW.
     1454M%O)9'7^715[7G>7])BXY]O*AGKC0(W?4SF^^6Z;]:Q-#0[/R+UI;J2(:9]I5
     1455M45M,QW1X?(*R\0;O-G>BP*?`6"GTM_41?X.,)X.JB?5FKTZ_>J]N:(.=MX8&
     1456M,Y<YM+C2P(N\M7_*3(V#Y-VQBQ?'=K,SIG_$SEB*Z]6\++2;32]=-KUXF$E+
     1457MZAS7BWA72LIYWSM-OBD-\UP^E<C+47UH$!M#OWI;S#>K6/DE`R<A+[\!P#0[
     1458M@6F>Q[\^@W_Z9DMP2;.F.?T\V^AN^J3QL;QSEK;[TSNA\NF)DR^;IT^P^<42
     1459MNMC'("](+++Y'^2&D&_@>76D$G[;IC[")5.,S3VA=S:?\K1=C;W36R4V%4RY
     1460MDE1G%4MO/AIYI3$U(96DMR)KB7Q-/D[R"?^#TA!VIWJV--"=:%IE6_)4IEN.
     1461M77H#MFEKT9O&!Z5:ZC8-YB2E+C:-E+>]U>1<!K2E%I_O<O4N'S+T=I?I)Y]K
     1462MY7Z-6ZW1M+V92Z,VS;TAMYO?PJSWJC$1;GU36EV=OTD2K]Y4_9^^!&WV<'7<
     1463MIK?;;MSNT>VZTD'-!J^./V!<HDD;U7JR34=5G^S44?U/S=ABDZNBJW.<13+W
     1464MVLYRMDDH)_K3>4ZS@ZQ_Q`[R:^<YS:ZQSKO&%_/`<X5%_J5QE:?7^7B5\F;&
     1465MT.PGZU?O)Y\,LLWVXS!OLP;>K2H;JYRBAV/QNF4[#N25P_'Q3ZU*&QM/FO(@
     1466MQE\T8]/U$]'E5\/D4Z)9OF/8P#:&GUX]2(T5EE,<?^+6\W=T"[;C0.,QFK],
     1467M2X?R[Z-#46E,XTQ3.-^22%^E^V/[$<V&NIY>FXS.]R.V?8CAI7L0IMF@-Z.J
     1468M<T#^^AE_H6_;)\\O)>09X>G5GXN`;L1^0";1)W.H7.V\],T"=\Y-3:6/YQ33
     1469M[.*;T955H$QT&4=V*_*VTC;A;5S3-#ON9OP1'TB5:6TU%*6207[A+=7\A*EB
     1470MTXJI?(S1KY)"%MZWX"0RU(\O3+,5;]0/F-OV[><O0W-JT^FP/F4"U;B&,L4$
     1471M?<H'TS8P;>]Z-`B-[=0/6+)2'U//3XU;4<^Q-1[O=-687C7!S_.Y&A,R"QM,
     1472MV@3G67C3_L9JZM73#W\2\I-+JZ44]=6+TE9KNL23[R?>S3&Z<0NM\O+;=CU_
     1473MF$G_TDRJ-+_9P#>OWL"OW;^ZGC_V>NR7>YAF&]WD;?2!^*RDG,%I?HN5?]&&
     1474M-3D+I7?-!WY75UP_4L?(`;^7UX1OLS-N7K\SSDVI;I3JJ%XDE3=921J7VM8L
     1475M?80B0SRY[C'-'KC1VV?-D0PS=[WJ"E:SMVU>O;=]DFWGDS5=3R/B/-3!D[DL
     1476M=P./-S9,G)"=\32$!C7&IP*_V>0V>9.;9NUV4)6CL?L/V<UN('I=)NY63JTS
     1477MU1X]S;":]WYZ6A7&,MN9Y9W*G"BBG%OE\NV3N$`]EU=^AN8!>=UGJ()*G*;6
     1478MI\1I:G/XEQK1>6FMDGG8WWE+Z*'C-+OUAG?K3S](-,W^N^']]_2A8L>?5EW=
     1479M7)Z]SF%XS_S+W5?YW)!_*0[OB=_0?]5TMGZL>"%7+GE))M]WBIQ/:J$>N5`%
     1480M]N)K^7J^4EI.)EELUHQCM]\L\XDJG?EO,-!D387^XH9T^.\EI"/^RXERP'\E
     1481MZ>*&MTCX#QI*V:)T+3+;H5ZF?"B:$\G:6NO9Q\V&]\5O?__67=Q]/71W;PF[
     1482MN^O^PG$WZI^YX*XWYK+<39[[7^7$OR&;[9?]X>.7[N+/P_#MYNN'W[_\^:J[
     1483MJVG)1K[IS-NWRV[DRW>WW<5>+GTF-[_L_NEMYTJ=3O,MI5;^77/\?Q7!^53R
     1484M_MO'F]]JJ53\M^W4CW^@L5Z?-_93<UFJ?A"G[75JR-^>V1"/R6YALU6-X,"O
     1485MT8GEV)KIMH=_:!*ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>Z
     1486MT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0
     1487MA2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%
     1488M+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N
    14861489M=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YT
    14871490MH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A
     
    14901493MZ$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH
    14911494M0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"
    1492 M%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7
    1493 MNM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>Z
    1494 MT(4N=*$+7>A"%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*$+7>A"%[K0
    1495 MA2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*'[N.Y__.>__MN_=\:']UTYCF^[
    1496 M[[??OG3?NW>=OKR8+Y<WEY_^_O-??OJIV^VZ[Y\_?;ZY_99NV.W*JZ;WW=]_
    1497 M_[IT-^_F*]_UW7+EZ.<L/Y<K^_-V8QCSC5_*C;[<.%\9_DG_5'V!RB_X);]@
    1498 MWBU9-6OG,BUGYO3%^GWW]79_Z+ZJR^ZKIG^F7C/ONYO?OW<7M]\.W>T[>E5W
    1499 MV_VM,V8<]<]<<-L;\Z;<;=]V_UU.W%OJPOVR/WS^K;OXZS!\O_[VZ???_GK9
    1500 MW;ZI^H%O^JK>=3?7'P^_?[]=/W<7-\WU2:[KD^M?ZO6HY+HYN?Y+<]TD_5K@
    1501 MDF`M2"VHR%&JO+WI+O:B]E61-[WI_H4,74`GJ;:@3E++23V32T4?OG^^_K66
    1502 M2F7_**</J]);5:5/[7A2E1VWJ@J!'1^KRHXG5=GQ857FO"IU6I7:JBI]8]6C
    1503 M5:G3JA15]8_S2+CE2'@B0F??SZY?Z/\GP??D[;I?=#_WJ@:R[6=-90O]YDMR
    1504 M@WH0R$^I]4NKY/K9+OUL1$;2`VDV\H8/^ZT)RY^N!8A`!"(0@0A$(`(1B$`$
     1495M%[K0A2YTH0M=Z$(7NM"%+G2A"UWH0A>ZT(4N=*'[N.Z__\<__^N_=<:'=UTY
     1496MCF^Z;W=?/W7?NK>=OKJ8KY;+JP]__?E//_W4[7;=MX\?/M[>?4TW[';EJ>E=
     1497M]]??/R_=[=OYVG=]MUP[^G>6?Y=K^_-V8QCSC9_*C;[<.%\;_I?^4_4!E1_X
     1498M-3\P[Y:LFK5SF98S<_JP?M=]OML?NL_JJONLZ3]3KYEWW>WOW[J+NZ^'[NXM
     1499M/=7==7_IC!E'_3,7W/7&7):[[9ONO\J)>T-=N%_VAX]?NHL_#\.WFZ\??O_R
     1500MYZON[K+J![[ILWK;W=[\<OC]V]WZL;NX;:Y/<EV?7/]4KT<EU\W)]5^;ZR;I
     1501MUP*7!&M!:D%%CE+EW6UWL1>USXJ\Z;+[)S)T`9VDVH(Z22TG]4PN%;W_]O'F
     1502MMUHJE?VMG#ZL2F]5E3ZUXTE5=MRJ*@1V?*PJ.YY49<>'59GSJM1I56JKJO2-
     1503M58]6I4ZK4E35W\XCX8XCX8D(G7T_NWZA_S\)OB=OU_VB^[E7-9!M/VLJ6^@G
     1504M7Y(;U(-`?DJM7UHEU\]VZ6<C,I(>2+.1-WS8;TU8_G`M0`0B$($(1"`"$8A`
     1505M!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$
    15051506M(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B
    15061507M$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0
     
    15281529M$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0
    15291530M@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!
    1530 M"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@`A&(0`0B$($(
    1531 M1"`"$8A`!"(0@0A$(`(1B$`$(A"!"$0@_O^/^!__^:__]N^=U>/[KARKM]U/
    1532 M/W6'[V\[:\=2JM]VO]Y^_=I]_[D4F??=]]MO7[KO[\+EQ7RYO+G\]/=ZU;[O
    1533 M_O[[UZ6[Z=YURY7;S5>V&^A(TU&0(]/UW7QEZDO<^^[K[?[0?7UW<_WQ\/OW
    1534 MV_7SQ<V;>MV_[_94UEU\I4YYT_VM\S__I;8PO.\.G_>']-(]W73)KWVR)PWU
    1535 M1^G(09<S2V?EQ+']2H][.1L>=.+E:5?&IBNGM^78C&<=:%3I0'W>@49O'?BN
    1536 MNYBO_([L>&5WU('TF^Q.'9F.Z7<O1V]VZ3XZ7JX"73%T;/A5_5)[T9C2RUWI
    1537 MYJ[M9V//>K)[MBMGO[`?:HX+<3WN,_Y5'=6S0P;V5,,.NCSNA\;5SC/^;48W
    1538 M&8E1*%`$D^%]Z9"%$?DZ=Q+=45'(*9[FC"_EY#AC`-W&H%Y\HJ>`DQ"48'^<
    1539 M;ZI\=JS.857+FED2Z8Y-F5@W@R?.QJ16/T-IS<LI$T@+2;9C3#&N,#YA06L;
    1540 M0M<0%FO:[)1:2,65A>O$KO0SE=N'CMZ`/6=;^U+;+DUZ%A-S^G22H%5)#%3J
    1541 M4HY=2F8]RP:E"8VQ76-L5XR]H2^";D_,VSBQ>\Z\[L7F35`GO)M1GW!;UQC5
    1542 M-49UQ:A:C+J%:,I$G(&<9*UZM:5ZSGSNQ:%YXJQ&_+>:C9KBEC1"TO^?M)AK
    1543 M+.8;B_DV/+-UF-"EL\9)Y5]+Z9^SG7]%:"8SU0G`DOQ1!GS]]`CO&Q/ZQH3^
    1544 M)"YU_P!1XG#9AIOS_.J?,Z+_YXS8QITI9S0B2PR>6[&!;>P8&CL&U1SK!)Y2
    1545 MJTN^6U*024-*90GF&=#PT@%S:4</G7QR8UW2])+]]PDW#<TH&7R#%+(M=WDL
    1546 M+%FU3`1.$TN(ST%-+[6>#'XG0V,:[9]TRMA,.V-CFZ@?<4K^72+/LU/6ML;G
    1547 MK!-?/)W1R^GXWI\Z(U7NGK)-;&P3&]O$4))^DQ+G;2SLVWBC\Z;US]DHOMA&
    1548 M%:LE2FN(.JHM?;/.R!'W=+A-C1FGQHR3/AT>DD?.6_+<SD]]<GK.E-.+39D&
    1549 MN_F!09.C/CE-FQHC3HT1IV)$OS4^C][);)PZ3V&>,][T8N/YLEXL,&P9LSR9
    1550 M]]U8;>/&:ALWMNDOSSEM'J)W)2F>SKU.+>7&9RSEQA>G1'^R>CBQ&%_C.:E]
    1551 M9/0N%;H&U#>@-?!JCM]5>R4+UG8_8S$WOMABKIF(R*"6S"4F?!1#-?92C;V4
    1552 MV"O9PS4+P6T6;06EI,F3*4F>E*6QN\"HY\RGSLWW1RGS,;O)4NFI,'.J,9GR
    1553 M#Y?'3H4'R^/+]7)_>;B\N[QO%\I.Q;I07G;K;D_@!^D<ZI3='7<`E](1=<%N
    1554 MI:MR3+_Y^&[KL-V]E!VXA(]WHK4[]/(*OI*.DC8G-+IK2>=ROUSE&2!KI-?W
    1555 MK'%?6SKEEGYYUVWU[S<STI&15Z^E#BJ1HTJPT+E]T/KTFD,F2>V1\GR45:6]
    1556 M<Z+?6ER.<[WR*K[SD&J0VC,UW;6FGI4CL[NCW_M$RT>[^Y1`A%W:EFNX[^EZ
    1557 M7O)1']*_N](CO/$D/?)+ZA'JA7XMO6TR:2+?9\U%ZF/2NTR1+'-(U^CG(=U?
    1558 M:U&YEE_?W>R^['ZI%VAV_NGSS8,X^+7&@7YDAO[K'P0"$>PU-<E04_2>6K+7
    1559 M=+3<45OW_&.E:W2=2OKYP)=KO/`+-<^8J-BL>W[9RA*S7O4=#V.67J\/=_J>
    1560 MK^Q92*K2>W[98LB0=,1U:/)$NI%OZY?UOEG!\DLX5/?D%WJ5%^[-0><*EX,M
    1561 MU='E`]=*]_`9_927F'OADFKD%\O0]=4<^)4DQ>VY9TBZ2-U`SD%-H9_WG,#O
    1562 MN'7\8T^.<<\9@@#()YZ843E=5RY.N[,LP9N"/_W4W7S__;?N?[_M_NOVM]\^
    1563 M?__M^MNW[O[VNOMZ^V%/*>3NZ_7WX=/G^\]?R\MH6$C)I7O747I9+@\G247'
    1564 M=ON2O#YVO6QCDO_S$?WV]/MP%:3<;U?E-T>)+4=T?U&=WJ9">:E)M\BQ+C6;
    1565 M<?/)QU,S[QJ^:!!BV_:'-BT?/#L'&>.0]K'%_'3.IVRB`U_F(M,?9,Q=#K*Z
    1566 A/.C'$SEO51[VA_^S/UP?[O87-$?X7W_YOP/G&G>HX0@`
     1531M"$0@`A&(0`0B$($(1"`"$8A`!"(0@0A$(`+Q_W_$?_^/?_[7?^NL'M]UY5B]
     1532MZ7[ZJ3M\>]-9.Y92_:;[[>[SY^[;SZ7(O.N^W7W]U'U[&ZXNYJOE\NK#7^M5
     1533M^Z[[Z^^?E^ZV>]LMUVXW7]MNH"--1T&.3-=W\[6IC[AWW>>[_:'[_/;VYI?#
     1534M[]_NUH\7MY?UNG_7[:FLN_A,G7+9_:7S/_^IMC"\ZPX?]X?TZ)YNNN)GG^Q)
     1535M0_U1.G+0Y<S263EQ;+_2XU[.A@>=>'7:E;'IRNE-.3;C60<:53I0GW>@T5L'
     1536MONTNYFN_(SM>VQUU(/TDNU-'IF/ZV<O1Y2[=1\?+=:`KAHX-/]4OM1>-*;W<
     1537ME6[NVGXV]JPGNV>[<O8+^Z'FN!#7XS[C']51/3MD8$\U[*#+XWYH7.T\X]]D
     1538M=).1&(4"13`9WI<.61B1KW,GT1T5A9SB:<[X4DZ.,P;0;0SJQ2=Z"C@)00GV
     1539MQ_FFRF?'ZAQ6M:R9)9'NV)2)=3-XXFQ,:O4SE-:\G#*!M)!D.\84XPKC$Q:T
     1540MMB%T#6&QILU.J8547%FX3NQ*_Z9R^]#1&[#G;&M?:MNE2<]B8DZ?3A*T*HF!
     1541M2EW*L4O)K&?9H#2A,;9KC.V*L3?T1=#MB7D;)W;/F=>]V+P)ZH1W,^H3;NL:
     1542MH[K&J*X858M1MQ!-F8@SD).L5:^V5,^9S[TX-$^<U8C_5K-14]R21DCZ_R<M
     1543MYAJ+^<9BO@W/;!TF=.FL<5+YKZ7TS]G.OR(TDYGJ!&!)_B@#OGYZA/>-"7UC
     1544M0G\2E[I_@"AQN&S#S7E^]<\9T?]C1FSCSI0S&I$E!L^MV,`V=@R-'8-JCG4"
     1545M3ZG5)=\M*<BD(:6R!/,,:'CI@+FTHX=./KFQ+FEZR?[[A)N&9I0,OD$*V9:[
     1546M/!:6K%HF`J>))<3GH*:76D\&OY.A,8WV3SIE;*:=L;%-U(\X)?\LD>?9*6M;
     1547MXW/6B2^>SNCE='SO3YV1*G=/V28VMHF-;6(H2;])B?,V%O9MO-%YT_KG;!1?
     1548M;*.*U1*E-40=U9:^66?DB'LZW*;&C%-CQDF?#@_)(^<M>6[GISXY/6?*Z<6F
     1549M3(/=_,"@R5&?G*9-C1&GQHA3,:+?&I]'[V0V3IVG,,\9;WJQ\7Q9+Q88MHQ9
     1550MGLS[;JRV<6.UC1O;])?GG#8/T;N2%$_G7J>6<N,SEG+CBU.B/UD]G%B,K_&<
     1551MU#XR>I<*70/J&]`:>#7'[ZJ]D@5KNY^QF!M?;#'73$1D4$OF$A,^BJ$:>ZG&
     1552M7DKLE>SAFH7@-HNV@E+2Y,F4)$_*TMA=8-1SYE/GYOM[*?,QN\E2Z:DP<ZHQ
     1553MF?(/E\=.A0?+XZOU:G]UN+J_^MXNE)V*=:&\[-;=GL`/TCG4*;M[[@`NI2/J
     1554M@MU*5^68?O+Q_=9AN^]2=N`2/MZ)UN[0RQ-\)1TE;4YH=->2SN5^N<HS0-9(
     1555MS_>L\;VV=,HM_?2VV^K?;V:D(R-/KZ4.*I&C2K#0N7W0^O3,(9.D]DAY/LJJ
     1556MTMXYT6\M+L>Y7GF*[SRD&J3V3$UWK:EGY<CL[NGG/M'RT>Y[2B#"+FW+-7SO
     1557MZ7I>\E$?TG_WI4=XXTEZY-?4(]0+_5IZVV321+[/FHO4QZ3WF2)9YI"NT;^'
     1558M='^M1>5:?GM[N_NT^[5>H-GYAX^W#^+@MQH'^I$9^F]_)Q"(8*^I28::HO?4
     1559MDKVFH^6>VKKG?U:Z1M>II)\/?+G&"S^H><9$Q6;=\V,K2\QZU?<\C%EZ7A_N
     1560M]7>^LF<AJ4KO^;'%D"'IB.O0Y(ET(]_6+^OW9@7+CW"H[LDO]"H/[LU!YPJ7
     1561M@RW5T>4#UTKW\!G]*X^8[\(EU<@/EJ'KJSGPDR3%[?G.D'21NH&<@YI"_W[G
     1562M!'[/K>-_]N08WSE#$`#YQ!,S*J?KRL5I=Y8E>%/PIY^ZVV^_?^G^]YON_]Y]
     1563M^?+QVY>;KU^[[W<WW>>[]WM*(?>?;[X-'SY^__BY/$;#0DHNW=N.TLMR=3A)
     1564M*CJVVY?D];'K91N3_)^/Z*>GGX?K(.5^NRH_.4IL.:+[B^KT)A7*HR;=(L>Z
     1565MU&S&S2<?3\V\:_BB08AMVQ_:M'SP[!QDC$/:QQ;STSF?LHD.?)F+3'^0,7<Y
     1566MR.KRH!]/Y+Q568Y-W3Z.NI3:W-W_Q^^I0R^,'D=SM;\\V_9TO`7XY>ZK]#W=
     1567MN/>#4I.R>]>;R>F]'9PUT]X,BCISW&OZ:8W:]\KYT3>=Y+/Y_L60RBS+_HMA
     1568M/]#DAD:DB_V@Z6#9BA8NXHG/G'_*E48MG)GDXE],<_V1A:Y<?W8;GZLH-KD(
     1569M)NB]&Y3V(1(E_>N84H]V(DI/F-146KI';B4_G![H\P-]>J#/#_3R0,\/A,L2
     1570M_"]Y*-7RQUOU5/@V6Y[.GNV!.UOWP$^=XFH]<0O>XLQN\?:U3L$[H7FB,$M=
     1571MY!7RXX(>B&KBCAF5&4E/&5H<D^`4)TZ70<=QWP>O]"4E-'ZFBE)Z>A"HS]A\
     1572G35:O?25B1:N9$/&&Z6%_^,_]X>9PO[^@>??_^M/_`\AX2%G\Y`@`
    15671573`
    15681574end
  • Tst/Short/factorizep_s.stat

    r8e48d49 rb8f8ea  
    1 1 >> tst_memory_0 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:154684
    2 1 >> tst_memory_1 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:2215700
    3 1 >> tst_memory_2 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:2256672
    4 1 >> tst_timer :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:279
    5 2 >> tst_memory_0 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:3881384
    6 2 >> tst_memory_1 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:9900032
    7 2 >> tst_memory_2 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:11997184
    8 2 >> tst_timer_1 :: 1363959468:3160:3-1-6:ix86-Linux:mamawutz:11946
     11 >> tst_memory_0 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:154568
     21 >> tst_memory_1 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:2265088
     31 >> tst_memory_2 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:2265088
     41 >> tst_timer :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:277
     52 >> tst_memory_0 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:4014064
     62 >> tst_memory_1 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:9842688
     72 >> tst_memory_2 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:12226560
     82 >> tst_timer_1 :: 1365414242:3160:3-1-6:ix86-Linux:mamawutz:11916
  • Tst/Short/factorizep_s.tst

    r8e48d49 rb8f8ea  
    488488def l=factorize (f);
    489489testfactors (l, f);
     490
     491// tr. 482
     492ring R6s = (32003,s),(x,y),dp;
     493minpoly = (s6-11914s5+3952s4-5439s3-15290s2-15431s+15606);
     494poly G3 = x3+y3+(-s-1)*x2+(s-2)*xy+(-s-1)*y2+(s+1)*x+(s+1)*y+(-s);
     495def l=factorize(G3);
     496testfactors (l, G3);
     497
     498kill r;
     499ring r=(32003,s),(x,y,z),dp;
     500minpoly=(s6-11914s5+3952s4-5439s3-15290s2-15431s+15606);
     501poly f=x32003+y32003+(-15819s5+10130s4-13478s3-9892s2+7280s+7612)+z32003;
     502factorize (f);
     503
    490504tst_status(1);$
  • factory/cf_gcd_smallp.cc

    r8e48d49 rb8f8ea  
    383383  int p= getCharacteristic ();
    384384  int d= degree (mipo);
    385   int bound= ipower (p, d);
     385  double bound= pow ((double) p, (double) d);
    386386  do
    387387  {
     
    436436  CanonicalForm newMipo= convertNTLzzpX2CF (NTLIrredpoly, Variable (1));
    437437  return rootOf (newMipo);
    438 }
    439 
    440 /// chooses a suitable extension of \f$ F_{p}(\alpha ) \f$
    441 /// we do not extend \f$ F_{p}(\alpha ) \f$ itself but extend \f$ F_{p} \f$ ,
    442 /// s.t. \f$ F_{p}(\alpha ) \subset F_{p}(\beta ) \f$
    443 static inline
    444 void choose_extension (const int& d, const int& num_vars, Variable& beta)
    445 {
    446   int p= getCharacteristic();
    447   if (p != fac_NTL_char)
    448   {
    449     fac_NTL_char= p;
    450     zz_p::init (p);
    451   }
    452   zz_pX NTLirredpoly;
    453   //TODO: replace d by max_{i} (deg_x{i}(f))
    454   int i= (int) (log ((double) ipower (d + 1, num_vars))/log ((double) p));
    455   int m= degree (getMipo (beta));
    456   if (i <= 1)
    457     i= 2;
    458   BuildIrred (NTLirredpoly, i*m);
    459   CanonicalForm mipo= convertNTLzzpX2CF (NTLirredpoly, Variable(1));
    460   beta= rootOf (mipo);
    461438}
    462439
     
    22532230  GFRandom genGF;
    22542231  int p= getCharacteristic ();
    2255   int bound;
     2232  double bound;
    22562233  if (alpha != Variable (1))
    22572234  {
    2258     bound= ipower (p, degree (getMipo(alpha)));
    2259     bound= ipower (bound, k);
     2235    bound= pow ((double) p, (double) degree (getMipo(alpha)));
     2236    bound= pow (bound, (double) k);
    22602237  }
    22612238  else if (GF)
    22622239  {
    2263     bound= ipower (p, getGFDegree());
    2264     bound= ipower (bound, k);
     2240    bound= pow ((double) p, (double) getGFDegree());
     2241    bound= pow ((double) bound, (double) k);
    22652242  }
    22662243  else
    2267     bound= ipower (p, k);
     2244    bound= pow ((double) p, (double) k);
    22682245
    22692246  CanonicalForm random;
  • factory/facFqBivar.cc

    r8e48d49 rb8f8ea  
    9494    mipo= getMipo (alpha);
    9595    int d= degree (mipo);
    96     bound= ipower (p, d);
     96    bound= pow ((double) p, (double) d);
    9797  }
    9898  else if (GF)
  • factory/facFqBivarUtil.cc

    r8e48d49 rb8f8ea  
    468468  for (CFIterator i= logDeriv; i.hasTerms() && !logDeriv.isZero(); i++)
    469469  {
    470     for (ii= i.coeff(); ii.hasTerms(); ii++)
    471       result[ii.exp()] += ii.coeff()*power (x,i.exp());
     470    if (i.coeff().inCoeffDomain())
     471      result[0] += i.coeff()*power (x,i.exp());
     472    else
     473    {
     474      for (ii= i.coeff(); ii.hasTerms(); ii++)
     475        result[ii.exp()] += ii.coeff()*power (x,i.exp());
     476    }
    472477  }
    473478  Q= q;
     
    541546  for (CFIterator i= logDeriv; i.hasTerms() && !logDeriv.isZero(); i++)
    542547  {
    543     for (ii= i.coeff(); ii.hasTerms(); ii++)
    544       result[ii.exp()] += ii.coeff()*power (x,i.exp());
     548    if (i.coeff().inCoeffDomain())
     549      result[0] += i.coeff()*power (x,i.exp());
     550    else
     551    {
     552      for (ii= i.coeff(); ii.hasTerms(); ii++)
     553        result[ii.exp()] += ii.coeff()*power (x,i.exp());
     554    }
    545555  }
    546556  Q= q;
  • factory/facFqSquarefree.cc

    r8e48d49 rb8f8ea  
    2424#include "facFqSquarefree.h"
    2525
     26#ifdef HAVE_NTL
     27#include "NTLconvert.h"
     28#endif
     29
    2630static inline
    2731CanonicalForm
     
    4347  }
    4448}
     49
     50#ifdef HAVE_NTL
     51CanonicalForm
     52pthRoot (const CanonicalForm & F, const ZZ& q, const Variable& alpha)
     53{
     54  CanonicalForm A= F;
     55  int p= getCharacteristic ();
     56  if (A.inCoeffDomain())
     57  {
     58    zz_p::init (p);
     59    zz_pX NTLMipo= convertFacCF2NTLzzpX (getMipo (alpha));
     60    zz_pE::init (NTLMipo);
     61    zz_pX NTLA= convertFacCF2NTLzzpX (A);
     62    zz_pE NTLA2= to_zz_pE (NTLA);
     63    power (NTLA2, NTLA2, q/p);
     64    A= convertNTLzzpE2CF (NTLA2, alpha);
     65    return A;
     66  }
     67  else
     68  {
     69    CanonicalForm buf= 0;
     70    for (CFIterator i= A; i.hasTerms(); i++)
     71      buf= buf + power(A.mvar(), i.exp()/p)*pthRoot (i.coeff(), q, alpha);
     72    return buf;
     73  }
     74}
     75#endif
    4576
    4677CanonicalForm
     
    157188    return CFFList (CFFactor (F/Lc(F), 1));
    158189
    159   CanonicalForm buffer= pthRoot (A, ipower (p, k));
     190  CanonicalForm buffer;
     191#ifdef HAVE_NTL
     192  if (alpha.level() == 1)
     193#endif
     194    buffer= pthRoot (A, ipower (p, k));
     195#ifdef HAVE_NTL
     196  else
     197  {
     198    ZZ q;
     199    power (q, p, k);
     200    buffer= pthRoot (A, q, alpha);
     201  }
     202#endif
    160203
    161204  tmp1= squarefreeFactorization (buffer, alpha);
Note: See TracChangeset for help on using the changeset viewer.