Functions
rmodulo2m.h File Reference
#include <misc/auxiliary.h>

Go to the source code of this file.

Functions

BOOLEAN nr2mInitChar (coeffs r, void *)
 

Function Documentation

BOOLEAN nr2mInitChar ( coeffs  r,
void *   
)

Definition at line 160 of file rmodulo2m.cc.

161 {
162  assume( getCoeffType(r) == ID );
163  nr2mInitExp((int)(long)(p), r);
164 
165  r->is_field=FALSE;
166  r->is_domain=FALSE;
167  r->rep=n_rep_int;
168 
169  //r->cfKillChar = ndKillChar; /* dummy*/
170  r->nCoeffIsEqual = nr2mCoeffIsEqual;
171  r->cfCoeffString = nr2mCoeffString;
172 
173  r->modBase = (mpz_ptr) omAllocBin (gmp_nrz_bin);
174  mpz_init_set_si (r->modBase, 2L);
175  r->modNumber= (mpz_ptr) omAllocBin (gmp_nrz_bin);
176  mpz_init (r->modNumber);
177  mpz_pow_ui (r->modNumber, r->modBase, r->modExponent);
178 
179  /* next cast may yield an overflow as mod2mMask is an unsigned long */
180  r->ch = (int)r->mod2mMask + 1;
181 
182  r->cfInit = nr2mInit;
183  //r->cfCopy = ndCopy;
184  r->cfInt = nr2mInt;
185  r->cfAdd = nr2mAdd;
186  r->cfSub = nr2mSub;
187  r->cfMult = nr2mMult;
188  r->cfDiv = nr2mDiv;
189  r->cfAnn = nr2mAnn;
190  r->cfIntMod = nr2mMod;
191  r->cfExactDiv = nr2mDiv;
192  r->cfInpNeg = nr2mNeg;
193  r->cfInvers = nr2mInvers;
194  r->cfDivBy = nr2mDivBy;
195  r->cfDivComp = nr2mDivComp;
196  r->cfGreater = nr2mGreater;
197  r->cfEqual = nr2mEqual;
198  r->cfIsZero = nr2mIsZero;
199  r->cfIsOne = nr2mIsOne;
200  r->cfIsMOne = nr2mIsMOne;
201  r->cfGreaterZero = nr2mGreaterZero;
202  r->cfWriteLong = nr2mWrite;
203  r->cfRead = nr2mRead;
204  r->cfPower = nr2mPower;
205  r->cfSetMap = nr2mSetMap;
206 // r->cfNormalize = ndNormalize; // default
207  r->cfLcm = nr2mLcm;
208  r->cfGcd = nr2mGcd;
209  r->cfIsUnit = nr2mIsUnit;
210  r->cfGetUnit = nr2mGetUnit;
211  r->cfExtGcd = nr2mExtGcd;
212  r->cfCoeffWrite = nr2mCoeffWrite;
213  r->cfQuot1 = nr2mQuot1;
214 #ifdef LDEBUG
215  r->cfDBTest = nr2mDBTest;
216 #endif
217  r->has_simple_Alloc=TRUE;
218  return FALSE;
219 }
void nr2mInitExp(int c, const coeffs r)
Definition: rmodulo2m.cc:805
number nr2mGcd(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:258
long nr2mInt(number &n, const coeffs r)
Definition: rmodulo2m.cc:343
#define omAllocBin(bin)
Definition: omAllocDecl.h:205
number nr2mLcm(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:235
nMapFunc nr2mSetMap(const coeffs src, const coeffs dst)
Definition: rmodulo2m.cc:740
number nr2mInit(long i, const coeffs r)
Definition: rmodulo2m.cc:326
number nr2mAdd(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:353
number nr2mSub(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:358
static number nr2mAnn(number b, const coeffs r)
Definition: rmodulo2m.cc:644
number nr2mMult(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:224
const char * nr2mRead(const char *s, number *a, const coeffs r)
Definition: rmodulo2m.cc:846
#define FALSE
Definition: auxiliary.h:140
return P p
Definition: myNF.cc:203
BOOLEAN nr2mGreaterZero(number k, const coeffs r)
Definition: rmodulo2m.cc:460
number nr2mGetUnit(number a, const coeffs r)
Definition: rmodulo2m.cc:368
#define TRUE
Definition: auxiliary.h:144
number nr2mMod(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:570
BOOLEAN nr2mIsMOne(number a, const coeffs r)
Definition: rmodulo2m.cc:386
number nr2mDiv(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:547
BOOLEAN nr2mGreater(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:396
static const n_coeffType ID
Our Type!
Definition: rmodulo2m.cc:28
void nr2mWrite(number a, const coeffs r)
Definition: rmodulo2m.cc:821
coeffs nr2mQuot1(number c, const coeffs r)
Definition: rmodulo2m.cc:117
number nr2mInvers(number c, const coeffs r)
Definition: rmodulo2m.cc:665
number nr2mNeg(number c, const coeffs r)
Definition: rmodulo2m.cc:675
#define LDEBUG
Definition: mod2.h:323
int nr2mDivComp(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:432
#define assume(x)
Definition: mod2.h:405
BOOLEAN nr2mDBTest(number a, const char *f, const int l, const coeffs r)
Definition: rmodulo2m.cc:813
static char * nr2mCoeffString(const coeffs r)
Definition: rmodulo2m.cc:110
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition: coeffs.h:422
BOOLEAN nr2mDivBy(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:404
BOOLEAN nr2mIsUnit(number a, const coeffs r)
Definition: rmodulo2m.cc:363
BOOLEAN nr2mIsZero(number a, const coeffs r)
Definition: rmodulo2m.cc:376
number nr2mExtGcd(number a, number b, number *s, number *t, const coeffs r)
Definition: rmodulo2m.cc:282
void nr2mCoeffWrite(const coeffs r, BOOLEAN details)
Definition: rmodulo2m.cc:93
omBin gmp_nrz_bin
Definition: rintegers.cc:80
(int), see modulop.h
Definition: coeffs.h:109
BOOLEAN nr2mEqual(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:391
BOOLEAN nr2mIsOne(number a, const coeffs r)
Definition: rmodulo2m.cc:381
void nr2mPower(number a, int i, number *result, const coeffs r)
Definition: rmodulo2m.cc:306
BOOLEAN nr2mCoeffIsEqual(const coeffs r, n_coeffType n, void *p)
Definition: rmodulo2m.cc:99