My Project  UNKNOWN_GIT_VERSION
Functions
rintegers.h File Reference
#include "misc/auxiliary.h"

Go to the source code of this file.

Functions

BOOLEAN nrzInitChar (coeffs r, void *parameter)
 
void nrzWrite (number a, const coeffs r)
 
void nrzDelete (number *a, const coeffs)
 
int nrzSize (number a, const coeffs)
 
void nrzWriteFd (number n, const ssiInfo *d, const coeffs)
 
number nrzReadFd (const ssiInfo *d, const coeffs)
 
number nrzInit (long i, const coeffs r)
 

Function Documentation

◆ nrzDelete()

void nrzDelete ( number *  a,
const  coeffs 
)

Definition at line 135 of file rintegers.cc.

136 {
137  if (*a != NULL)
138  {
139  mpz_clear((mpz_ptr) *a);
141  *a = NULL;
142  }
143 }
void * ADDRESS
Definition: auxiliary.h:133
#define omFreeBin(addr, bin)
Definition: omAllocDecl.h:259
#define NULL
Definition: omList.c:10
omBin gmp_nrz_bin
Definition: rintegers.cc:31

◆ nrzInit()

number nrzInit ( long  i,
const coeffs  r 
)

Definition at line 128 of file rintegers.cc.

129 {
130  mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin);
131  mpz_init_set_si(erg, i);
132  return (number) erg;
133 }
int i
Definition: cfEzgcd.cc:125
#define omAllocBin(bin)
Definition: omAllocDecl.h:205

◆ nrzInitChar()

BOOLEAN nrzInitChar ( coeffs  r,
void *  parameter 
)

Definition at line 594 of file rintegers.cc.

595 {
596  assume( getCoeffType(r) == n_Z );
597 
598  r->is_field=FALSE;
599  r->is_domain=TRUE;
600  r->rep=n_rep_gmp;
601 
602  //r->nCoeffIsEqual = ndCoeffIsEqual;
603  r->cfCoeffString = nrzCoeffString;
604  r->cfCoeffName = nrzCoeffName;
605  r->cfCoeffWrite = nrzCoeffWrite;
606  //r->cfKillChar = ndKillChar;
607  r->cfMult = nrzMult;
608  r->cfSub = nrzSub;
609  r->cfAdd = nrzAdd;
610  r->cfDiv = nrzDiv;
611  r->cfIntMod= nrzIntMod;
612  r->cfExactDiv= nrzExactDiv;
613  r->cfInit = nrzInit;
614  r->cfInitMPZ = nrzInitMPZ;
615  r->cfSize = nrzSize;
616  r->cfInt = nrzInt;
617  r->cfDivComp = nrzDivComp;
618  r->cfIsUnit = nrzIsUnit;
619  r->cfGetUnit = nrzGetUnit;
620  r->cfExtGcd = nrzExtGcd;
621  r->cfXExtGcd = nrzXExtGcd;
622  r->cfDivBy = nrzDivBy;
623  r->cfQuotRem = nrzQuotRem;
624  r->cfInpNeg = nrzNeg;
625  r->cfInvers= nrzInvers;
626  r->cfCopy = nrzCopy;
627  r->cfWriteLong = nrzWrite;
628  r->cfRead = nrzRead;
629  r->cfGreater = nrzGreater;
630  r->cfEqual = nrzEqual;
631  r->cfIsZero = nrzIsZero;
632  r->cfIsOne = nrzIsOne;
633  r->cfIsMOne = nrzIsMOne;
634  r->cfGreaterZero = nrzGreaterZero;
635  r->cfPower = nrzPower;
636  r->cfGcd = nrzGcd;
637  r->cfLcm = nrzLcm;
638  r->cfDelete= nrzDelete;
639  r->cfSetMap = nrzSetMap;
640  r->cfQuot1 = nrzQuot1;
641  r->convSingNFactoryN=nrzConvSingNFactoryN;
642  r->convFactoryNSingN=nrzConvFactoryNSingN;
643  r->cfChineseRemainder=nlChineseRemainderSym;
644  r->cfFarey=nrzFarey;
645  r->cfWriteFd=nrzWriteFd;
646  r->cfReadFd=nrzReadFd;
647  // debug stuff
648 
649 #ifdef LDEBUG
650  r->cfDBTest=nrzDBTest;
651 #endif
652 
653  r->ch = 0;
654  r->has_simple_Alloc=FALSE;
655  r->has_simple_Inverse=FALSE;
656  return FALSE;
657 }
#define TRUE
Definition: auxiliary.h:98
#define FALSE
Definition: auxiliary.h:94
@ n_Z
only used if HAVE_RINGS is defined
Definition: coeffs.h:44
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition: coeffs.h:421
@ n_rep_gmp
(mpz_ptr), see rmodulon,h
Definition: coeffs.h:115
number nlChineseRemainderSym(number *x, number *q, int rl, BOOLEAN sym, CFArray &inv_cache, const coeffs CF)
Definition: longrat.cc:2939
#define assume(x)
Definition: mod2.h:390
static number nrzSub(number a, number b, const coeffs)
Definition: rintegers.cc:185
number nrzReadFd(const ssiInfo *d, const coeffs)
Definition: rintegers.cc:586
static number nrzNeg(number c, const coeffs)
Definition: rintegers.cc:315
static BOOLEAN nrzGreater(number a, number b, const coeffs)
Definition: rintegers.cc:223
static BOOLEAN nrzEqual(number a, number b, const coeffs)
Definition: rintegers.cc:218
void nrzWrite(number a, const coeffs)
Definition: rintegers.cc:391
static number nrzGcd(number a, number b, const coeffs)
Definition: rintegers.cc:60
static number nrzDiv(number a, number b, const coeffs)
Definition: rintegers.cc:249
static number nrzMult(number a, number b, const coeffs)
Definition: rintegers.cc:37
static BOOLEAN nrzIsMOne(number a, const coeffs)
Definition: rintegers.cc:213
void nrzDelete(number *a, const coeffs)
Definition: rintegers.cc:135
static number nrzLcm(number a, number b, const coeffs)
Definition: rintegers.cc:48
static BOOLEAN nrzIsZero(number a, const coeffs)
Definition: rintegers.cc:203
static number nrzConvFactoryNSingN(const CanonicalForm n, const coeffs r)
Definition: rintegers.cc:447
static void nrzPower(number a, int i, number *result, const coeffs)
Definition: rintegers.cc:117
number nrzInit(long i, const coeffs)
Definition: rintegers.cc:128
static number nrzInvers(number c, const coeffs r)
Definition: rintegers.cc:305
static number nrzXExtGcd(number a, number b, number *s, number *t, number *u, number *v, const coeffs)
Definition: rintegers.cc:86
static number nrzExactDiv(number a, number b, const coeffs)
Definition: rintegers.cc:266
static long nrzInt(number &n, const coeffs)
Definition: rintegers.cc:172
int nrzSize(number a, const coeffs)
Definition: rintegers.cc:160
static number nrzIntMod(number a, number b, const coeffs)
Definition: rintegers.cc:293
static BOOLEAN nrzIsUnit(number a, const coeffs)
Definition: rintegers.cc:198
static int nrzDivComp(number a, number b, const coeffs r)
Definition: rintegers.cc:238
static BOOLEAN nrzDivBy(number a, number b, const coeffs)
Definition: rintegers.cc:233
static void nrzCoeffWrite(const coeffs, BOOLEAN)
Definition: rintegers.cc:474
static number nrzAdd(number a, number b, const coeffs)
Definition: rintegers.cc:177
static number nrzExtGcd(number a, number b, number *s, number *t, const coeffs)
Definition: rintegers.cc:72
static coeffs nrzQuot1(number c, const coeffs r)
Definition: rintegers.cc:489
static BOOLEAN nrzGreaterZero(number k, const coeffs)
Definition: rintegers.cc:228
static nMapFunc nrzSetMap(const coeffs src, const coeffs)
Definition: rintegers.cc:344
static BOOLEAN nrzIsOne(number a, const coeffs)
Definition: rintegers.cc:208
static char * nrzCoeffName(const coeffs)
Definition: rintegers.cc:479
static number nrzQuotRem(number a, number b, number *r, const coeffs)
Definition: rintegers.cc:274
static number nrzGetUnit(number, const coeffs r)
Definition: rintegers.cc:193
static number nrzInitMPZ(mpz_t m, const coeffs)
Definition: rintegers.cc:502
static BOOLEAN nrzDBTest(number, const char *, const int, const coeffs)
Definition: rintegers.cc:385
static const char * nrzRead(const char *s, number *a, const coeffs)
Definition: rintegers.cc:463
void nrzWriteFd(number n, const ssiInfo *d, const coeffs)
Definition: rintegers.cc:580
static CanonicalForm nrzConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs)
Definition: rintegers.cc:436
static number nrzFarey(number r, number N, const coeffs R)
Definition: rintegers.cc:509
static char * nrzCoeffString(const coeffs cf)
Definition: rintegers.cc:484
static number nrzCopy(number a, const coeffs)
Definition: rintegers.cc:145

◆ nrzReadFd()

number nrzReadFd ( const ssiInfo d,
const  coeffs 
)

Definition at line 586 of file rintegers.cc.

587 {
588  mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin);
589  mpz_init(erg);
591  return (number)erg;
592 }
#define SSI_BASE
Definition: auxiliary.h:149
void s_readmpz_base(s_buff F, mpz_ptr a, int base)
Definition: s_buff.cc:207
s_buff f_read
Definition: s_buff.h:22

◆ nrzSize()

int nrzSize ( number  a,
const  coeffs 
)

Definition at line 160 of file rintegers.cc.

161 {
162  mpz_ptr p=(mpz_ptr)a;
163  int s=p->_mp_alloc;
164  if (s==1) s=(mpz_cmp_ui(p,0)!=0);
165  return s;
166 
167 }
int p
Definition: cfModGcd.cc:4019
const CanonicalForm int s
Definition: facAbsFact.cc:55

◆ nrzWrite()

void nrzWrite ( number  a,
const coeffs  r 
)

Definition at line 391 of file rintegers.cc.

392 {
393  char *s,*z;
394  if (a==NULL)
395  {
396  StringAppendS("o");
397  }
398  else
399  {
400  int l=mpz_sizeinbase((mpz_ptr) a, 10) + 2;
401  s=(char*)omAlloc(l);
402  z=mpz_get_str(s,10,(mpz_ptr) a);
403  StringAppendS(z);
404  omFreeSize((ADDRESS)s,l);
405  }
406 }
int l
Definition: cfEzgcd.cc:93
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
#define omAlloc(size)
Definition: omAllocDecl.h:210
void StringAppendS(const char *st)
Definition: reporter.cc:107

◆ nrzWriteFd()

void nrzWriteFd ( number  n,
const ssiInfo d,
const  coeffs 
)

Definition at line 580 of file rintegers.cc.

581 {
582  mpz_out_str (d->f_write,SSI_BASE, (mpz_ptr)n);
583  fputc(' ',d->f_write);
584 }
FILE * f_write
Definition: s_buff.h:23