- Timestamp:
- Jun 3, 2014, 6:28:02 PM (10 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38077648e7239f98078663eb941c3c979511150a')
- Children:
- 9e74d36ab6179b1687991fad57ad4613a9816f7cd7295ff2c24f0d2b03594917a387c981bd47eedd
- Parents:
- ee121df974c1705dca6d334a16b69f52ee5fc0d4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/longrat.cc
ree121d r42aa8b8 17 17 18 18 // 64 bit version: 19 #if SIZEOF_LONG == 820 //#if 019 //#if SIZEOF_LONG == 8 20 #if 0 21 21 #define MAX_NUM_SIZE 60 22 22 #define POW_2_28 (1L<<60) 23 #define POW_2_28_32 (1L<<28) 23 24 #define LONG long 24 25 #else 25 26 #define MAX_NUM_SIZE 28 26 27 #define POW_2_28 (1L<<28) 28 #define POW_2_28_32 (1L<<28) 27 29 #define LONG int 28 30 #endif … … 802 804 LONG bb=SR_TO_INT(b); 803 805 LONG c=SR_TO_INT(a) % bb; 804 /*if(c < 0)805 {806 if(bb < 0)807 c = c - bb;808 else809 c = c + bb;810 }*/811 /*if((((SR_TO_INT(a)) / (bb))*bb+c) != SR_TO_INT(a))812 {813 printf("\nERROR longrat:819\n");814 printf("\na = %ld\n",SR_TO_INT(a));815 printf("\nb = %ld\n",bb);816 printf("\nc = %ld\n",c);817 }*/818 806 return INT_TO_SR(c); 819 807 } 820 808 if (SR_HDL(a) & SR_INT) 821 809 { 822 // a is a small and b is a large int: -> a 823 // INCORRECT, IT COULD HAPPEN THAT b IS A SMALL NUMBER 824 number aa=ALLOC_RNUMBER(); 825 mpz_init(aa->z); 826 mpz_set_si(aa->z, SR_TO_INT(a)); 810 mpz_t aa; 811 mpz_init(aa); 812 mpz_set_si(aa, SR_TO_INT(a)); 827 813 u=ALLOC_RNUMBER(); 828 814 #if defined(LDEBUG) … … 831 817 u->s = 3; 832 818 mpz_init(u->z); 833 mpz_mod(u->z,aa->z,b->z); 834 if (mpz_isNeg(u->z)) 835 { 836 if (mpz_isNeg(b->z)) 837 mpz_sub(u->z,aa->z,b->z); 838 else 839 mpz_add(u->z,aa->z,b->z); 840 } 841 /*mpz_t dummy; 842 mpz_init(dummy); 843 mpz_fdiv_q(dummy, aa->z, b->z); 844 mpz_mul(dummy, dummy, b->z); 845 mpz_add(dummy, dummy, u->z); 846 if(mpz_cmp(dummy,aa->z) != 0) 847 { 848 printf("\nERROR longrat:911\n"); 849 printf("\na = ");n_Print(aa,r); 850 gmp_printf("\ndummy = %Zd",dummy); 851 mpz_clear(dummy);mpz_init(dummy);mpz_tdiv_q(dummy, a->z, b->z); 852 gmp_printf("\na div b = %Zd\n u = ", dummy); 853 n_Print(u,r); 854 } 855 mpz_clear(dummy);*/ 856 mpz_clear(aa->z); 857 #if defined(LDEBUG) 858 aa->debug=654324; 859 #endif 860 FREE_RNUMBER(aa); 819 mpz_mod(u->z,aa,b->z); 820 mpz_clear(aa); 861 821 u=nlShort3(u); 862 822 nlTest(u,r); … … 876 836 u->s = 3; 877 837 mpz_mod(u->z,a->z,b->z); 878 if (mpz_isNeg(u->z))879 {880 if (mpz_isNeg(b->z))881 mpz_sub(u->z,u->z,b->z);882 else883 mpz_add(u->z,u->z,b->z);884 }885 838 if (bb!=NULL) 886 839 { … … 891 844 FREE_RNUMBER(bb); 892 845 } 893 /*mpz_t dummy;894 mpz_init(dummy);895 mpz_fdiv_q(dummy, a->z, b->z);896 mpz_mul(dummy, dummy, b->z);897 mpz_add(dummy, dummy, u->z);898 if(mpz_cmp(dummy,a->z) != 0)899 {900 printf("\nERROR longrat:911\n");901 printf("\na = ");n_Print(a,r);902 gmp_printf("\ndummy = %Zd",dummy);903 mpz_clear(dummy);mpz_init(dummy);mpz_tdiv_q(dummy, a->z, b->z);904 gmp_printf("\na div b = %Zd\n u = ", dummy);905 n_Print(u,r);906 }907 mpz_clear(dummy);*/908 846 u=nlShort3(u); 909 847 nlTest(u,r); … … 1108 1046 nlTest(a, r); 1109 1047 #endif 1110 //if (SR_HDL(a) & SR_INT) return (a==INT_TO_SR(-1L));1111 //return FALSE;1112 1048 return (a==INT_TO_SR(-1L)); 1113 1049 } … … 2924 2860 #else 2925 2861 long nn=SR_TO_INT(n); 2926 if ((nn<POW_2_28)&&(nn>= -POW_2_28)) 2927 fprintf(f,"4 %ld ",nn); 2862 if ((nn<POW_2_28_32)&&(nn>= -POW_2_28_32)) 2863 { 2864 int nnn=(int)nn; 2865 fprintf(f,"4 %d ",nnn); 2866 } 2928 2867 else 2929 2868 {
Note: See TracChangeset
for help on using the changeset viewer.