Data Structures | Functions
rmodulon.h File Reference
#include <misc/auxiliary.h>
#include <coeffs/rintegers.h>

Go to the source code of this file.

Data Structures

struct  ZnmInfo
 

Functions

BOOLEAN nrnInitChar (coeffs r, void *)
 

Data Structure Documentation

struct ZnmInfo

Definition at line 18 of file rmodulon.h.

Data Fields
mpz_ptr base
unsigned long exp

Function Documentation

BOOLEAN nrnInitChar ( coeffs  r,
void *   
)

Definition at line 163 of file rmodulon.cc.

164 {
165  assume( (getCoeffType(r) == ID) || (getCoeffType (r) == ID2) );
166  ZnmInfo * info= (ZnmInfo *) p;
167  r->modBase= (mpz_ptr)nrnCopy((number)info->base, r); //this circumvents the problem
168  //in bigintmat.cc where we cannot create a "legal" nrn that can be freed.
169  //If we take a copy, we can do whatever we want.
170 
171  nrnInitExp (info->exp, r);
172 
173  /* next computation may yield wrong characteristic as r->modNumber
174  is a GMP number */
175  r->ch = mpz_get_ui(r->modNumber);
176 
177  r->is_field=FALSE;
178  r->is_domain=FALSE;
179  r->rep=n_rep_gmp;
180 
181 
182  r->cfCoeffString = nrnCoeffString;
183 
184  r->cfInit = nrnInit;
185  r->cfDelete = nrnDelete;
186  r->cfCopy = nrnCopy;
187  r->cfSize = nrnSize;
188  r->cfInt = nrnInt;
189  r->cfAdd = nrnAdd;
190  r->cfSub = nrnSub;
191  r->cfMult = nrnMult;
192  r->cfDiv = nrnDiv;
193  r->cfAnn = nrnAnn;
194  r->cfIntMod = nrnMod;
195  r->cfExactDiv = nrnDiv;
196  r->cfInpNeg = nrnNeg;
197  r->cfInvers = nrnInvers;
198  r->cfDivBy = nrnDivBy;
199  r->cfDivComp = nrnDivComp;
200  r->cfGreater = nrnGreater;
201  r->cfEqual = nrnEqual;
202  r->cfIsZero = nrnIsZero;
203  r->cfIsOne = nrnIsOne;
204  r->cfIsMOne = nrnIsMOne;
205  r->cfGreaterZero = nrnGreaterZero;
206  r->cfWriteLong = nrnWrite;
207  r->cfRead = nrnRead;
208  r->cfPower = nrnPower;
209  r->cfSetMap = nrnSetMap;
210  //r->cfNormalize = ndNormalize;
211  r->cfLcm = nrnLcm;
212  r->cfGcd = nrnGcd;
213  r->cfIsUnit = nrnIsUnit;
214  r->cfGetUnit = nrnGetUnit;
215  r->cfExtGcd = nrnExtGcd;
216  r->cfXExtGcd = nrnXExtGcd;
217  r->cfQuotRem = nrnQuotRem;
218  r->cfCoeffWrite = nrnCoeffWrite;
219  r->nCoeffIsEqual = nrnCoeffsEqual;
220  r->cfKillChar = nrnKillChar;
221  r->cfQuot1 = nrnQuot1;
222 #ifdef LDEBUG
223  r->cfDBTest = nrnDBTest;
224 #endif
225  return FALSE;
226 }
mpz_ptr base
Definition: rmodulon.h:18
number nrnMult(number a, number b, const coeffs r)
Definition: rmodulon.cc:271
number nrnQuotRem(number a, number b, number *s, const coeffs r)
Definition: rmodulon.cc:700
#define FALSE
Definition: auxiliary.h:140
return P p
Definition: myNF.cc:203
number nrnExtGcd(number a, number b, number *s, number *t, const coeffs r)
Definition: rmodulon.cc:373
number nrnLcm(number a, number b, const coeffs r)
Definition: rmodulon.cc:326
BOOLEAN nrnIsMOne(number a, const coeffs r)
Definition: rmodulon.cc:504
BOOLEAN nrnDivBy(number a, number b, const coeffs r)
Definition: rmodulon.cc:589
static BOOLEAN nrnCoeffsEqual(const coeffs r, n_coeffType n, void *parameter)
Definition: rmodulon.cc:91
number nrnMod(number a, number b, const coeffs r)
Definition: rmodulon.cc:644
BOOLEAN nrnGreaterZero(number k, const coeffs r)
Definition: rmodulon.cc:526
static const n_coeffType ID2
Definition: rmodulon.cc:28
void nrnInitExp(unsigned long c, const coeffs r)
Definition: rmodulon.cc:923
number nrnDiv(number a, number b, const coeffs r)
Definition: rmodulon.cc:611
void nrnDelete(number *a, const coeffs r)
Definition: rmodulon.cc:239
number nrnAnn(number a, const coeffs r)
Definition: rmodulon.cc:576
const ring r
Definition: syzextra.cc:208
static char * nrnCoeffString(const coeffs r)
Definition: rmodulon.cc:97
BOOLEAN nrnIsUnit(number a, const coeffs r)
Definition: rmodulon.cc:531
const char * nrnRead(const char *s, number *a, const coeffs r)
Definition: rmodulon.cc:972
#define assume(x)
Definition: mod2.h:405
BOOLEAN nrnDBTest(number a, const char *f, const int l, const coeffs r)
Definition: rmodulon.cc:934
int nrnSize(number a, const coeffs r)
Definition: rmodulon.cc:254
unsigned long exp
Definition: rmodulon.h:18
#define info
Definition: libparse.cc:1254
(mpz_ptr), see rmodulon,h
Definition: coeffs.h:114
static const n_coeffType ID
Our Type!
Definition: rmodulon.cc:27
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition: coeffs.h:422
void nrnPower(number a, int i, number *result, const coeffs r)
Definition: rmodulon.cc:280
number nrnAdd(number a, number b, const coeffs r)
Definition: rmodulon.cc:288
BOOLEAN nrnGreater(number a, number b, const coeffs r)
Definition: rmodulon.cc:521
static void nrnKillChar(coeffs r)
Definition: rmodulon.cc:109
number nrnXExtGcd(number a, number b, number *s, number *t, number *u, number *v, const coeffs r)
Definition: rmodulon.cc:397
number nrnCopy(number a, const coeffs r)
Definition: rmodulon.cc:247
number nrnGetUnit(number a, const coeffs r)
Definition: rmodulon.cc:539
number nrnSub(number a, number b, const coeffs r)
Definition: rmodulon.cc:297
BOOLEAN nrnIsOne(number a, const coeffs r)
Definition: rmodulon.cc:496
BOOLEAN nrnIsZero(number a, const coeffs r)
Definition: rmodulon.cc:488
int nrnDivComp(number a, number b, const coeffs r)
Definition: rmodulon.cc:603
nMapFunc nrnSetMap(const coeffs src, const coeffs dst)
Definition: rmodulon.cc:826
BOOLEAN nrnEqual(number a, number b, const coeffs r)
Definition: rmodulon.cc:516
#define nrnWrite
Definition: rmodulon.cc:63
number nrnInit(long i, const coeffs r)
Definition: rmodulon.cc:231
number nrnInvers(number c, const coeffs r)
Definition: rmodulon.cc:314
void nrnCoeffWrite(const coeffs r, BOOLEAN details)
Definition: rmodulon.cc:81
long nrnInt(number &n, const coeffs r)
Definition: rmodulon.cc:263
number nrnNeg(number c, const coeffs r)
Definition: rmodulon.cc:306
number nrnGcd(number a, number b, const coeffs r)
Definition: rmodulon.cc:339
coeffs nrnQuot1(number c, const coeffs r)
Definition: rmodulon.cc:117