My Project  debian-1:4.1.1-p2+ds-4build2
Macros | Typedefs | Functions | Variables
numbers.h File Reference
#include "coeffs/coeffs.h"
#include "omalloc/omalloc.h"

Go to the source code of this file.

Macros

#define nCopy(n)   n_Copy(n, currRing->cf)
 
#define nDelete(n)   n_Delete(n, currRing->cf)
 
#define nMult(n1, n2)   n_Mult(n1, n2, currRing->cf)
 
#define nAdd(n1, n2)   n_Add(n1, n2, currRing->cf)
 
#define nIsZero(n)   n_IsZero(n, currRing->cf)
 
#define nEqual(n1, n2)   n_Equal(n1, n2, currRing->cf)
 
#define nInpNeg(n)   n_InpNeg(n, currRing->cf)
 
#define nSub(n1, n2)   n_Sub(n1, n2, currRing->cf)
 
#define nGetChar()   n_GetChar(currRing->cf)
 
#define nInit(i)   n_Init(i, currRing->cf)
 
#define nIsOne(n)   n_IsOne(n, currRing->cf)
 
#define nIsMOne(n)   n_IsMOne(n, currRing->cf)
 
#define nGreaterZero(n)   n_GreaterZero(n, currRing->cf)
 
#define nGreater(a, b)   n_Greater (a,b,currRing->cf)
 
#define nWrite(n)   n_Write(n, currRing->cf, rShortOut(currRing))
 
#define nNormalize(n)   n_Normalize(n,currRing->cf)
 
#define nGcd(a, b)   n_Gcd(a,b,currRing->cf)
 
#define nDiv(a, b)   n_Div(a,b,currRing->cf)
 
#define nInvers(a)   n_Invers(a,currRing->cf)
 
#define nExactDiv(a, b)   n_ExactDiv(a,b,currRing->cf)
 
#define nTest(a)   n_Test(a,currRing->cf)
 
#define nInpMult(a, b)   n_InpMult(a,b,currRing->cf)
 
#define nPower(a, b, res)   n_Power(a,b,res,currRing->cf)
 
#define nSize(n)   n_Size(n,currRing->cf)
 
#define nGetDenom(N)   n_GetDenom((N),currRing->cf)
 
#define nGetNumerator(N)   n_GetNumerator((N),currRing->cf)
 
#define nSetMap(R)   n_SetMap(R,currRing->cf)
 
#define nPrint(a)   n_Print(a,currRing->cf)
 only for debug, over any initalized currRing More...
 
#define SHORT_REAL_LENGTH   6
 

Typedefs

typedef BOOLEAN(* cfInitCharProc) (coeffs, void *)
 initialize an object of type coeff, return FALSE in case of success More...
 

Functions

number ndGcd (number a, number b, const coeffs)
 
number ndCopyMap (number a, const coeffs src, const coeffs dst)
 
CanonicalForm ndConvSingNFactoryN (number, BOOLEAN, const coeffs)
 
BOOLEAN n_IsZeroDivisor (number a, const coeffs r)
 Test whether a is a zero divisor in r i.e. not coprime with char. of r very inefficient implementation: should ONLY be used for debug stuff /tests. More...
 
n_coeffType nRegister (n_coeffType n, cfInitCharProc p)
 
coeffs nFindCoeffByName (const char *n)
 find an existing coeff by its "CoeffName" More...
 

Variables

const char *const nDivBy0 = "div by 0"
 

Macro Definition Documentation

◆ nAdd

#define nAdd (   n1,
  n2 
)    n_Add(n1, n2, currRing->cf)

Definition at line 19 of file numbers.h.

◆ nCopy

#define nCopy (   n)    n_Copy(n, currRing->cf)

Definition at line 16 of file numbers.h.

◆ nDelete

#define nDelete (   n)    n_Delete(n, currRing->cf)

Definition at line 17 of file numbers.h.

◆ nDiv

#define nDiv (   a,
  b 
)    n_Div(a,b,currRing->cf)

Definition at line 33 of file numbers.h.

◆ nEqual

#define nEqual (   n1,
  n2 
)    n_Equal(n1, n2, currRing->cf)

Definition at line 21 of file numbers.h.

◆ nExactDiv

#define nExactDiv (   a,
  b 
)    n_ExactDiv(a,b,currRing->cf)

Definition at line 35 of file numbers.h.

◆ nGcd

#define nGcd (   a,
  b 
)    n_Gcd(a,b,currRing->cf)

Definition at line 32 of file numbers.h.

◆ nGetChar

#define nGetChar ( )    n_GetChar(currRing->cf)

Definition at line 24 of file numbers.h.

◆ nGetDenom

#define nGetDenom (   N)    n_GetDenom((N),currRing->cf)

Definition at line 41 of file numbers.h.

◆ nGetNumerator

#define nGetNumerator (   N)    n_GetNumerator((N),currRing->cf)

Definition at line 42 of file numbers.h.

◆ nGreater

#define nGreater (   a,
  b 
)    n_Greater (a,b,currRing->cf)

Definition at line 29 of file numbers.h.

◆ nGreaterZero

#define nGreaterZero (   n)    n_GreaterZero(n, currRing->cf)

Definition at line 28 of file numbers.h.

◆ nInit

#define nInit (   i)    n_Init(i, currRing->cf)

Definition at line 25 of file numbers.h.

◆ nInpMult

#define nInpMult (   a,
  b 
)    n_InpMult(a,b,currRing->cf)

Definition at line 38 of file numbers.h.

◆ nInpNeg

#define nInpNeg (   n)    n_InpNeg(n, currRing->cf)

Definition at line 22 of file numbers.h.

◆ nInvers

#define nInvers (   a)    n_Invers(a,currRing->cf)

Definition at line 34 of file numbers.h.

◆ nIsMOne

#define nIsMOne (   n)    n_IsMOne(n, currRing->cf)

Definition at line 27 of file numbers.h.

◆ nIsOne

#define nIsOne (   n)    n_IsOne(n, currRing->cf)

Definition at line 26 of file numbers.h.

◆ nIsZero

#define nIsZero (   n)    n_IsZero(n, currRing->cf)

Definition at line 20 of file numbers.h.

◆ nMult

#define nMult (   n1,
  n2 
)    n_Mult(n1, n2, currRing->cf)

Definition at line 18 of file numbers.h.

◆ nNormalize

#define nNormalize (   n)    n_Normalize(n,currRing->cf)

Definition at line 31 of file numbers.h.

◆ nPower

#define nPower (   a,
  b,
  res 
)    n_Power(a,b,res,currRing->cf)

Definition at line 39 of file numbers.h.

◆ nPrint

#define nPrint (   a)    n_Print(a,currRing->cf)

only for debug, over any initalized currRing

Definition at line 47 of file numbers.h.

◆ nSetMap

#define nSetMap (   R)    n_SetMap(R,currRing->cf)

Definition at line 44 of file numbers.h.

◆ nSize

#define nSize (   n)    n_Size(n,currRing->cf)

Definition at line 40 of file numbers.h.

◆ nSub

#define nSub (   n1,
  n2 
)    n_Sub(n1, n2, currRing->cf)

Definition at line 23 of file numbers.h.

◆ nTest

#define nTest (   a)    n_Test(a,currRing->cf)

Definition at line 36 of file numbers.h.

◆ nWrite

#define nWrite (   n)    n_Write(n, currRing->cf, rShortOut(currRing))

Definition at line 30 of file numbers.h.

◆ SHORT_REAL_LENGTH

#define SHORT_REAL_LENGTH   6

Definition at line 58 of file numbers.h.

Typedef Documentation

◆ cfInitCharProc

typedef BOOLEAN(* cfInitCharProc) (coeffs, void *)

initialize an object of type coeff, return FALSE in case of success

Definition at line 95 of file numbers.h.

Function Documentation

◆ n_IsZeroDivisor()

BOOLEAN n_IsZeroDivisor ( number  a,
const coeffs  r 
)

Test whether a is a zero divisor in r i.e. not coprime with char. of r very inefficient implementation: should ONLY be used for debug stuff /tests.

Definition at line 145 of file numbers.cc.

146 {
147  BOOLEAN ret = n_IsZero(a, r);
148  int c = n_GetChar(r);
149  if (ret || (c==0) || (r->is_field))
150  return ret; /*n_IsZero(a, r)*/
151  number ch = n_Init( c, r );
152  number g = n_Gcd( ch, a, r );
153  ret = !n_IsOne (g, r);
154  n_Delete(&ch, r);
155  n_Delete(&g, r);
156  return ret;
157 }

◆ ndConvSingNFactoryN()

CanonicalForm ndConvSingNFactoryN ( number  ,
BOOLEAN  ,
const  coeffs 
)

Definition at line 272 of file numbers.cc.

273 {
274  CanonicalForm term(0);
275  WerrorS("no conversion to factory");
276  return term;
277 }

◆ ndCopyMap()

number ndCopyMap ( number  a,
const coeffs  src,
const coeffs  dst 
)

Definition at line 251 of file numbers.cc.

252 {
253  // aRing and r need not be the same, but must be the same representation
254  assume(aRing->rep==r->rep);
256  return a;
257  else
258  return r->cfCopy(a, r);
259 }

◆ ndGcd()

number ndGcd ( number  a,
number  b,
const  coeffs 
)

Definition at line 161 of file numbers.cc.

161 { return r->cfInit(1,r); }

◆ nFindCoeffByName()

coeffs nFindCoeffByName ( const char *  n)

find an existing coeff by its "CoeffName"

Definition at line 568 of file numbers.cc.

570 {
571  n_Procs_s* n=cf_root;
572  while(n!=NULL)
573  {
574  if ((n->cfCoeffName!=NULL)
575  && (strcmp(cf_name,n->cfCoeffName(n))==0)) return n;
576  n=n->next;
577  }
578  // TODO: parametrized cf, e.g. flint:Z/26[a]
579  return NULL;

◆ nRegister()

n_coeffType nRegister ( n_coeffType  n,
cfInitCharProc  p 
)

Definition at line 538 of file numbers.cc.

540 {
541  if (n==n_unknown)
542  {
545  {
547  ((int)nLastCoeffs+1)*sizeof(cfInitCharProc));
549  ((int)nLastCoeffs)*sizeof(cfInitCharProc));
550  }
551  else
552  {
554  ((int)nLastCoeffs)*sizeof(cfInitCharProc),
555  (((int)nLastCoeffs)+1)*sizeof(cfInitCharProc));
556  }
557 
559  return nLastCoeffs;
560  }
561  else
562  {
563  if (nInitCharTable[n]!=NULL) Print("coeff %d already initialized\n",n);
564  nInitCharTable[n]=p;
565  return n;
566  }

Variable Documentation

◆ nDivBy0

const char* const nDivBy0 = "div by 0"

Definition at line 89 of file numbers.h.

n_Procs_s::next
coeffs next
Definition: coeffs.h:126
n_Procs_s::cfCoeffName
char *(* cfCoeffName)(const coeffs r)
default name of cf, should substitue cfCoeffWrite, cfCoeffString
Definition: coeffs.h:155
n_GetChar
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
Definition: coeffs.h:445
g
g
Definition: cfModGcd.cc:4031
n_Delete
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
Definition: coeffs.h:456
n_IsZero
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
Definition: coeffs.h:465
n_IsOne
static FORCE_INLINE BOOLEAN n_IsOne(number n, const coeffs r)
TRUE iff 'n' represents the one element.
Definition: coeffs.h:469
CanonicalForm
factory's main class
Definition: canonicalform.h:77
term
Definition: int_poly.h:33
n_coeffType
n_coeffType
Definition: coeffs.h:27
nInitCharTableDefault
cfInitCharProc nInitCharTableDefault[]
Definition: numbers.cc:313
BOOLEAN
int BOOLEAN
Definition: auxiliary.h:85
cfInitCharProc
BOOLEAN(* cfInitCharProc)(coeffs, void *)
initialize an object of type coeff, return FALSE in case of success
Definition: numbers.h:95
nCoeff_has_simple_Alloc
static FORCE_INLINE BOOLEAN nCoeff_has_simple_Alloc(const coeffs r)
TRUE if n_Delete/n_New are empty operations.
Definition: coeffs.h:920
n_Init
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Definition: coeffs.h:539
cf_root
n_Procs_s * cf_root
Definition: numbers.cc:48
Print
#define Print
Definition: emacs.cc:80
n_Gcd
static FORCE_INLINE number n_Gcd(number a, number b, const coeffs r)
in Z: return the gcd of 'a' and 'b' in Z/nZ, Z/2^kZ: computed as in the case Z in Z/pZ,...
Definition: coeffs.h:687
WerrorS
void WerrorS(const char *s)
Definition: feFopen.cc:24
assume
#define assume(x)
Definition: mod2.h:390
NULL
#define NULL
Definition: omList.c:10
p
int p
Definition: cfModGcd.cc:4019
nInitCharTable
static cfInitCharProc * nInitCharTable
Definition: numbers.cc:345
n_unknown
@ n_unknown
Definition: coeffs.h:29
omAlloc0
#define omAlloc0(size)
Definition: omAllocDecl.h:211
n_Procs_s
Definition: coeffs.h:123
nLastCoeffs
static n_coeffType nLastCoeffs
Definition: numbers.cc:312
omReallocSize
#define omReallocSize(addr, o_size, size)
Definition: omAllocDecl.h:220