Changeset 7d73a53 in git
- Timestamp:
- Feb 23, 2016, 5:09:19 PM (8 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- ca5f5ec50e7d7e43e956e80b9cff948d8a89ee55
- Parents:
- 6828dc2a9db4f0616aef09df69cf620b2f3ace02
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/atkins.lib
r6828dc r7d73a53 200 200 " 201 201 { 202 if((D>=0)||((D mod 4)== -2)||((D mod 4)==-1)||(absValue(D)>=4*p))202 if((D>=0)||((D mod 4)==2)||((D mod 4)==3)||(absValue(D)>=4*p)) 203 203 { // (0)[Test if assumptions well-defined] 204 204 return(0); … … 231 231 { 232 232 x(0)=squareRoot(D,p); // (3)[Compute square root] 233 if((x(0) mod 2)!=( -(D mod 2))) // D is <0233 if((x(0) mod 2)!=(D mod 2)) // D is <0 234 234 { 235 235 x(0)=p-x(0); … … 248 248 if((((4*p-b^2) mod absValue(D))!=0)||(c!=root_c^2)) 249 249 { 250 "3"; 250 251 return(-1); 251 252 // ERROR("The Diophantine equation has no solution!"); -
Tst/Manual/Schoof.res.gz.uu
r6828dc r7d73a53 1 begin 64 4Schoof.res.gz2 M'XL(" )JNRU```U-C:&]O9BYR97,`"PYQ\?134%`PM%/P\7124"HI+M'+R4Q21 begin 640 Schoof.res.gz 2 M'XL(".B`S%8``U-C:&]O9BYR97,`"PYQ\?134%`PM%/P\7124"HI+M'+R4Q2 3 3 MLE8`LN(S\S)+-#2MN4"T@IV=0G!R1GY^FEY>:KE><4EB"5<P5+<15'=R465! 4 M23[$`+BDL9U"469>ND*0@JV"@4Z53DH!0LX$9J:&L9&!@;&.N:&.F8$1T$ 9C5 >$V-C0[@R4SNP<T!VEA9K&&I:JW`!`+6AQ42Y````4 M23[$`+BDL9U"469>ND*0@JV"@4Z53DH!0LX$9J:&L9&!@;&.N:&.F8$1T$8@ 5 <U\@0KLS4#NP<D)VEQ1J&FM8J7`#Q;,(BN0`````` 6 6 ` 7 7 end -
Tst/Manual/bigint_operations.res.gz.uu
r6828dc r7d73a53 1 begin 644 bigint_operations.res.gz 2 M'XL("(.NRU```V)I9VEN=%]O<&5R871I;VYS+G)E<P!%CL$*PC`,AN]]BB`> 3 M5K$CS=;.4>A!O`S$RSP[-C:DH)VXJJ^O$S=/27[^?'SE<5<<`$!:V!=;6(0A 4 MQ!?7+`Q\MLIY%R)NV#C!6FC<V?E0];?N7@?7^R'VW2L>0AU8^0/1U(H47]%Z 5 M.HB?)**0:)A$D*0SK5`C$FV(\A1EFNL,$T*5:#W#DADF%(?6/>%/')-KWP(9 6 9)@B$G)]2^W4?K1Y#)+E9LC=-JX5/Y@`````` 1 begin 640 bigint_operations.res.gz 2 M'XL(",Z!S%8``V)I9VEN=%]O<&5R871I;VYS+G)E<P"=E<MNG#`4AO<\Q1'* 3 M`M*!^((A%`V+JIM(53?INB,SH5,K#$0#:56-^NZU"=@0CPH)"^S#\??[W"3N 4 MOWV^^PH`.(<O=Y_`[=HNK$3A9B!W.U&+SO,S1ZV0YU"(@ZB[7?-4GG@GFKH- 5 MZ_)WV':\<^X'(3*>\IA_33:C0?SO&*$`H\S!"#")DYBA&"%";@E)(X2C-$X0 6 M)8C1.-9B5(L%S(<'\0N,HOIR;!Z`9$Y``6LFRD'O60A/IV8/^Y_E_G$G>0EX 7 M+SSP40D*7P-Q"&=M)*%\B1_@>;R_N_"OBP]RKVXM_.V6&RY51S6)L3(!W/;Y 8 M",TC_^-FVD65ZZ\VF3++JBWUEV0NE0Y2,H"/[F8(1,N1\2894^_N8S-N:@*1 9 M[HMY;%S@"I5K(=<)S&:ADJ$<GB;S+?+A[+;B4`]9FL/IF!><P1V`28!&ELH, 10 MC"&GY^8&VB.OJJ!_:X_,9-;%9$/E8(X%=G00&I!S\`H(%@CVB@B6D=A&%HC$ 11 M9`A!Q4\'W7EZ:Z>(]/-_U?1"LBO9"%U*>RV,+Q1@+?O2[+X&\V9'5K.-Y$)] 12 M(ZOM$W2AFY$]`&^`[5%8'W0RJ<1L)B)K)J:B:PMM3<<LK94JS)Z3=\G8$_.. 13 9E)B<'?6#4K^>Y];#?G;E_`-SNM#'RP8````` 7 14 ` 8 15 end -
Tst/Manual/bigint_operations.stat
r6828dc r7d73a53 1 1 >> tst_memory_0 :: 1 355525762:3150:3-1-5:x86_64-Linux:snork:1842882 1 >> tst_memory_1 :: 1 355525762:3150:3-1-5:x86_64-Linux:snork:22402163 1 >> tst_memory_2 :: 1 355525762:3150:3-1-5:x86_64-Linux:snork:22730164 1 >> tst_timer_1 :: 1 355525762:3150:3-1-5:x86_64-Linux:snork:31 1 >> tst_memory_0 :: 1456243150:4030, 64 bit:4.0.3:x86_64-Linux:nepomuck:104680 2 1 >> tst_memory_1 :: 1456243150:4030, 64 bit:4.0.3:x86_64-Linux:nepomuck:2228224 3 1 >> tst_memory_2 :: 1456243150:4030, 64 bit:4.0.3:x86_64-Linux:nepomuck:2228224 4 1 >> tst_timer_1 :: 1456243150:4030, 64 bit:4.0.3:x86_64-Linux:nepomuck:0 -
Tst/Manual/bigint_operations.tst
r6828dc r7d73a53 2 2 bigint(5)*2, bigint(2)^100-10; 3 3 bigint(-5) div 2, bigint(-5) mod 2; 4 5 proc check_divmod(bigint a, bigint b) 6 { 7 if ((a div b)*b+(a mod b)==a) 8 { 9 "sum okay"; 10 } 11 else 12 { 13 "div:",a div b; 14 "mod:",a mod b; 15 "sum:",(a div b)*b+(a mod b)," a:",a," b:",b; 16 } 17 if((a mod b)>=0) {"sign okay";} 18 else { "a mod b:",a mod b; } 19 } 20 // small-small 21 check_divmod(7,3); 22 check_divmod(7,-3); 23 check_divmod(-7,-3); 24 check_divmod(-7,3); 25 // small -large 26 check_divmod(7,30000000000); 27 check_divmod(7,-30000000000); 28 check_divmod(-7,-30000000000); 29 check_divmod(-7,30000000000); 30 // large-small 31 check_divmod(70000000000,3); 32 check_divmod(70000000000,-3); 33 check_divmod(-70000000000,-3); 34 check_divmod(-70000000000,3); 35 // large-large 36 check_divmod(70000000000,30000000000); 37 check_divmod(70000000000,-30000000000); 38 check_divmod(-70000000000,-30000000000); 39 check_divmod(-70000000000,30000000000); 4 40 tst_status(1);$ -
Tst/Manual/chineseRem.res.gz.uu
r6828dc r7d73a53 1 begin 64 4chineseRem.res.gz2 M'XL(" (6NRU```V-H:6YE<V5296TN<F5S``L.<?'T4U!0,+13\/%T4E`J*2[11 begin 640 chineseRem.res.gz 2 M'XL("#M_S%8``V-H:6YE<V5296TN<F5S``L.<?'T4U!0,+13\/%T4E`J*2[1 3 3 MR\E,4K)6`++B,_,R2S0TK;E`M(*=G4)R1F9>:G%J4&JN7EYJN5YQ26()5S#4 4 4 M!".H"<E%E04E^1!#X)+&=@I%F7GI"D$*M@H&.A4Z*04(.1-D<S5R,HM+-(Q, 5 M=`Q-=<PU=2`\'6,=4TV@,W0-+>"Z3.W`+@0YH;18PU#36H4+`'1Z&C_,````5 L=`Q-=<PU=2`\'6,=4TV@,PR-X)I,[<`.!+F@M%C#4--:A0L`SAN<F\L````` 6 6 ` 7 7 end -
Tst/Manual/coeffmod.res.gz.uu
r6828dc r7d73a53 1 1 begin 640 coeffmod.res.gz 2 M'XL(" .[^FE,``V-O969F;6]D+G)E<P!%C\T.@C`0A.\\Q89XX$\BI14-H0?C3 MA<1X$. ^F""4-6(C46-]>4`*GW>S,MYG)KL?T#``!A5-Z`%/URF]$;L8P;#<A4 M A;+LV!@G4`KWMN3\T1:^+-]^KY@RLHE'$\_JGM7L_V(60PI/(2NX0`(;3WM%5 M MVB80M<V'^`)PB1R-'8)"C%Q=+C>[QR-7+)X"85<5$(JD$FXG+=+,(M[<L@[6 : P&A`T6R)Z*_/&/G56X$=KXPO<-+XE?H`````2 M'XL("/U^S%8``V-O969F;6]D+G)E<P!%C\T.@C`0A.\\Q89XX$\B+14-H0?C 3 MA<1X$.\&A)(&+$1JK&\O**&GW>S,;+[)KL?T#``!A5-Z`%,.TF]Y8<8P;C<N 4 MN+3LV)@F4`KWKF+LT96^J-[^('-I9',>S?F\&?(F_[]81$SAR44-%TA@XRFO 5 M[+464NB[]@,L02&)'!6Z!.&0.`JO]SM'(9=H+Z%0\)H+"2+!^KS58!;SQ,BK 6 :L#LFT>*(Z*_.1/P:K,".5\87X.574OD````` 7 7 ` 8 8 end -
Tst/Manual/powerpolyX.res.gz.uu
r6828dc r7d73a53 1 1 begin 640 powerpolyX.res.gz 2 M'XL(" &<$FU,``W!O=V5R<&]L>5@N<F5S`$V//0^",!"&=W[%Q3B@%&*I^!'23 M #L;%Q#B(@YNIT9A&4J"MH?Q[00EENLL]E^?NS2[[PPD`,(/C80<3HTV4B_LD4 M A;:["2F,/TN]K@)C4!;U4Y5%WEPC^:PC;;CQLMX0]P;^UOS-_Y(!$@9*R!><5 M Z0)9]"@=67;6O`%.R=R2T,9!XF#20T7M.L1NOF)P%R\A#504Q\2!]0`D'7DV6 J X]?]"DG$D6IS$9N$Q"X#2X+V,![VM^P7O\OWT3Z>I5/O"Y74O)TI`0``2 M'XL("(-_S%8``W!O=V5R<&]L>5@N<F5S`$V//0^",!"&=W[%Q3B@%&);$`UI 3 M!^-B8AS4P<W4:$@#*5\UE'\O**%.=[GG\MR]E^O^<`(`S.%XV,%,-SK(Y6.6 4 M0-_=I9+:723.4(%S*(OV59=%WMT"]6J#1@OM7$8#&0TB:T0F?I()4@ZU5"F< 5 MV0H9]"PM"0=KWH%@=&FH;X@761B-L&8F]K&=KSD\9"J5AHIA0BV()Z#8GV?S 6 J_[I;(84$JOM<U$0>,:%GJ-<?QM/^EG_C#_G>C8L7R=SY`"R^3(8I`0`` 7 7 ` 8 8 end -
libpolys/coeffs/coeffs.h
r6828dc r7d73a53 613 613 /// raises an error if 'b' is not invertible in r 614 614 /// exception in Z: raises an error if 'a' is not divisible by 'b' 615 /// always: n_Div(a,b,r)*b+n_IntMod(a,b,r)==a 615 616 static FORCE_INLINE number n_Div(number a, number b, const coeffs r) 616 617 { STATISTIC(n_Div); assume(r != NULL); assume(r->cfDiv!=NULL); return r->cfDiv(a,b,r); } … … 624 625 625 626 /// for r a field, return n_Init(0,r) 626 /// otherwise: n_Div(a,b,r)*b+n_IntMod(a,b,r)==a 627 /// always: n_Div(a,b,r)*b+n_IntMod(a,b,r)==a 628 /// n_IntMod(a,b,r) >=0 627 629 static FORCE_INLINE number n_IntMod(number a, number b, const coeffs r) 628 630 { STATISTIC(n_IntMod); assume(r != NULL); return r->cfIntMod(a,b,r); } -
libpolys/coeffs/longrat.cc
r6828dc r7d73a53 160 160 #define mpz_limb_size(A) ((A)->_mp_size) 161 161 #define mpz_limb_d(A) ((A)->_mp_d) 162 #define MPZ_DIV(A,B,C) mpz_tdiv_q((A),(B),(C))163 #define MPZ_EXACTDIV(A,B,C) mpz_divexact((A),(B),(C))164 162 165 163 void _nlDelete_NoImm(number *a); … … 624 622 long ul; 625 623 mpz_init(tmp); 626 MPZ_DIV(tmp,i->z,i->n);624 mpz_tdiv_q(tmp,i->z,i->n); 627 625 if(mpz_size1(tmp)>MP_SMALL) ul=0; 628 626 else … … 648 646 } 649 647 number tmp=nlRInit(1); 650 MPZ_DIV(tmp->z,i->z,i->n);648 mpz_tdiv_q(tmp->z,i->z,i->n); 651 649 tmp=nlShort3(tmp); 652 650 return tmp; … … 769 767 /* u=a/b */ 770 768 u->s = 3; 771 MPZ_EXACTDIV(u->z,a->z,b->z);769 mpz_divexact(u->z,a->z,b->z); 772 770 if (bb!=NULL) 773 771 { … … 803 801 return nlRInit(POW_2_28); 804 802 } 805 long aa=SR_TO_INT(a); 806 long bb=SR_TO_INT(b); 807 return INT_TO_SR(aa/bb); 808 } 803 LONG aa=SR_TO_INT(a); 804 LONG bb=SR_TO_INT(b); 805 LONG rr=aa%bb; 806 if (rr<0) rr+=ABS(bb); 807 LONG cc=(aa-rr)/bb; 808 return INT_TO_SR(cc); 809 } 810 number aa=NULL; 809 811 if (SR_HDL(a) & SR_INT) 810 812 { … … 817 819 } 818 820 } 819 /* a is a small and b is a large int: -> 0 */820 return INT_TO_SR(0);821 aa=nlRInit(SR_TO_INT(a)); 822 a=aa; 821 823 } 822 824 number bb=NULL; … … 835 837 /* u=u/b */ 836 838 u->s = 3; 837 MPZ_DIV(u->z,u->z,b->z); 839 number rr=nlIntMod(a,b,r); 840 if (SR_HDL(rr) & SR_INT) mpz_sub_ui(u->z,u->z,SR_TO_INT(rr)); 841 else mpz_sub(u->z,u->z,rr->z); 842 mpz_divexact(u->z,u->z,b->z); 843 if (aa!=NULL) 844 { 845 mpz_clear(aa->z); 846 #if defined(LDEBUG) 847 aa->debug=654324; 848 #endif 849 FREE_RNUMBER(aa); 850 } 838 851 if (bb!=NULL) 839 852 { … … 864 877 if (SR_HDL(a) & SR_HDL(b) & SR_INT) 865 878 { 879 LONG aa=SR_TO_INT(a); 866 880 LONG bb=SR_TO_INT(b); 867 LONG c=SR_TO_INT(a) % bb; 881 LONG c=aa % bb; 882 if (c<0) c+=ABS(bb); 868 883 return INT_TO_SR(c); 869 884 } 870 885 if (SR_HDL(a) & SR_INT) 871 886 { 887 LONG ai=SR_TO_INT(a); 872 888 mpz_t aa; 873 mpz_init(aa); 874 mpz_set_si(aa, SR_TO_INT(a)); 889 mpz_init_set_si(aa, ai); 875 890 u=ALLOC_RNUMBER(); 876 891 #if defined(LDEBUG) … … 879 894 u->s = 3; 880 895 mpz_init(u->z); 881 mpz_t q; 882 mpz_init(q); 883 mpz_tdiv_qr(q,u->z, aa, b->z); 884 mpz_clear(q); 896 mpz_mod(u->z, aa, b->z); 885 897 mpz_clear(aa); 886 898 u=nlShort3(u); … … 900 912 mpz_init(u->z); 901 913 u->s = 3; 902 mpz_t q; 903 mpz_init(q); 904 mpz_tdiv_qr(q, u->z, a->z, b->z); 905 mpz_clear(q); 914 mpz_mod(u->z, a->z, b->z); 906 915 if (bb!=NULL) 907 916 { … … 1349 1358 if (mpz_cmp_si(gcd,(long)1)!=0) 1350 1359 { 1351 MPZ_EXACTDIV(x->z,x->z,gcd);1352 MPZ_EXACTDIV(x->n,x->n,gcd);1360 mpz_divexact(x->z,x->z,gcd); 1361 mpz_divexact(x->n,x->n,gcd); 1353 1362 if (mpz_cmp_si(x->n,(long)1)==0) 1354 1363 { … … 1394 1403 mpz_t bt; 1395 1404 mpz_init_set(bt,b->n); 1396 MPZ_EXACTDIV(bt,bt,gcd);1405 mpz_divexact(bt,bt,gcd); 1397 1406 if (SR_HDL(a) & SR_INT) 1398 1407 mpz_mul_si(result->z,bt,SR_TO_INT(a)); … … 1646 1655 if (mpz_cmp_si(gcd,(long)1)!=0) 1647 1656 { 1648 MPZ_EXACTDIV(x->z,x->z,gcd);1649 MPZ_EXACTDIV(x->n,x->n,gcd);1657 mpz_divexact(x->z,x->z,gcd); 1658 mpz_divexact(x->n,x->n,gcd); 1650 1659 if (mpz_cmp_si(x->n,(long)1)==0) 1651 1660 { … … 2803 2812 else 2804 2813 { 2805 if (mpz_isNeg(a->z)) 2806 { 2807 if (mpz_isNeg(b->z)) 2808 { 2809 mpz_add(a->z,a->z,b->z); 2810 } 2811 else 2812 { 2813 mpz_sub(a->z,a->z,b->z); 2814 } 2815 mpz_add_ui(a->z,a->z,1); 2816 } 2817 else 2818 { 2819 if (mpz_isNeg(b->z)) 2820 { 2821 mpz_sub(a->z,a->z,b->z); 2822 } 2823 else 2824 { 2825 mpz_add(a->z,a->z,b->z); 2826 } 2827 mpz_sub_ui(a->z,a->z,1); 2828 } 2829 MPZ_DIV(a->z,a->z,b->z); 2814 number rr=nlIntMod(a,b,r); 2815 if (SR_HDL(rr) & SR_INT) mpz_sub_ui(a->z,a->z,SR_TO_INT(rr)); 2816 else mpz_sub(a->z,a->z,rr->z); 2817 mpz_divexact(a->z,a->z,b->z); 2830 2818 a=nlShort3_noinline(a); 2831 2819 }
Note: See TracChangeset
for help on using the changeset viewer.