Changeset 3bfbc7 in git
- Timestamp:
- Dec 13, 2012, 5:16:28 PM (10 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'cdfcdb8287f66bc6070028082cbbc6eff10e609b')
- Children:
- f51a5bd5a84a0bdc21e8b4b7357a3d1f43bae4e6
- Parents:
- 3772383383757f92bd98a13b15a06d71b41043bbc47a863526a09908b859ec56712e7ecb729f43c8
- Files:
-
- 1 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
.gdbinit
rc47a86 r3bfbc7 1 1 break dErrorBreak 2 break dReportError3 2 break omReportError 4 3 … … 22 21 end 23 22 24 run25 backtrace -
Tst/Long/factorizeQa_l.res.gz.uu
r3772383 r3bfbc7 1 1 begin 644 factorizeQa_l.res.gz 2 M'XL("+*]>4\``V9A8W1O<FEZ95%A7VPN<F5S`.U82VLC1Q"^^U<,2PZ21F-U 3 MO?J1C7P(N01"(&QNB[THR]H(%'NQ%:))R'_/5SW2C+V[@4"R)`=;6--=7=5= 4 MCZ^^:?3JQV^^_;YI&KIHOOOVZ^;%_F%_OMO^].+EV:OC"E\T$+[9WF[WL_G+ 5 M,W\V%Q?-]>;M_NY^^]N['S9O=N>W[WX]?]AO]J.57#3C6,^;]_=W;YO]NX?] 6 M8/;0S';;AWVS6S;O[W9]<ST?E>V\^7V<Q'-\58V;=4.33]GEUW?WS6Q[NV^V 7 MOM9LFZ_6S0,<PMZOZ7(.2=N.^U)PDW%G8I\VONW-HNJ_WEY>[5ZS/^?C0:2N 8 M]L<XK?[<-.MU<SWI5&=VXYQQTFC!-.6!<>;]]O:FN5_/PG(S7\X.RWZ^W+V? 9 M3)&UG[>W'C!""B$L-KG=6,LBBTT[Q<_Z:%<D;,CEM!POQJ3-.@HQ)EI)*J'^ 10 M^7Z:347E*-QH^T1I(]T'&B[\:*/Y8G;0/K4S2CFQ0B)%U)^K4LHF=2FF8):* 11 MQ7P2QE:X<,A:XDEDK=N'DA-Q@GT5*HQC*48&XRJ1R;+.N2,E+L1UUFKD6*)A 12 MIY("ZXJ(YNY@[+F==<S8)-*&YXN#];F=<;&2(ENF@/_!9ZRG#CX$SBJQF-%) 13 M'%M3HQR5-9UDUA;3F&-TW:(K(3CMUI2E:(1U59-JJB(P'5SH4,V2S4J=MLRL 14 M5BQI5"*H8B,XJ>ZDAW)RK,6DCE"K;#C%)U51.OCEL\5!>FF]X(.-S%WBX2>3 15 M,7SI7241O'^TN>0QUN/B\3"L#)MU4(_&F8\'=UFJ#XN>/<]M/[]B/+D[]"U$ 16 MF/17MCA<49APF1[!%EVS6T\LTLQNT+%/&6()T1F=H3F_/$.+O<%@_3GQ/!S" 17 ME^O_-ZP'-P5N/H/[\X-[R+8BVVT_C`WC(\P'0;Q<'Y<2ELZ`H(I76OJ'\;$E 18 MA1'X96H"P:MB>/^!J%-:47!/JY=%R:<;ZP:YI^8D=!UN)WWO/Z(^.A8@+&P0 19 MIFE\!'QL(X"%L`:9]\TC#12X+C\QX990[1RX)'FZTCY5KEQ+Q0O;H=(<$JJH 20 MDI.A`%H"1<K!9[%C"@"5CZTK)):+9`(T/$1!*Y2L0%-&42AFAS+&B)99,/"F 21 M525+*2F%M%(4BW)/.!?'(NK6TLHJ`PAGPG!0*.Z7K+BZ@]IR3=N!4D^^9$%# 22 MB@$)=@6F*$HQNK>%LP5W%<#+`7P`?ZNU8A^.643J%-X.R.6A.`"TC]`/FM%! 23 M)H&EBH93%8<B"Z@@ZN`B=>3FHV?))0/>47$X[6BGT!,DR.1*!^>#:P"EHTVI 24 M)F"Z$B,S(=,X%P$)2$>02Y:H'A3RIQG];M$C@WXN.0KR9^@EJL$E056RQ92X 25 M'`.$0E&Q0G(,$L4#)H_G=QAE)(LRX;`$JE6/%;6Q=A8E:X1Y8-"F>8&UD%6, 26 M:@!/!@`B&O9&XAVH1*@&4`1FCH!80@K`IYQP`@=Q(P8O)E@-OH"<G*B\0`05 27 MSA)BQ8&T(#4P?-2JS@@&![`7'/J`;Q`05(T94,\IDG%B@2N20-LQ9*H9\4@Z 28 M2;6"BT-RG%-2CMC36RUI*A+J:X!"I?YA;4CFL%S'3O=41]QJ0(R2J#:RGQ`= 29 M%C6;7C0>D.4V1QE7'938*8]/34W)5,MI#NA-BU4?',EV+%GE5``>78>W3$8B 30 M`964M?(%&3!BH/(LS!8K8<1`(!WHH$%J7)XS!IW')*7PRA`=:FNH">)`1%KA 31 MVE*T(&;!"^D2[E+PHN"-ZM,6;[P$OT'&N:"3\:IQ0[A7X:(Z9`N8[LM?W"X. 32 MN%W@AC%>+N3135OXP\O%]<>7B^M/7"[^`0=/EX?_FHJG^\$S(3\3\C,A/Q/R 33 MOTO(?^]&?!AOQ/TG;\0VDO6CGXI$S^N/3?Y3TB\/,P)K?W'V)ZS8X"RC$@`` 2 M'XL("$.-R%```V9A8W1O<FEZ95%A7VPN<F5S`.U966\<QQ%^[U\Q8!)@=V>' 3 MVW7T99IZ,/)@PT&,P'XS1&,ED\P"#"60*Y!KP_\]7W7/S)*^X"`1H@=)D':F 4 MIZKK^NKHF:^_^>L7?^^ZCEYT?_OBL^YD?[\_O=F].CES7X]/^$6'Q>]VM[O] 5 M8GGF[+=[\:*[VK[>O[G;_7#YC^UW-Z>WEP^G]_OM?N:2%]U\K:?=V[LWK[O] 6 MY?V^L=UWBYO=_;Z[67=OW]P<NJOE3!Q.NQ_GFWB*_RK%]7E'1YVRK5^]N>L6 7 MN]M]M[-GW:[[]+R[AT+8^UMZN<1*W\_[DC>6>6=BN^ULV^M5I?]V]_+BYENV 8 MW^4LB-3(?IIOJS[7W?EY=W6DJ<K<S/<,23,'T]$/#)EWN]OK[NY\X=?;Y7KQ 9 MN#XLUS=OCZSPVK]VMV8P3/+>K[:YWX:>15;;_F@_ZY-=X;#FR^/C^&)VVF(@ 10 M'V.BC:3BZQ_;3W-041D7M]H_(]K*\#,*6_S%1LO5XE$/J5]0RHD5*U)$[7=3 11 M2MFF(<7D0T@EQ#PMQEZXL,]:XK04>N/W)2?B!/ZZJ&".I00*8*XK<N2L]SR0 12 M$A?B>M=KY%ABP$XE>=8-$2U-P7C@?C$P8Y-(6UZN'L,A]PLNH:3((9/'OZ8S 13 MGJ<!.GC.*K&$0--R[(,&RE%9T[06^A(TYAB-MNA&"$H;-V4I&L%=R:2RJ@A8 14 MFPH#HEER"*7>]LRLH82D48E`BHV@I)J29LJD6(^;>H58Y0`I=E,)98!>=K=Z 15 ME(/T%O#&(TM;,?-3D-E\.1A)(FC_9'/)LZWCPU$8GK3-!I#'P)E'P4.6JL/J 16 MP.;G_K"\8/SR\'CHL82;PT58/5Z0/^(R/8$MLN;F_%A%NL4U,O9YA5ACR9%# 17 M<G[BD&+?X>+\?>*Y">&7YQ\VK)N:`C4_@OO]@[MY6^'M_M"N`ZY'F+>%^/)\ 18 M?)3PR`%!%:^TMK^,OV%-?@9^.2:!H%6T_H="G=*&O&E:M2Q*=KL-0ULWUTR+ 19 M1L/]D=[RC^@0#0M8+!RPF([7(^!C'P$LF-76+&^>4"#`]?$S%NX)T<Z>2Y+G 20 M3_KGQ+764K'`#H@T^X0HJN04$``MGB)E;W=Q8/(`E5V'H9"$7"03H&$F"E*A 21 M9`6:,H)",1N4<0UKF047EK2J%%)*2CYM%,&B?"#(A5A8W8>T";4""&?"92,H 22 MII=LN*J#V')UVR.E`]FCX-6GZ.%@(V"*HA2C:5LX!V^J`GC9HQY`W\JMV(=C 23 M%I%Z"VT;<KD%!X"V*^2#9F10$,]2EYI4A5!X`1%$'&Q)#;EYU"S92L,[(@ZE 24 M#>WD#X05>'*C37EO%$#IS%,J"RI=B9&9X&G(A4&"HB/P)4M4,PK^TXQ\#]$L 25 M`WTN.0K\%Y!+5(U+@JCD$%/B,AH(@J(2"LEH)(('3([R!UQE.(LR05A"J56S 26 M%;$)_2)*U@AVSRB;P0*LA4+%J'K420]`Q("]X7@#*A&B`12A,D=`+,$%J*>< 27 M((&]&!.C+B9P-5U0G*Q068`())S%QXH#Z5'44.&C5G*&,1#`%G#0`[Y>4*"J 28 MS8!Z3I$")Q:H(@EE._I,U2-FR2"I1G#UF`SGE)0C]K142YJ*^-H&R-?2WYXU 29 M9[;']=K*/=4K[M7#1DE4$]DD1(-%]:8%C1NRC&=<XTJ#$%O)XRFI*075,MT# 30 M>L>'E1XUDL,8LEI3`7AD';I,AB,!E92UU@L*P$A`*<_"'&(M&-$3B@YHD"#5 31 M+O,9HYS')*7P)L`ZQ#8@)K`#%FF%:T\Q>`G!6R!MA8?D+2CHJ';;H^,EZ(UB 32 MG`LR&:W&&*%>A8MJ\Q8P?2B_,5T\8KK`A#$/%_)DTA;^^7!Q]<OAXNI7AHO_ 33 MH@8?AX?_=RD^S@<?"_+'@ORQ('\LR/_;@OS')N+'>2(^_.I$'.9B_>15D>AI 34 MM]GL[TZ[/^'DT[TZ=-=O[GZXO)F?A^D5R@-)AZ'9KQ^6Z\4WZ_HFY?NW9\>= 35 MXOPJQ>@>+G1XN)">5P\7"/3JH9?C6QYY<BZ5/([DG]]>O@/GO%Y..QQF93A< 36 M6-(/,:QL/[C3=AS@OM4#`A:7JV_LT$M(L4J!BEI%HO9"*(J/$1PJP2#E^1YB 37 M>N%NW,,#5_G9'N)-\>+'/;SID>LF*.*I$=EARU2)J,:@JYVR%EL[M6ZD2L1Y 38 M3=HU$B][K==#3CDWCD/C",B=2H_ZZV.EQD$VV?:H]R5/V]<>$U%.&C'Z877S 39 M`.`67`UJR)QVKL0*I#7BZ,-(C/,Y/#8(X]`Z[9RJ&CZ,.VO.(S&:3[*=45/] 40 MM#.(Q6><>*M#P"4Y5Y?4>FKNST"\U,VE;:[H']S\)TG\B(YB7=",#.@5(WG= 41 M7@/C#%SIB0KZ<74A3KD%R6$N1"O$D7\2@"D@9+BZ10@%T4[ZC2/@B&QA'ZQK 42 MSR+:V(`2%YM.;&\**D."!Z,Y7A!&'*8G$<A-&(7FTD1@-D!7J1Q8!"0,,!RA 43 M`TTR@O4P05W'Q-'0@`,QFKCH"`BU'H468+>`'/(0$35N;?)"!$5I&J*-`!G- 44 MR\5;B:D"4;\*1HS&U$3"\V@L51[J"\:1*JN^Z\CF.<4,XM-L%^HN&DY4:78! 45 MY7$,IB`+4`ZK75&2G^P"!V,X0OUN.</V\D*U,6$TB5XH&P80(X!@M@A\Z#!0 46 M/K;40-Y`J:8=^I^@*X/+:K(-29-)X()GLO6DAK:,OH..UO+4HYFA:"-T?2%B 47 M>#M/XE`[X-`$F%9Q"9Y4/^5_LEYJ'H09A=%3)W%6<=!?,9:AB4U)7'P@ME<Q 48 M+6Y`%\S5S#6916"'<$NET`0/13/DQ18&9"RBCI;>A&/^0Q>Q-`'N`FPEU<9; 49 MQ6/6((Q6#?QX*`EZ-VL9M0":<(4+>BP2:;+66IT-+DE'I"'?I9INU<'G6.LF 50 M'%8PM?#17GNO@]RV\<9/,*TSFY<R%2ZT670YFV&:P;`?C8\G>VT+LA5S1"L? 51 MF'%*P.35Q$LQ5$08,22,1QBV.$\&@SEBTJJQ-RP%A`.MN158&['$0(\]?$F4 52 M=307!0*4F$JGT(*R(0G566R.@:T8]"!UPI\-F?;>"0GG1Q=YCXF-&R2@/NBA 53 MG,&]0!W,9&FTL-H7\1Q@:O9!+5^J1\T^0"P`H+4L819`$0RC<PX&>0"%T.HQ 54 M##0$8_K`Q%ELJ&Y+J%)()M,MC%0H>H1=#)J;6N2B:8&Z)G"^;]``UFT@;1F$ 55 M\Q%&/$UF^(#I`[U&*#;.^J8.>V%(3#Q!6@D%&2B>("VHK"C!+<)D@S^J0C4" 56 M<@$9"F5B'G)&&*.]'VQ5&7%)8@K7PH;T0/1+:*".<^]7?^S]2J?':QPA[=O2 57 MJW?7KV_WZ]V1`>-*^_)T3F>[3\^#/[/O3$=&??(!2X-]&WK"G.K]5;>P#U6+ 58 M^8"ZL&EC3<OEI[SL?NQ.KK:[F\OO3\Z:]+X_FS\H:;&O2^38B5,77'3)95<< 59 M>4?DB!V)(W44'$5'R5%V5!Q[Q^!AQ^)8'0?'T7%RG!T7)]X).<&6XD2=!"?1 60 M27*2G12GWBDY9:>0J$Z#T^@T.<U.BPOSB\T`3YIE3>=JQF?OKKN'W?Z?QY/X 61 M)]W)>G3IR5^ZA[LWM]<G9S]UES?WE\;PU9<G9S#OJR_G39^$)"`DO^?Y(/#\ 62 M\4Z?NS[$WW#]_;M7]_L6@,<U>L_Z@/\/R\VKW34`L)`E!KX_%)J0/]C0E/<0 63 MFNB/H8GT^Z&)_#0T49Z')H8_$AKK<Q8<^STL5_]Q>&+Z4,,3\_L(3SF&)R%4 64 7]@W?OM"_NU_0\JS[L_LWO<C_G/H?```` 34 65 ` 35 66 end -
Tst/Long/factorizeQa_l.stat
r3772383 r3bfbc7 1 1 >> tst_memory_0 :: 13 33378481:3143- exported :3-1-4:ix86-Linux:mamawutz:53495242 1 >> tst_memory_1 :: 13 33378481:3143- exported :3-1-4:ix86-Linux:mamawutz:101171203 1 >> tst_memory_2 :: 13 33378481:3143- exported :3-1-4:ix86-Linux:mamawutz:101171204 1 >> tst_timer_1 :: 13 33378481:3143- exported :3-1-4:ix86-Linux:mamawutz:43941 1 >> tst_memory_0 :: 1355320642:3150:3-1-5:ix86-Linux:mamawutz:69009584 2 1 >> tst_memory_1 :: 1355320642:3150:3-1-5:ix86-Linux:mamawutz:73228288 3 1 >> tst_memory_2 :: 1355320642:3150:3-1-5:ix86-Linux:mamawutz:73228288 4 1 >> tst_timer_1 :: 1355320642:3150:3-1-5:ix86-Linux:mamawutz:13315 -
Tst/Long/factorizeQa_l.tst
r3772383 r3bfbc7 25 25 l= factorize (f); testfactors (l,f); 26 26 27 //tr. #462 by gorzel 28 ring rw13 = (0,w),(T,x,y),dp; 29 minpoly = (w^4-w^3+2*w^2+4*w+3); 30 31 poly Hneu = 32 x^13-y^13+(-65*w^3+117*w^2-208*w-156)*T*x^11+(65*w^3-91*w^2+143*w+234)*T*y^11+(-39*w^3+117*w^2-234*w+117)*T*x^10+(78*w^3-91*w^2+130*w+390)*T*y^10+(-689*w^3-2171*w^2+5746*w-16107)*T^2*x^9+(-16705/3*w^3+32435/3*w^2-58045/3*w-8788)*T^2*y^9+(-15210*w^3+21606*w^2-34476*w-57798)*T^2*x^8+(-16614*w^3+28002*w^2-47892*w-43992)*T^2*y^8+(-14547*w^3+26052*w^2-45435*w-32058)*T^2*x^7+(-15054*w^3+24882*w^2-42237*w-42120)*T^2*y^7+(308581*w^3-505388*w^2+854893*w+883038)*T^3*x^7+(47242*w^3-237302*w^2+499135*w-553488)*T^3*y^7+(452270*w^3-1191463*w^2+2291003*w-644709)*T^3*x^6+(582439*w^3-1362920*w^2+2555917*w-92508)*T^3*y^6+(-270816*w^3-229515*w^2+799266*w-3670641)*T^3*x^5+(883662*w^3-1973829*w^2+3661710*w+262431)*T^3*y^5+(-4396327/3*w^3+19510634/3*w^2-40530178/3*w+13462280)*T^4*x^5+(5640596*w^3-6386068*w^2+9065030*w+28409901)*T^4*y^5+(-830401*w^3+974207*w^2-1412983*w-4036071)*T^3*x^4+(760643*w^3-1689688*w^2+3130322*w+266370)*T^3*y^4+(20294378*w^3-26643448*w^2+41060318*w+86440380)*T^4*x^4+(5279066*w^3+3610412*w^2-13593424*w+67843698)*T^4*y^4+(34683727*w^3-58690697*w^2+100467835*w+91123968)*T^4*x^3+(6227858*w^3+7596407*w^2-23720320*w+94392402)*T^4*y^3+(-269815676/3*w^3+390512551/3*w^2-629448482/3*w-331043258)*T^5*x^3+(-94859661*w^3+166063209*w^2-287546493*w-225369144)*T^5*y^3+(31413330*w^3-69137640*w^2+127795122*w+13769730)*T^4*x^2+(2733874*w^3+19260358*w^2-47086208*w+109961202)*T^4*y^2+(-421494307/3*w^3+945300395/3*w^2-1755321490/3*w-36293842)*T^5*x^2+(-193843104*w^3+274995669*w^2-439410660*w-737414028)*T^5*y^2+(6677424*w^3-25392744*w^2+51796368*w-43097184)*T^4*x+(4253080*w^3+7591792*w^2-21735272*w+74806680)*T^4*y+(-52820170*w^3+190018127*w^2-384748741*w+294246537)*T^5*x+(-196474785*w^3+296309208*w^2-485858373*w-671785452)*T^5*y+(5248218976/27*w^3-12863190080/27*w^2+24372820576/27*w-1115453924/9)*T^6*x+(136336200*w^3-396591312*w^2+776924772*w-355580316)*T^6*y+(-153999872/3*w^3+341724448/3*w^2-632914880/3*w-18505760)*T^5+(196115972/3*w^3-887376100/3*w^2+1847311544/3*w-624999544)*T^6; 33 34 35 int bugcnt,i; 36 for (i=1;i<=50;i++) 37 { 38 i; 39 if (size(factorize(Hneu,1))<2) { "failed";bugcnt++;} 40 } 41 if (bugcnt) { "Bug with factorize: ",bugcnt,"% wrong";} else { "OK"; } 42 43 for (i=1;i<=50;i++) 44 { 45 i; 46 if (size(factorize(subst(Hneu,x,3*x,y,3*y)/bigint(3)^13,1))<2) { "failed";bugcnt++;} 47 } 48 if (bugcnt) { "Bug with factorize: ",bugcnt,"% wrong";} else { "OK"; } 49 50 for (i=1;i<=50;i++) 51 { 52 i; 53 if (size(factorize(subst(Hneu,x,1/3*x,y,1/3*y)*bigint(3)^13,1))<2) { "failed";bugcnt++;} 54 } 55 if (bugcnt) { "Bug with factorize: ",bugcnt,"% wrong";} else { "OK"; } 56 27 57 tst_status(1); $ -
Tst/Manual/s.lst
rc47a86 r3bfbc7 79 79 univarpoly.tst 80 80 vdim_BR_PLURAL_BR.tst 81 ; ;waitall.tst81 ; waitall.tst 82 82 bigint_expressions.tst 83 83 boolean_operations.tst … … 316 316 dimMon.tst 317 317 divisor.tst 318 dump.tst319 318 elimlinearpart.tst 320 319 elimRing.tst … … 349 348 Max.tst 350 349 maxabs.tst 351 minMult.tst352 350 Miscellaneous_oddities_4.tst 353 351 nameof.tst … … 389 387 truncate.tst 390 388 varNum.tst 391 ; ;waitfirst.tst389 ; waitfirst.tst 392 390 absFactorize.tst 393 391 absValue.tst … … 415 413 gcdN.tst 416 414 genericmat.tst 417 getdump.tst418 415 GKdim.tst 419 416 hessenberg.tst -
factory/FLINTconvert.cc
r3772383 r3bfbc7 57 57 { 58 58 mpz_t gmp_val; 59 gmp_val[0]= *getmpi(f.getval());59 f.mpzval(gmp_val); 60 60 fmpz_set_mpz (result, gmp_val); 61 61 mpz_clear (gmp_val); -
factory/NTLconvert.cc
r3772383 r3bfbc7 670 670 char* stringtemp; 671 671 672 gmp_val[0]=*getmpi(f.getval());672 f.mpzval (gmp_val); 673 673 int l=mpz_sizeinbase(gmp_val,10)+2; 674 674 stringtemp=(char*)Alloc(l); -
factory/canonicalform.cc
r3772383 r3bfbc7 68 68 else 69 69 return CanonicalForm( value->deepCopyObject() ); 70 } 71 72 void 73 CanonicalForm::mpzval(mpz_t val) const 74 { 75 ASSERT (!is_imm (value) && value->levelcoeff() == IntegerDomain, "non-immediate integer expected"); 76 getmpi (value, val); 70 77 } 71 78 //}}} -
factory/canonicalform.h
r3772383 r3bfbc7 20 20 #include "cf_defs.h" 21 21 #include "variable.h" 22 #include <factory/cf_gmp.h> 22 23 #include <factory/templates/ftmpl_list.h> 23 24 #include <factory/templates/ftmpl_array.h> … … 80 81 CanonicalForm deepCopy() const; 81 82 83 void mpzval(mpz_t val) const; 82 84 // predicates 83 85 CF_NO_INLINE bool isOne() const; -
factory/cf_factory.cc
r3772383 r3bfbc7 283 283 return dummy; 284 284 } 285 286 void getmpi ( InternalCF * value, mpz_t mpi) 287 { 288 ASSERT( ! is_imm( value ) && (value->levelcoeff() == IntegerDomain ), "illegal operation" ); 289 mpz_init_set (mpi, ((InternalInteger*)value)->thempi); 290 } 291 -
factory/cf_factory.h
r3772383 r3bfbc7 35 35 36 36 mpz_ptr getmpi ( InternalCF * value, bool symmetric = true ); 37 void getmpi ( InternalCF * value, mpz_t mpi); 37 38 38 39 #endif /* ! INCL_CF_FACTORY_H */ -
factory/facBivar.cc
r3772383 r3bfbc7 499 499 modpk b= modpk(); 500 500 bool mipoHasDen= false; 501 CanonicalForm den= 1; 501 502 if (!extension) 502 503 { … … 519 520 { 520 521 A /= Lc (Aeval); 522 mipoHasDen= !bCommonDen(mipo).isOne(); 523 mipo *= bCommonDen (mipo); 524 ZZX NTLmipo= convertFacCF2NTLZZX (mipo); 525 ZZX NTLLcf= convertFacCF2NTLZZX (Lc (A*bCommonDen (A))); 526 ZZ NTLf= resultant (NTLmipo, NTLLcf); 527 ZZ NTLD= discriminant (NTLmipo); 528 den= abs (convertZZ2CF (NTLD*NTLf)); 529 521 530 // make factors elements of Z(a)[x] disable for modularDiophant 522 531 CanonicalForm multiplier= 1; … … 529 538 A *= bCommonDen (A); 530 539 531 mipoHasDen= !bCommonDen(mipo).isOne();532 mipo *= bCommonDen (mipo);533 540 Off (SW_RATIONAL); 534 541 int i= 0; 535 ZZX NTLmipo= convertFacCF2NTLZZX (mipo); 536 CanonicalForm discMipo= convertZZ2CF (discriminant (NTLmipo)); 542 CanonicalForm discMipo= convertZZ2CF (NTLD); 537 543 findGoodPrime (F*discMipo,i); 538 544 findGoodPrime (Aeval*discMipo,i); … … 555 561 uniFactors= henselLiftAndEarly 556 562 (A, earlySuccess, earlyFactors, degs, liftBound, 557 uniFactors, dummy, evaluation, b );563 uniFactors, dummy, evaluation, b, den); 558 564 TIMING_END_AND_PRINT (fac_bi_hensel_lift, 559 565 "time for bivariate hensel lifting over Q: "); … … 578 584 TIMING_START (fac_bi_factor_recombination); 579 585 factors= factorRecombination (uniFactors, A, MODl, degs, 1, 580 uniFactors.length()/2, b );586 uniFactors.length()/2, b, den); 581 587 TIMING_END_AND_PRINT (fac_bi_factor_recombination, 582 588 "time for bivariate factor recombination over Q: "); -
factory/facFqBivar.cc
r3772383 r3bfbc7 482 482 factorRecombination (CFList& factors, CanonicalForm& F, 483 483 const CanonicalForm& N, DegreePattern& degs, int s, 484 int thres, const modpk& b 484 int thres, const modpk& b, const CanonicalForm& den 485 485 ) 486 486 { … … 515 515 Variable y= Variable (2); 516 516 Variable x= Variable (1); 517 CanonicalForm LCBuf= LC (F, x); 517 CanonicalForm denom= den, denQuot; 518 CanonicalForm LCBuf= LC (F, x)*denom; 518 519 CanonicalForm g, quot, buf= F; 519 520 int * v= new int [T.length()]; … … 598 599 { 599 600 On (SW_RATIONAL); 601 if (!Lc (g).inBaseDomain()) 602 g /= Lc (g); 600 603 g *= bCommonDen (g); 601 604 Off (SW_RATIONAL); … … 605 608 if (fdivides (g, buf, quot)) 606 609 { 610 denom *= abs (lc (g)); 607 611 recombination= true; 608 612 result.append (g); 609 613 if (b.getp() != 0) 610 buf= quot*bCommonDen (quot); 614 { 615 denQuot= bCommonDen (quot); 616 buf= quot*denQuot; 617 Off (SW_RATIONAL); 618 denom /= gcd (denom, denQuot); 619 On (SW_RATIONAL); 620 } 611 621 else 612 622 buf= quot; 613 LCBuf= LC (buf, x) ;623 LCBuf= LC (buf, x)*denom; 614 624 T= Difference (T, S); 615 625 l -= degree (g); … … 726 736 factors, int& adaptedLiftBound, int*& factorsFoundIndex, 727 737 DegreePattern& degs, bool& success, int deg, 728 const modpk& b )738 const modpk& b, CanonicalForm& den) 729 739 { 730 740 DegreePattern bufDegs1= degs; … … 742 752 if (b.getp() != 0) 743 753 buf *= bCommonDen (buf); 744 CanonicalForm LCBuf= LC (buf, x) ;754 CanonicalForm LCBuf= LC (buf, x)*den; 745 755 CanonicalForm buf0= mulNTL (buf (0,x), LCBuf); 746 756 CanonicalForm buf1= mulNTL (buf (1,x), LCBuf); … … 748 758 Off (SW_RATIONAL); 749 759 CanonicalForm test0, test1; 760 CanonicalForm denQuot; 750 761 751 762 for (CFListIterator i= factors; i.hasItem(); i++, l++) … … 777 788 { 778 789 On (SW_RATIONAL); 790 if (!Lc (g).inBaseDomain()) 791 g /= Lc (g); 779 792 g *= bCommonDen (g); 780 793 Off (SW_RATIONAL); … … 784 797 if (fdivides (g, buf, quot)) 785 798 { 799 den *= abs (lc (g)); 786 800 reconstructedFactors.append (g); 787 801 factorsFoundIndex[l]= 1; 788 802 if (b.getp() != 0) 789 buf= quot*bCommonDen(quot); 803 { 804 denQuot= bCommonDen (quot); 805 buf= quot*denQuot; 806 Off (SW_RATIONAL); 807 den /= gcd (den, denQuot); 808 On (SW_RATIONAL); 809 } 790 810 else 791 811 buf= quot; 792 812 d -= degree (g); 793 LCBuf= LC (buf, x) ;813 LCBuf= LC (buf, x)*den; 794 814 buf0= mulNTL (buf (0,x), LCBuf); 795 815 buf1= mulNTL (buf (1,x), LCBuf); … … 827 847 if (bufDegs1.getLength() <= 1) 828 848 degs= bufDegs1; 849 } 850 851 void 852 earlyFactorDetection (CFList& reconstructedFactors, CanonicalForm& F, CFList& 853 factors, int& adaptedLiftBound, int*& factorsFoundIndex, 854 DegreePattern& degs, bool& success, int deg, 855 const modpk& b) 856 { 857 CanonicalForm den= 1; 858 earlyFactorDetection (reconstructedFactors, F, factors, adaptedLiftBound, factorsFoundIndex, degs, success, deg,b, den); 829 859 } 830 860 … … 1002 1032 earlyFactors, DegreePattern& degs, int& liftBound, 1003 1033 const CFList& uniFactors, const ExtensionInfo& info, 1004 const CanonicalForm& eval, modpk& b)1034 const CanonicalForm& eval,modpk& b, CanonicalForm& den) 1005 1035 { 1006 1036 Variable alpha= info.getAlpha(); … … 1018 1048 CFList diophant; 1019 1049 CFList bufUniFactors= uniFactors; 1050 On (SW_RATIONAL); 1020 1051 CanonicalForm bufA= A; 1052 if (!Lc (A).inBaseDomain()) 1053 { 1054 bufA /= Lc (A); 1055 CanonicalForm denBufA= bCommonDen (bufA); 1056 bufA *= denBufA; 1057 Off (SW_RATIONAL); 1058 den /= gcd (den, denBufA); 1059 } 1060 else 1061 { 1062 bufA= A; 1063 Off (SW_RATIONAL); 1064 den /= gcd (den, Lc (A)); 1065 } 1021 1066 CanonicalForm lcA0= 0; 1022 1067 bool mipoHasDen= false; … … 1082 1127 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1083 1128 factorsFoundIndex, degs, earlySuccess, 1084 smallFactorDeg, b );1129 smallFactorDeg, b, den); 1085 1130 else 1086 1131 earlyFactorDetection(earlyFactors, bufA, bufBufUniFactors, newLiftBound, 1087 1132 factorsFoundIndex, degs, earlySuccess, 1088 smallFactorDeg, b );1133 smallFactorDeg, b, den); 1089 1134 } 1090 1135 else … … 1111 1156 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1112 1157 factorsFoundIndex, degs, earlySuccess, 1113 liftPre[sizeOfLiftPre-1] + 1, b );1158 liftPre[sizeOfLiftPre-1] + 1, b, den); 1114 1159 else 1115 1160 earlyFactorDetection (earlyFactors,bufA,bufBufUniFactors,newLiftBound, 1116 1161 factorsFoundIndex, degs, earlySuccess, 1117 liftPre[sizeOfLiftPre-1] + 1, b );1162 liftPre[sizeOfLiftPre-1] + 1, b, den); 1118 1163 } 1119 1164 else … … 1145 1190 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1146 1191 factorsFoundIndex, degs, earlySuccess, 1147 liftPre[i-1] + 1, b );1192 liftPre[i-1] + 1, b, den); 1148 1193 else 1149 1194 earlyFactorDetection (earlyFactors,bufA,bufBufUniFactors,newLiftBound, 1150 1195 factorsFoundIndex, degs, earlySuccess, 1151 liftPre[i-1] + 1, b );1196 liftPre[i-1] + 1, b, den); 1152 1197 } 1153 1198 else … … 1188 1233 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1189 1234 factorsFoundIndex, degs, earlySuccess, 1190 smallFactorDeg, b );1235 smallFactorDeg, b, den); 1191 1236 else 1192 1237 earlyFactorDetection (earlyFactors, bufA, bufBufUniFactors, newLiftBound, 1193 1238 factorsFoundIndex, degs, earlySuccess, 1194 smallFactorDeg, b );1239 smallFactorDeg, b, den); 1195 1240 } 1196 1241 else … … 1217 1262 if (v==alpha) 1218 1263 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1219 factorsFoundIndex, degs, earlySuccess, dummy, b); 1264 factorsFoundIndex, degs, earlySuccess, dummy, b, 1265 den); 1220 1266 else 1221 1267 earlyFactorDetection (earlyFactors, bufA,bufBufUniFactors, newLiftBound, 1222 factorsFoundIndex, degs, earlySuccess, dummy, b); 1268 factorsFoundIndex, degs, earlySuccess, dummy, b, 1269 den); 1223 1270 } 1224 1271 else … … 1245 1292 if (v==alpha) 1246 1293 earlyFactorDetection (earlyFactors, bufA, bufUniFactors, newLiftBound, 1247 factorsFoundIndex, degs, earlySuccess, dummy,b); 1294 factorsFoundIndex, degs, earlySuccess, dummy,b, 1295 den); 1248 1296 else 1249 1297 earlyFactorDetection (earlyFactors,bufA,bufBufUniFactors,newLiftBound, 1250 factorsFoundIndex, degs, earlySuccess, dummy,b); 1298 factorsFoundIndex, degs, earlySuccess, dummy,b, 1299 den); 1251 1300 } 1252 1301 else … … 1287 1336 { 1288 1337 modpk dummy= modpk(); 1338 CanonicalForm den= 1; 1289 1339 return henselLiftAndEarly (A, earlySuccess, earlyFactors, degs, liftBound, 1290 uniFactors, info, eval, dummy );1340 uniFactors, info, eval, dummy, den); 1291 1341 } 1292 1342 -
factory/facFqBivar.h
r3772383 r3bfbc7 585 585 CFList 586 586 factorRecombination ( 587 CFList& factors, ///< [in,out] list of lifted factors 588 ///< that are monic wrt Variable (1) 589 CanonicalForm& F, ///< [in,out] poly to be factored 590 const CanonicalForm& M,///< [in] Variable (2)^liftBound 591 DegreePattern& degs, ///< [in] degree pattern 592 int s, ///< [in] algorithm starts checking 593 ///< subsets of size s 594 int thres, ///< [in] threshold for the size of 595 ///< subsets which are checked, for a 596 ///< full factor recombination choose 597 ///< thres= factors.length()/2 598 const modpk& b=modpk() ///< [in] coeff bound 587 CFList& factors, ///< [in,out] list of lifted factors 588 ///< that are monic wrt Variable (1) 589 CanonicalForm& F, ///< [in,out] poly to be factored 590 const CanonicalForm& M, ///< [in] Variable (2)^liftBound 591 DegreePattern& degs, ///< [in] degree pattern 592 int s, ///< [in] algorithm starts checking 593 ///< subsets of size s 594 int thres, ///< [in] threshold for the size of 595 ///< subsets which are checked, for a 596 ///< full factor recombination choose 597 ///< thres= factors.length()/2 598 const modpk& b=modpk(), ///< [in] coeff bound 599 const CanonicalForm& den= 1 ///< [in] bound on the den if over Q (a) 599 600 ); 600 601 … … 690 691 const ExtensionInfo& info, ///< [in] information about extension 691 692 const CanonicalForm& eval, ///< [in] evaluation point 692 modpk& b ///< [in] coeff bound 693 modpk& b, ///< [in] coeff bound 694 CanonicalForm& den ///< [in] bound on the den if over Q(a) 693 695 ); 694 696 -
factory/int_int.h
r3772383 r3bfbc7 126 126 friend void gmp_denominator ( const CanonicalForm & f, mpz_ptr result ); 127 127 friend mpz_ptr getmpi ( InternalCF * value, bool symmetric ); 128 friend void getmpi ( InternalCF * value, mpz_t mpi); 128 129 }; 129 130 -
kernel/kstd2.cc
rc47a86 r3bfbc7 1164 1164 int hilbeledeg=1,hilbcount=0,minimcnt=0; 1165 1165 BOOLEAN withT = FALSE; 1166 BITSET save; 1167 SI_SAVE_OPT1(save); 1166 1168 1167 1169 initBuchMoraCrit(strat); /*set Gebauer, honey, sugarCrit*/ … … 1466 1468 // } 1467 1469 if (TEST_OPT_PROT) messageStat(hilbcount,strat); 1470 SI_RESTORE_OPT1(save); 1468 1471 if (Q!=NULL) updateResult(strat->Shdl,Q,strat); 1469 1472 -
kernel/polys.cc
rc47a86 r3bfbc7 13 13 void rChangeCurrRing(ring r) 14 14 { 15 #if 0 16 if ((currRing!=NULL)&&(currRing!=r)) 17 { 18 currRing->options=si_opt_1 & TEST_RINGDEP_OPTS; 19 } 20 #endif 15 21 if( r != NULL ) 16 22 { … … 26 32 p_SetGlobals(r); 27 33 //------------ global variables related to factory ----------------- 28 } else 34 } 35 else 29 36 { 30 37 currRing = NULL; -
libpolys/polys/monomials/ring.cc
rc47a86 r3bfbc7 1433 1433 //memset: res->p_Setm=NULL; 1434 1434 //memset: res->cf=NULL; 1435 res->options=r->options;1436 1435 1437 1436 /* … … 1577 1576 //memset: res->p_Setm=NULL; 1578 1577 //memset: res->cf=NULL; 1579 res->options=r->options;1580 1578 1581 1579 /*
Note: See TracChangeset
for help on using the changeset viewer.