[SCM] an open source computer algebra system branch, cleanedupstream, updated. 6125e540ca6d66c307958938a9d53b245507c323

Bernhard R. Link brlink at debian.org
Tue Apr 24 15:53:40 UTC 2012


The following commit has been merged in the cleanedupstream branch:
commit 148172111dec5ec8fa88e8d5980a9bea404da9a2
Author: Hans Schoenemann <hannes at mathematik.uni-kl.de>
Date:   Fri Feb 24 16:32:01 2012 +0100

    fix: farey (handle "fail" case)

diff --git a/Tst/Short/bug_chinrem_mat.res.gz.uu b/Tst/Short/bug_chinrem_mat.res.gz.uu
index 4f549fe..95bd37a 100644
--- a/Tst/Short/bug_chinrem_mat.res.gz.uu
+++ b/Tst/Short/bug_chinrem_mat.res.gz.uu
@@ -1,12 +1,12 @@
 begin 640 bug_chinrem_mat.res.gz
-M'XL(")HJ5TL``V)U9U]C:&EN<F5M7VUA="YR97,`59)-;\(P#(;O_146VJ$=
-MIFN2?DT5.4R[(`T. at QM"J+".1:(5:L,&_/JY'TO8R8G]Y'T=)\O5ZVP!`$S"
-MV^P%1KK1_E'M1IFS'"I<`B6WJE+:]3*GC2`E[,Z'[?Y+5751;LM<^U7QXS<Z
-MU^:<D&#6H0^UJ@[P#E,($-P+7O'F(7R<K$\D at 71J=8&2K<5FS3<$"PPQPA at 3
-M9):,+<D-F2+'.$XP#@D.+9Q86!CX1OZ7'KW3324<5:-AQ0 at I&98<2V'+ST9)
-MUWG5$#/<WUTQ5)7^+O:N:!6%YYE3+)`]GCE=6#-DFRD+HMLX24V*=ZGKA,=#
-MB at _491Q')D74A"?#5K2$W;0UD1I7>LX335R[79W:&1QQL$%G$$=21+H<.'T`
-M()DN&BUN'Y()'W;J0,*P:%_G,7ED=D(L-!.:4_4SKXMKWP`N[B82_?4VIV2`
-D0>M+43RQ`*D+]L\\OC-/_.XGMK_LW+C,RQZ<7P-<C<J_`@``
+M'XL("!^M1T\``V)U9U]C:&EN<F5M7VUA="YR97,`39)-;\(P#(;O_146VJ$%
+MTS5)OZ:*'*9=D`:'P0TA5%C'(M$*M6$#?OW<CR6<G-A/WM=QLEJ_S9<`P"2\
+MSU]AI!OMG]1^E#FKH<(E4'*G*J5=+W/:"%+"_G+<';Y551?EKLRU7Q6_?J-S
+M;<X)"68=^E"KZ@@?,(,`P;WB#>\>PN?9^D022*=65RC91FPW?$NPP!`CC#%!
+M9LG8DMR0*7*,XP3CD.#0PHF%A8'OY'_MT0?=5,))-1K6C)"28<FQ%+;\8I1T
+MG5<-,</]W35#5>F?XN"*5E%XGCG%`MGCF=.%#4.VG;$@ND^2U*1XE[I->3RD
+M^$!=)W%D4D1->3)L14O835L3J7&EYSS3Q+7;U:F=P1$'&W0&<21%I,N!TP<`
+MDNFBT>+V(9GP8:^.)`S+]G7&R9C9";'03&A!U:^\+FY]`[A\F$CTW]N"D@$&
+DK2]%\<P"I"XZ?P/'#^:)W_W$]I==&I=YV9/S!W$&$4*_`@``
 `
 end
diff --git a/Tst/Short/bug_chinrem_mat.stat b/Tst/Short/bug_chinrem_mat.stat
index f1b3f00..b78c500 100644
--- a/Tst/Short/bug_chinrem_mat.stat
+++ b/Tst/Short/bug_chinrem_mat.stat
@@ -1,4 +1,4 @@
-1 >> tst_memory_0 :: 1264003738:3108-2010011516:3-1-0:ix86-Linux:nepomuck:173156 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:173880
-1 >> tst_memory_1 :: 1264003738:3108-2010011516:3-1-0:ix86-Linux:nepomuck:666200 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:666308
-1 >> tst_memory_2 :: 1264003738:3108-2010011516:3-1-0:ix86-Linux:nepomuck:698984 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:699092
-1 >> tst_timer_1 :: 1264003738:3108-2010011516:3-1-0:ix86-Linux:nepomuck:5 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:10
+1 >> tst_memory_0 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:182416
+1 >> tst_memory_1 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:2239244
+1 >> tst_memory_2 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:2272028
+1 >> tst_timer_1 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:8
diff --git a/Tst/Short/modstd.res.gz.uu b/Tst/Short/modstd.res.gz.uu
index a44ab67..df73682 100644
--- a/Tst/Short/modstd.res.gz.uu
+++ b/Tst/Short/modstd.res.gz.uu
@@ -1,42 +1,43 @@
 begin 640 modstd.res.gz
-M'XL(""-=TTX``VUO9'-T9"YR97,`U5G;;N,V$'WW5PB+/M at A99DWR6Z0`%WL
-M`K61%L$F!0H4FT765K=NG0MBI97\]1V2(CFDW3B]O#0/L33#F3EG+B0-7UV_
-MFW^?91D[SR[F;[,WS;89;]:?WYP.KGH-/\]`^&E]OVZ&H].!_LS.S[.[A]6V
-M68WOZS_&V^:V\<O%>>:?Y5@[?=,OC=TJM*X<9W5[>_>XJ;/'ZWK;7+T]'11%
-M]OCTL'2"[.>GA[L,7&3!V^#]C]]\=WGQ_NL!^%C?-[_7R^PB.\LX%52=:N'3
-M^OY+]@2B"1VVM*.[$5T]&LUZ5=]NLCFH6L)H2SK"D'S1RSLCZR$,YW1.+RB'
-M)$QB\:(7LX&G5)U[2@#XJED%1O;]*"&#_0-#X&ES`+YH!6DY8,T8ZQ3I!.$T
-M4SM)=IS(A)*-/)R/C'QQ.EC\Q#Z>@0-6".VC$"#A'\_`FA5*.R at 42,3',_#,
-M"@@`WN%#6^O8OSS</7P!_DWO\&B(1G\T293&Q&ED$@G$.E:C!B$;/"[E-LG%
-MK[?+A\_#%K)0DEU%VFXWPAE@"!]E=-)CA,(OF$'9D6I7ZA=`U^Y(V2G]HD'M
-MB&JE?I&@47D%N"O]JD!7PFMI7TM at -45XA<';#MEX+$=TD]9NV2TWZ^50OH`R
-M4O&#!+;K73U\JE?/RWJX8'3!1ZY#(PVG"V8UODFG<9/&+7JT03?K;6/F#::-
-M,D:9H&S*J."3B3@\?2\W<.C?J'T/-%K<T2"_^$_;S:5G%J7GV_I^6V_22?;2
-MU\WSD;WH6"XBXCYT.FW.B^7M'%B^WK&GR2:!YJK>U$W]P_WF>?E;=_FTOJNW
-M@>T!Y>M[Q.S)M`)B>ZW1T79$WT6IT#/`.PYI*K%8]W_7<MJ)EK8J4>I9TR:M
-MZ/:5LE<R9M58IWI=UPIM6/66!OHUZ.:,SCF="SJ7=&XM#Z1B>`V'@!Y7J("A
-M[C[A[Y.N"H3PKU`6B.9?A=Y4_)O4>XKQP/^Y!V`Q</8(B4K\PEX.MN8-A\#^
-MD7/OV:7G$M+S^+#IAE!!^\G=@W`/TCVHT<NYHY?_X^RA5=8Q6@:^P>G?3K(?
-M4!8&=+V=WR\WSZL:[4)!]LH]Z.Q?W89".'WS,;>>6+J@<W<`Q6NIM'<D!^2#
-MF?_,'(]J1+/5WAYPZ(`TNP#,9#M4HQN^!\D,JXS..0976+3AQ`'=&KBW[AW,
-MNF.=7I[C^.B:XQ;`A78.<.;<G$!#-B+MD.M_0O^3^I\::;6^7(#FAIL%)UJ7
-MZU7FB?"37JJLK7O29+6U[A,0WPAGW1OFWE#"RN#0/$N]7IC%-]QXQ,N#0&"!
-MZ.TM`A%P`7)QXK%!`!ZL0&<-;H1&*RW7/G(>0R8>3Y\!%RM&1F)<!*'*$:9`
-M0-G<>D1YP*,T'C"'NX`\B=%8Y^4)`M4GIL*9M<M0LAP4INRKB)`%0!5./X!B
-MDZ0"()LE<$`DHC+H]'K at RE05ET+DAI;T6MZ;24V^M*W3PPP=$%4]I4_4/GOY
-M(M.^$`CQ'E&3#$0JCSCE%:9$<'<)L](1JGQW&4+J("&$QE'"J0\]%]?3=$(@
-M*8YS2@<(1"PI7CZ->+*H=B0JG5GJB$[[H>>]._)71(^W*2:U3V)O%_#3':CC
-MG4"$$,KUE(QTCL(,[00OL"![XW>T4OF+S7B0(::#R6`JF$B at P28I#U_K8K_3
-MC/L8K9[\(AZ]/ER$4^3.WP%A<"8(<J;,OE;@BDA$P^G at 46E'A@[S=(PX6*K<
-M'U]F(<>;AX_."X''1,]G(5)RLA>&^=%0_#*/+U>%2"E+$A.6.1>%V6H#4/A:
-MARP41#,+X+DTU87OY[T%<4O)M+!+##>!]Q&4V80;!BU&,1/$+3_$K<]4S"U'
-MPIY)'ZNTV7?ZW$.5J`R]%4F;0IF=Q'DMO=Z]"]<&5;@FH,[*D74>V>;>TC:/
-M0MN2B2NBN"B&/LB05^2C[$]DX?/I:A3<S at H5.>91P34AY0BAR?([/]ZLT4U+
-M^C at YESA"'ODGE?-N`9M#!]ZF1*8G*.$,;P$Y*Z/#TQJ$>YER-X:\*I.^LKIP
-M(V)I1\'9P9)^RDWTL$^RJ?=JSR<6_.LJ)[<V-CL)]R0VM65Q:67AR'0- at Q$"
-M=14=/Z2<8*I$S'JJA,]2JKS$5',A]ZA.TIV0,#Z)N);1]32WZG#W8I,9)FM#
-M>JXS/U.6:YE2G49,2X&9VN6!J2O"`:91>^@:)T2)FJ0\IYAE7K&(Y2SF6$84
-MIQ)1Y)-^RK@?H6E"TEZ(0^]R%K.,6Y=QU[J,I2RC[9#,4I*L2DCF(JIE2(OM
-JRXAESJ=1U[*I8^F^AI7A=P56C<U/%_KWB><M?",[_6KP)WMWISCP&```
+M'XL("""M1T\``VUO9'-T9"YR97,`U5EM;]LV$/[N7R$4^V"'9"2^2?*"!%C1
+M`;.1#<7:`0.&9FAMK_/FO"!6-\F_?D=2)(^TEW3;I^5#+-WQ[I[G7D@:?O/V
+MU>*[HBCX57&]>%F\Z/;=^6[[X<7%Y,VH$5<%"'_>WFV[Z>QB8CZ+JZOB]GZ]
+M[];G=YL_S_?=^RXLEU=%>%;GQNF+<6GJ5J-U]7FQZ=_?/NPVQ</;S;Y[\_)B
+M4I;%P^/]R at N*7Q[O;PMP441ODZ]__.K;U]=??SD!']N[[H_-JK at N+@M!)=47
+M1OBXO?M8/(*HHM.>#O0PH^L'J]FN-^]WQ0)4/>&T)P/A2+X<Y8.5C1"F"[J@
+MUU1`$JI4O!S%?!(H-5>!$@!^TZTC(_?^+"&+_7N.P-/N!'S92](+P%IP/F at R
+M2")HH0^*'`11&247>;J86?GR8K+\B;^[!`>\E,9'*4$BWEV"-2^U<5!JD,AW
+ME^"9EQ``O,.'L3:Q?[V_O?\(_+O1X;,A.O/195$Z&Z=36200FUB=GL1LB+24
+M^RP7O[U?W7^8]I"%FAP:T@^'&<X`1_ at HI]6($0J_Y!;E0)I#;5X`77\@]:#-
+MBP%U(+I7YD6!1K,&<#?F58.NAM?:O=;`JD5XI<7;3_GYN9K175Z[U;#:;5=3
+M]03*1"5.$MAO#YOIXV;]:;69+CE=BIGOT$0CZ)([36C2-FW2M$6?;=#==M_9
+M>8-IHYQ3+BEO.96BJN3IZ7NZ at 6/_)NU[HM'2C@;Y]5&["<TK7HG*])Q_QHVG
+MJ[JJN3#=Q\87CEI05%HV?-Z:-F12"='6M32MZ%,W3U+WS>9NO]GE4QZDGS?K
+MS^Q3S^4I24H(G4^B]^(RX1TXWL%QH,FK2'.]V6VZS0]WNT^KWX?7C]O;S3ZR
+M/:'\_/ZQ^S5M at -A1VPRTG]%722K,?(A!0)IJ+#:S,?2"#K*GO<Z49 at Z-22^'
+M8Z4:E9P[-=;I43?TTA at VHZ6%_A9T"TX7 at BXD72BZ<)8G4C%]"P>$&66H@*7N
+M/^'O9U,5"!%>H2P0+;Q*L^&$-V7V&^M!_'L/P&+B[1$2G?F%?1YL[1L.@?TC
+MY\&S3\]K2,_#_6Z80 at 7=I_`/TC\H_Z!G3^>.OOX?9P^M<H[1,O`-3O]QDL.`
+M\CB at V_WB;K7[M-Z at 72C*/G,/NOQ/-Z48SMR*[(THE2[IPA].Z5JJW/W)`_G>
+MSG]ACTX]H\7Z:`\X=7C:70!FLI_JV8TX at F2'525G((?K+=IPTH!^#=QICPYM
+MT[%>KZYP?'0%\@O at LKL`.`MA3Z<IGY%^*LP_:?XI\T_/C-I</$!S(^R",Z-C
+M9I5](N)LE&IGZY\,66-M^@3$-]);CX8L&"I8&1W:9V762[OX1EB/>'D42"R0
+MH[U#(",N0"[/`C8((*(5Z)S!C31HE>,Z1F8I9!+PC!GPL5)D),5%$"J&,$4"
+MVN4V(&(1CS9XP!QN!^HL1>.<UV<(U)B8!F?6+4/)\E"X=J\R018!-3C]`(I7
+M605`-L_@@$@F93#I#<"UK2HNA626E at I:,9HI0[YVK3/"C!V05#VG3_0Q>_4D
+MT[$0"/$149L,1(HEG%B#*1'<7=*N](2:T%V6D#Y)"*'QE'#J8\^E];2=$$G*
+MYSGE`P0BGA6/M0E/GM2.)*6S2SW1=AQZ,;HC?T?T^3;%I(Y)'.T"8;HC=;P3
+MR!A"^YY2B<Y3F*.=X`D6Y&C\GJT4>[(93S+$=#`93`43B31XE?,(M2Z/.\VZ
+M3]&:R2_3T1O#)3 at E\_Y."*,S29`S;?>U$E=$(1I>!X_:.+)T>*!CQ=%2LW!\
+MV84";QXANB at E'A,SGZ7,R:E1&.?'0`G+`CZF2YE35B0EK)B0I=UJ(U!>:F2A
+M(9I=`,^UK2Y\=Q\MB%]*VM(ML=PDWD=09C-N&+2<I4P0-W:*VYBIE!M#PI')
+M&*MVV?=Z%J`J5(;1BN1-H>U.XKW60>_?I6^#)EX34&<Q9,T26Q8L7?-HM"W9
+MN#*)BV*8 at PQY13[J\426(9^^1M'MO-2)8Y$4W!#2GA":K+#SX\T:W;14B,.$
+MPA%8XI\TWKL#;`\=>&N)RD]0(CC>`ABOD\/3&<1[F?8W!M;465\Y7;P1\;RC
+MX.S at 63\Q&SWND[P-7MWYQ*-_4^7LUL;G9_&>Q%M7%I]6'H],WS`8(5#7R?%#
+MZ at I3)7(^4B5BGE,5-:;*I#JB6N4[(>&B2KC6R?64.76\>_%JCLFZD('K/,R4
+MXUKG5-N$:2TQ4[<\,O5%.,$T:0]3XXPHT57.L\4L6<,3EO.48YU0;!6B**IQ
+MRD08H38CZ2[$L7<%3UFFK<N%;UW.<Y;)=DCF.4G>9"293&H9T^+Z,F')1)MT
+D+6\]2_\UK(Z_.?#FW/ZL87Z[^+2';V077TS^`ORCE_X,&0``
 `
 end
diff --git a/Tst/Short/modstd.stat b/Tst/Short/modstd.stat
index b07ee2a..9b537eb 100644
--- a/Tst/Short/modstd.stat
+++ b/Tst/Short/modstd.stat
@@ -1,4 +1,4 @@
-1 >> tst_memory_0 :: 1322474787:3133- 14004 :3-1-3:ix86-Linux:mamawutz:387040
-1 >> tst_memory_1 :: 1322474787:3133- 14004 :3-1-3:ix86-Linux:mamawutz:1261568
-1 >> tst_memory_2 :: 1322474787:3133- 14004 :3-1-3:ix86-Linux:mamawutz:1418712
-1 >> tst_timer_1 :: 1322474787:3133- 14004 :3-1-3:ix86-Linux:mamawutz:54
+1 >> tst_memory_0 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:395316
+1 >> tst_memory_1 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:2310144
+1 >> tst_memory_2 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:2467224
+1 >> tst_timer_1 :: 1330097439:3140- 14004 :3-1-4:ix86-Linux:mamawutz:53
diff --git a/kernel/longrat.cc b/kernel/longrat.cc
index 0435c33..aa9d7fe 100644
--- a/kernel/longrat.cc
+++ b/kernel/longrat.cc
@@ -1,7 +1,6 @@
 /****************************************
 *  Computer Algebra System SINGULAR     *
 ****************************************/
-/* $Id$ */
 /*
 * ABSTRACT: computation with long rational numbers (Hubert Grassmann)
 */
@@ -475,7 +474,7 @@ int nlSize(number a)
   if (SR_HDL(a) & SR_INT)
      return 1; /* immidiate int */
   int s=a->z[0]._mp_alloc;
-//  while ((s>0) &&(a->z._mp_d[s]==0L)) s--; 
+//  while ((s>0) &&(a->z._mp_d[s]==0L)) s--;
 //#if SIZEOF_LONG == 8
 //  if (a->z._mp_d[s] < (unsigned long)0x100000000L) s=s*2-1;
 //  else s *=2;
@@ -484,7 +483,7 @@ int nlSize(number a)
   if (a->s<2)
   {
     int d=a->n[0]._mp_alloc;
-//    while ((d>0) && (a->n._mp_d[d]==0L)) d--; 
+//    while ((d>0) && (a->n._mp_d[d]==0L)) d--;
 //#if SIZEOF_LONG == 8
 //    if (a->n._mp_d[d] < (unsigned long)0x100000000L) d=d*2-1;
 //    else d *=2;
@@ -843,7 +842,7 @@ number nlDiv (number a, number b)
     long i=SR_TO_INT(a);
     long j=SR_TO_INT(b);
     if ((i==-POW_2_28) && (j== -1L))
-    {  
+    {
       FREE_RNUMBER(u);
       return nlRInit(POW_2_28);
     }
@@ -1585,7 +1584,7 @@ number _nlAdd_aNoImm_OR_bNoImm(number a, number b)
 }
 
 number _nlInpAdd_aNoImm_OR_bNoImm(number a, number b)
-{  
+{
   if (SR_HDL(b) & SR_INT)
   {
     switch (a->s)
@@ -2403,20 +2402,30 @@ number nlFarey(number nN, number nP, const ring)
     mpz_add(tmp,tmp,tmp);
     if (mpz_cmp(tmp,P)<0)
     {
-       // return N/B
-       z=ALLOC_RNUMBER();
-       #ifdef LDEBUG
-       z->debug=123456;
-       #endif
        if (mpz_isNeg(B))
        {
          mpz_neg(B,B);
          mpz_neg(N,N);
        }
-       mpz_init_set(z->z,N);
-       mpz_init_set(z->n,B);
-       z->s = 0;
-       nlNormalize(z);
+       // check for gcd(N,B)==1
+       mpz_gcd(tmp,N,B);
+       if (mpz_cmp_ui(tmp,1)==0)
+       {
+         // return N/B
+         z=ALLOC_RNUMBER();
+         #ifdef LDEBUG
+         z->debug=123456;
+         #endif
+         mpz_init_set(z->z,N);
+         mpz_init_set(z->n,B);
+         z->s = 0;
+         nlNormalize(z);
+       }
+       else
+       {
+         // return nN (the input) instead of "fail"
+         z=nlCopy(nN);
+       }
        break;
     }
     //mpz_mod(D,E,N);

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list