Changeset 76e501 in git for kernel/rmodulo2m.h
- Timestamp:
- Jul 21, 2010, 10:37:19 AM (13 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- f0a801bdd99a5337cb60770f49d314447999474b
- Parents:
- cf21dd42f35f06862c90e2223eea0f33e4ff0fbc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/rmodulo2m.h
rcf21dd4 r76e501 12 12 13 13 extern int nr2mExp; 14 extern NATNUMBER nr2mModul; 14 extern NATNUMBER nr2mModul; /* for storing 2^m - 1, i.e., the 15 bit pattern '11..1' of length m */ 15 16 16 17 BOOLEAN nr2mGreaterZero (number k); … … 51 52 static inline number nr2mMultM(number a, number b) 52 53 { 53 return (number) 54 ((((NATNUMBER) a) *((NATNUMBER) b)) %((NATNUMBER) currRing->nr2mModul));54 return (number) 55 ((((NATNUMBER) a) * ((NATNUMBER) b)) & ((NATNUMBER) currRing->nr2mModul)); 55 56 } 56 57 57 58 static inline number nr2mAddM(number a, number b) 58 59 { 59 NATNUMBER r = (NATNUMBER)a + (NATNUMBER)b;60 return (number) (r >= currRing->nr2mModul ? r - currRing->nr2mModul : r);60 return (number) 61 ((((NATNUMBER) a) + ((NATNUMBER) b)) & ((NATNUMBER) currRing->nr2mModul)); 61 62 } 62 63 63 64 static inline number nr2mSubM(number a, number b) 64 65 { 65 return (number)((NATNUMBER)a<(NATNUMBER)b ? 66 currRing->nr2mModul-(NATNUMBER)b+(NATNUMBER)a : (NATNUMBER)a-(NATNUMBER)b); 66 return (number)((NATNUMBER)a < (NATNUMBER)b ? 67 currRing->nr2mModul - (NATNUMBER)b + (NATNUMBER)a + 1 : 68 (NATNUMBER)a - (NATNUMBER)b); 67 69 } 68 70 69 #define nr2mNegM(A) (number)(currRing->nr2mModul -(NATNUMBER)(A))71 #define nr2mNegM(A) (number)(currRing->nr2mModul - (NATNUMBER)(A) + 1) 70 72 #define nr2mEqualM(A,B) ((A)==(B)) 71 73
Note: See TracChangeset
for help on using the changeset viewer.