Changeset 8d0331d in git
- Timestamp:
- Apr 29, 2010, 11:35:00 AM (13 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 14b11bba0b33b67ddc0e94233db4a7517190715e
- Parents:
- bd6142c14705f6b8f27233e5ed1c2e662e4688a2
- git-author:
- Frank Seelisch <seelisch@mathematik.uni-kl.de>2010-04-29 11:35:00+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 11:50:23+01:00
- Location:
- coeffs
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
coeffs/numbers.cc
rbd6142 r8d0331d 368 368 n->nGetUnit = nrnGetUnit; 369 369 n->nExtGcd = nrnExtGcd; 370 n->nName= n dName;370 n->nName= nrnName; 371 371 #ifdef LDEBUG 372 372 n->nDBTest=nrnDBTest; -
coeffs/rmodulo2m.cc
rbd6142 r8d0331d 8 8 9 9 #include <string.h> 10 #include <kernel/mod2.h>10 #include "config.h" 11 11 12 12 #ifdef HAVE_RINGS 13 #include <omalloc/mylimits.h> 14 #include <kernel/structs.h> 15 #include <kernel/febase.h> 16 #include <omalloc/omalloc.h> 17 #include <kernel/numbers.h> 18 #include <kernel/longrat.h> 19 #include <kernel/mpr_complex.h> 20 #include <kernel/ring.h> 21 #include <kernel/rmodulo2m.h> 22 #include <kernel/si_gmp.h> 13 #include <mylimits.h> 14 #include "coeffs.h" 15 #include "output.h" 16 #include "omalloc.h" 17 #include "numbers.h" 18 #include "longrat.h" 19 #include "mpr_complex.h" 20 #include "rmodulo2m.h" 21 #include "si_gmp.h" 23 22 24 23 int nr2mExp; … … 644 643 } 645 644 #endif 645 /* #ifdef HAVE_RINGS */ -
coeffs/rmodulo2m.h
rbd6142 r8d0331d 15 15 bit pattern '11..1' of length m */ 16 16 17 number nr2mCopy (number a );18 BOOLEAN nr2mGreaterZero (number k );19 number nr2mMult (number a, number b );20 number nr2mInit (int i, const ringr);21 int nr2mInt (number &n, const ringr);22 number nr2mAdd (number a, number b );23 number nr2mSub (number a, number b );24 void nr2mPower (number a, int i, number * result );25 BOOLEAN nr2mIsZero (number a );26 BOOLEAN nr2mIsOne (number a );27 BOOLEAN nr2mIsMOne (number a );28 BOOLEAN nr2mIsUnit (number a );29 number nr2mGetUnit (number a );30 number nr2mDiv (number a, number b );31 number nr2mIntDiv (number a,number b );32 number nr2mMod (number a,number b );33 number nr2mNeg (number c );34 number nr2mInvers (number c );35 BOOLEAN nr2mGreater (number a, number b );36 BOOLEAN nr2mDivBy (number a, number b );37 int nr2mDivComp (number a, number b );38 BOOLEAN nr2mEqual (number a, number b );39 number nr2mLcm (number a, number b, ringr);40 number nr2mGcd (number a, number b,ringr);41 number nr2mExtGcd (number a, number b, number *s, number *t );17 number nr2mCopy (number a, const coeffs r); 18 BOOLEAN nr2mGreaterZero (number k, const coeffs r); 19 number nr2mMult (number a, number b, const coeffs r); 20 number nr2mInit (int i, const coeffs r); 21 int nr2mInt (number &n, const coeffs r); 22 number nr2mAdd (number a, number b, const coeffs r); 23 number nr2mSub (number a, number b, const coeffs r); 24 void nr2mPower (number a, int i, number * result, const coeffs r); 25 BOOLEAN nr2mIsZero (number a, const coeffs r); 26 BOOLEAN nr2mIsOne (number a, const coeffs r); 27 BOOLEAN nr2mIsMOne (number a, const coeffs r); 28 BOOLEAN nr2mIsUnit (number a, const coeffs r); 29 number nr2mGetUnit (number a, const coeffs r); 30 number nr2mDiv (number a, number b, const coeffs r); 31 number nr2mIntDiv (number a,number b, const coeffs r); 32 number nr2mMod (number a,number b, const coeffs r); 33 number nr2mNeg (number c, const coeffs r); 34 number nr2mInvers (number c, const coeffs r); 35 BOOLEAN nr2mGreater (number a, number b, const coeffs r); 36 BOOLEAN nr2mDivBy (number a, number b, const coeffs r); 37 int nr2mDivComp (number a, number b, const coeffs r); 38 BOOLEAN nr2mEqual (number a, number b, const coeffs r); 39 number nr2mLcm (number a, number b, const coeffs r); 40 number nr2mGcd (number a, number b, const coeffs r); 41 number nr2mExtGcd (number a, number b, number *s, number *t, const coeffs r); 42 42 nMapFunc nr2mSetMap (const ring src, const ring dst); 43 void nr2mWrite (number &a, const ringr);44 const char * nr2mRead (const char *s, number *a );45 char * nr2mName (number n );43 void nr2mWrite (number &a, const coeffs r); 44 const char * nr2mRead (const char *s, number *a, const coeffs r); 45 char * nr2mName (number n, const coeffs r); 46 46 #ifdef LDEBUG 47 BOOLEAN nr2mDBTest (number a, const char *f, const int l );47 BOOLEAN nr2mDBTest (number a, const char *f, const int l, const coeffs r); 48 48 #endif 49 void nr2mSetExp(int c, const ringr);50 void nr2mInitExp(int c, const ringr);49 void nr2mSetExp(int c, const coeffs r); 50 void nr2mInitExp(int c, const coeffs r); 51 51 52 52 53 static inline number nr2mMultM(number a, number b )53 static inline number nr2mMultM(number a, number b, const coeffs r) 54 54 { 55 55 return (number) 56 ((((NATNUMBER) a) * ((NATNUMBER) b)) & ((NATNUMBER) currRing->nr2mModul));56 ((((NATNUMBER) a) * ((NATNUMBER) b)) & ((NATNUMBER) r->nr2mModul)); 57 57 } 58 58 59 static inline number nr2mAddM(number a, number b )59 static inline number nr2mAddM(number a, number b, const coeffs r) 60 60 { 61 61 return (number) 62 ((((NATNUMBER) a) + ((NATNUMBER) b)) & ((NATNUMBER) currRing->nr2mModul));62 ((((NATNUMBER) a) + ((NATNUMBER) b)) & ((NATNUMBER) r->nr2mModul)); 63 63 } 64 64 65 static inline number nr2mSubM(number a, number b )65 static inline number nr2mSubM(number a, number b, const coeffs r) 66 66 { 67 return (number)((NATNUMBER)a < (NATNUMBER)b ? 68 currRing->nr2mModul - (NATNUMBER)b + (NATNUMBER)a + 1 : 69 (NATNUMBER)a - (NATNUMBER)b); 67 return (number)((NATNUMBER)a<(NATNUMBER)b ? 68 r->nr2mModul-(NATNUMBER)b+(NATNUMBER)a + 1: (NATNUMBER)a-(NATNUMBER)b); 70 69 } 71 70 72 #define nr2mNegM(A ) (number)(currRing->nr2mModul -(NATNUMBER)(A) + 1)71 #define nr2mNegM(A,r) (number)(r->nr2mModul-(NATNUMBER)(A) + 1) 73 72 #define nr2mEqualM(A,B) ((A)==(B)) 74 73 75 number nr2mMapQ(number from);76 74 #endif 77 75 #endif -
coeffs/rmodulon.cc
rbd6142 r8d0331d 8 8 9 9 #include <string.h> 10 #include <kernel/mod2.h> 11 #include <omalloc/mylimits.h> 12 #include <kernel/structs.h> 13 #include <kernel/febase.h> 14 #include <omalloc/omalloc.h> 15 #include <kernel/numbers.h> 16 #include <kernel/longrat.h> 17 #include <kernel/mpr_complex.h> 18 #include <kernel/ring.h> 19 #include <kernel/rmodulon.h> 20 #include <kernel/si_gmp.h> 10 #include "config.h" 21 11 22 12 #ifdef HAVE_RINGS 23 extern omBin gmp_nrz_bin; 13 #include <mylimits.h> 14 #include "coeffs.h" 15 #include "output.h" 16 #include "omalloc.h" 17 #include "numbers.h" 18 #include "longrat.h" 19 #include "mpr_complex.h" 20 #include "rmodulon.h" 21 #include "si_gmp.h" 22 23 extern omBin gmp_nrz_bin; 24 24 25 25 int_number nrnMinusOne = NULL; … … 570 570 } 571 571 #endif 572 /* #ifdef HAVE_RINGS */ -
coeffs/rmodulon.h
rbd6142 r8d0331d 15 15 #endif 16 16 17 number nrnCopy (number a);18 17 number cfrnCopy (number a, const ring r); 19 int nrnSize (number a );18 int nrnSize (number a, const ring r); 20 19 void nrnDelete (number *a, const ring r); 21 BOOLEAN nrnGreaterZero (number k );22 number nrnMult (number a, number b );20 BOOLEAN nrnGreaterZero (number k, const ring r); 21 number nrnMult (number a, number b, const ring r); 23 22 number nrnInit (int i, const ring r); 24 23 int nrnInt (number &n, const ring r); 25 number nrnAdd (number a, number b );26 number nrnSub (number a, number b );27 void nrnPower (number a, int i, number * result );28 BOOLEAN nrnIsZero (number a );29 BOOLEAN nrnIsOne (number a );30 BOOLEAN nrnIsMOne (number a );31 BOOLEAN nrnIsUnit (number a );32 number nrnGetUnit (number a );33 number nrnDiv (number a, number b );34 number nrnMod (number a,number b );35 number nrnIntDiv (number a,number b );36 number nrnNeg (number c );37 number nrnInvers (number c );38 BOOLEAN nrnGreater (number a, number b );39 BOOLEAN nrnDivBy (number a, number b );40 int nrnDivComp (number a, number b );41 BOOLEAN nrnEqual (number a, number b );42 number nrnLcm (number a,number b, ring r);43 number nrnGcd (number a,number b, ring r);44 number nrnExtGcd (number a, number b, number *s, number *t );24 number nrnAdd (number a, number b, const ring r); 25 number nrnSub (number a, number b, const ring r); 26 void nrnPower (number a, int i, number * result, const ring r); 27 BOOLEAN nrnIsZero (number a, const ring r); 28 BOOLEAN nrnIsOne (number a, const ring r); 29 BOOLEAN nrnIsMOne (number a, const ring r); 30 BOOLEAN nrnIsUnit (number a, const ring r); 31 number nrnGetUnit (number a, const ring r); 32 number nrnDiv (number a, number b, const ring r); 33 number nrnMod (number a,number b, const ring r); 34 number nrnIntDiv (number a,number b, const ring r); 35 number nrnNeg (number c, const ring r); 36 number nrnInvers (number c, const ring r); 37 BOOLEAN nrnGreater (number a, number b, const ring r); 38 BOOLEAN nrnDivBy (number a, number b, const ring r); 39 int nrnDivComp (number a, number b, const ring r); 40 BOOLEAN nrnEqual (number a, number b, const ring r); 41 number nrnLcm (number a,number b, const ring r); 42 number nrnGcd (number a,number b, const ring r); 43 number nrnExtGcd (number a, number b, number *s, number *t, const ring r); 45 44 nMapFunc nrnSetMap (const ring src, const ring dst); 46 45 #define nrnWrite nrzWrite 47 const char * nrnRead (const char *s, number *a );48 char * nrnName (number n );46 const char * nrnRead (const char *s, number *a, const ring r); 47 char * nrnName (number n, const ring r); 49 48 #ifdef LDEBUG 50 BOOLEAN nrnDBTest (number a, const char *f, const int l );49 BOOLEAN nrnDBTest (number a, const char *f, const int l, const ring r); 51 50 #endif 52 void nrnSetExp(int c, ring r);53 void nrnInitExp(int c, ring r);51 void nrnSetExp(int c, const ring r); 52 void nrnInitExp(int c, const ring r); 54 53 55 number nrnMapQ(number from);56 number nrnMapGMP(number from);57 54 #endif 58 55 #endif
Note: See TracChangeset
for help on using the changeset viewer.