Changeset 106406 in git
- Timestamp:
- Jul 16, 2009, 6:01:26 PM (14 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'c18334b998a8adbf0013b8e1ce0824774019443e')
- Children:
- 9446f84181f539db0f2689bb27e177084073a62f
- Parents:
- 40f856763215f79e7dbf5992da04ba55904357b1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/longrat.cc
r40f8567 r106406 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: longrat.cc,v 1.4 1 2009-06-04 08:32:59Singular Exp $ */4 /* $Id: longrat.cc,v 1.42 2009-07-16 16:01:26 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: computation with long rational numbers (Hubert Grassmann) … … 76 76 #define MPZ_EXACTDIV(A,B,C) mpz_divexact((A),(B),(C)) 77 77 78 void _nlDelete_NoImm(number *a); 78 79 79 80 /*************************************************************** … … 1160 1161 if (mpz_cmp_ui(&x->z,(long)0)==0) 1161 1162 { 1162 nlDelete(&x,currRing);1163 _nlDelete_NoImm(&x); 1163 1164 return INT_TO_SR(0); 1164 1165 } … … 1167 1168 if (mpz_cmp(&x->z,&x->n)==0) 1168 1169 { 1169 nlDelete(&x,currRing);1170 _nlDelete_NoImm(&x); 1170 1171 return INT_TO_SR(1); 1171 1172 } … … 1176 1177 { 1177 1178 assume(x->s==3); 1178 if (mpz_cmp_ui(&x->z,(long)0)==0) 1179 { 1180 nlDelete(&x,currRing); 1181 return INT_TO_SR(0); 1182 } 1183 if (mpz_size1(&x->z)<=MP_SMALL) 1184 { 1185 if (x->s==3) 1186 { 1187 int ui=(int)mpz_get_si(&x->z); 1188 if ((((ui<<3)>>3)==ui) 1189 && (mpz_cmp_si(&x->z,(long)ui)==0)) 1190 { 1191 mpz_clear(&x->z); 1192 omFreeBin((ADDRESS)x, rnumber_bin); 1193 return INT_TO_SR(ui); 1194 } 1179 if ((mpz_cmp_ui(&x->z,(long)0)==0) 1180 || (mpz_size1(&x->z)<=MP_SMALL)) 1181 { 1182 int ui=(int)mpz_get_si(&x->z); 1183 if ((((ui<<3)>>3)==ui) 1184 && (mpz_cmp_si(&x->z,(long)ui)==0)) 1185 { 1186 mpz_clear(&x->z); 1187 omFreeBin((ADDRESS)x, rnumber_bin); 1188 return INT_TO_SR(ui); 1195 1189 } 1196 1190 } … … 2206 2200 BOOLEAN _nlEqual_aNoImm_OR_bNoImm(number a, number b); 2207 2201 number _nlCopy_NoImm(number a); 2208 void _nlDelete_NoImm(number *a);2209 2202 number _nlNeg_NoImm(number a); 2210 2203 number _nlAdd_aNoImm_OR_bNoImm(number a, number b);
Note: See TracChangeset
for help on using the changeset viewer.