My Project  debian-1:4.1.1-p2+ds-4build3
Functions
rmodulo2m.h File Reference
#include "misc/auxiliary.h"

Go to the source code of this file.

Functions

BOOLEAN nr2mInitChar (coeffs r, void *)
 
number nr2mMapZp (number from, const coeffs, const coeffs dst)
 

Function Documentation

◆ nr2mInitChar()

BOOLEAN nr2mInitChar ( coeffs  r,
void *   
)

Definition at line 782 of file rmodulo2m.cc.

783 {
784  assume( getCoeffType(r) == n_Z2m );
785  nr2mInitExp((int)(long)(p), r);
786 
787  r->is_field=FALSE;
788  r->is_domain=FALSE;
789  r->rep=n_rep_int;
790 
791  //r->cfKillChar = ndKillChar; /* dummy*/
792  r->nCoeffIsEqual = nr2mCoeffIsEqual;
793  r->cfCoeffString = nr2mCoeffString;
794 
795  r->modBase = (mpz_ptr) omAllocBin (gmp_nrz_bin);
796  mpz_init_set_si (r->modBase, 2L);
797  r->modNumber= (mpz_ptr) omAllocBin (gmp_nrz_bin);
798  mpz_init (r->modNumber);
799  mpz_pow_ui (r->modNumber, r->modBase, r->modExponent);
800 
801  /* next cast may yield an overflow as mod2mMask is an unsigned long */
802  r->ch = (int)r->mod2mMask + 1;
803 
804  r->cfInit = nr2mInit;
805  //r->cfCopy = ndCopy;
806  r->cfInt = nr2mInt;
807  r->cfAdd = nr2mAdd;
808  r->cfSub = nr2mSub;
809  r->cfMult = nr2mMult;
810  r->cfDiv = nr2mDiv;
811  r->cfAnn = nr2mAnn;
812  r->cfIntMod = nr2mMod;
813  r->cfExactDiv = nr2mDiv;
814  r->cfInpNeg = nr2mNeg;
815  r->cfInvers = nr2mInvers;
816  r->cfDivBy = nr2mDivBy;
817  r->cfDivComp = nr2mDivComp;
818  r->cfGreater = nr2mGreater;
819  r->cfEqual = nr2mEqual;
820  r->cfIsZero = nr2mIsZero;
821  r->cfIsOne = nr2mIsOne;
822  r->cfIsMOne = nr2mIsMOne;
823  r->cfGreaterZero = nr2mGreaterZero;
824  r->cfWriteLong = nr2mWrite;
825  r->cfRead = nr2mRead;
826  r->cfPower = nr2mPower;
827  r->cfSetMap = nr2mSetMap;
828 // r->cfNormalize = ndNormalize; // default
829  r->cfLcm = nr2mLcm;
830  r->cfGcd = nr2mGcd;
831  r->cfIsUnit = nr2mIsUnit;
832  r->cfGetUnit = nr2mGetUnit;
833  r->cfExtGcd = nr2mExtGcd;
834  r->cfCoeffWrite = nr2mCoeffWrite;
835  r->cfCoeffName = nr2mCoeffName;
836  r->cfQuot1 = nr2mQuot1;
837 #ifdef LDEBUG
838  r->cfDBTest = nr2mDBTest;
839 #endif
840  r->has_simple_Alloc=TRUE;
841  return FALSE;
842 }

◆ nr2mMapZp()

number nr2mMapZp ( number  from,
const  coeffs,
const coeffs  dst 
)

Definition at line 619 of file rmodulo2m.cc.

620 {
621  unsigned long j = (unsigned long)1;
622  long ii = (long)from;
623  if (ii < 0) { j = dst->mod2mMask; ii = -ii; }
624  unsigned long i = (unsigned long)ii;
625  i = i & dst->mod2mMask;
626  /* now we have: from = j * i mod 2^m */
627  return (number)nr2mMult((number)i, (number)j, dst);
628 }
getCoeffType
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
Definition: coeffs.h:422
FALSE
#define FALSE
Definition: auxiliary.h:94
nr2mGreaterZero
static BOOLEAN nr2mGreaterZero(number k, const coeffs r)
Definition: rmodulo2m.cc:134
j
int j
Definition: facHensel.cc:105
nr2mNeg
static number nr2mNeg(number c, const coeffs r)
Definition: rmodulo2m.cc:599
nr2mLcm
static number nr2mLcm(number a, number b, const coeffs)
Definition: rmodulo2m.cc:159
nr2mSub
static number nr2mSub(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:373
LDEBUG
#define LDEBUG
Definition: mod2.h:308
nr2mAdd
static number nr2mAdd(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:366
nr2mDivComp
static int nr2mDivComp(number as, number bs, const coeffs)
Definition: rmodulo2m.cc:474
n_Z2m
@ n_Z2m
only used if HAVE_RINGS is defined
Definition: coeffs.h:47
nr2mMult
static number nr2mMult(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:144
nr2mInvers
static number nr2mInvers(number c, const coeffs r)
Definition: rmodulo2m.cc:281
nr2mIsUnit
static BOOLEAN nr2mIsUnit(number a, const coeffs)
Definition: rmodulo2m.cc:380
omAllocBin
#define omAllocBin(bin)
Definition: omAllocDecl.h:205
nr2mInitExp
static void nr2mInitExp(int m, coeffs r)
Definition: rmodulo2m.cc:731
nr2mAnn
static number nr2mAnn(number b, const coeffs r)
Definition: rmodulo2m.cc:578
n_rep_int
@ n_rep_int
(int), see modulop.h
Definition: coeffs.h:111
nr2mGcd
static number nr2mGcd(number a, number b, const coeffs)
Definition: rmodulo2m.cc:182
nr2mRead
static const char * nr2mRead(const char *s, number *a, const coeffs r)
Definition: rmodulo2m.cc:763
nr2mInit
static number nr2mInit(long i, const coeffs r)
Definition: rmodulo2m.cc:339
nr2mCoeffWrite
static void nr2mCoeffWrite(const coeffs r, BOOLEAN)
Definition: rmodulo2m.cc:71
nr2mIsMOne
static BOOLEAN nr2mIsMOne(number a, const coeffs r)
Definition: rmodulo2m.cc:403
TRUE
#define TRUE
Definition: auxiliary.h:98
i
int i
Definition: cfEzgcd.cc:125
nr2mCoeffName
static char * nr2mCoeffName(const coeffs cf)
Definition: rmodulo2m.cc:64
nr2mDiv
static number nr2mDiv(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:413
nr2mMod
static number nr2mMod(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:501
nr2mGetUnit
static number nr2mGetUnit(number k, const coeffs)
Definition: rmodulo2m.cc:385
nr2mSetMap
static nMapFunc nr2mSetMap(const coeffs src, const coeffs dst)
Definition: rmodulo2m.cc:666
gmp_nrz_bin
omBin gmp_nrz_bin
Definition: rintegers.cc:31
nr2mQuot1
static coeffs nr2mQuot1(number c, const coeffs r)
Definition: rmodulo2m.cc:95
nr2mInt
static long nr2mInt(number &n, const coeffs r)
Definition: rmodulo2m.cc:356
nr2mExtGcd
static number nr2mExtGcd(number a, number b, number *s, number *t, const coeffs r)
Definition: rmodulo2m.cc:295
nr2mIsZero
static BOOLEAN nr2mIsZero(number a, const coeffs)
Definition: rmodulo2m.cc:393
assume
#define assume(x)
Definition: mod2.h:390
nr2mCoeffIsEqual
static BOOLEAN nr2mCoeffIsEqual(const coeffs r, n_coeffType n, void *p)
Definition: rmodulo2m.cc:76
nr2mWrite
static void nr2mWrite(number a, const coeffs r)
Definition: rmodulo2m.cc:738
nr2mCoeffString
static char * nr2mCoeffString(const coeffs r)
Definition: rmodulo2m.cc:87
nr2mGreater
static BOOLEAN nr2mGreater(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:469
nr2mIsOne
static BOOLEAN nr2mIsOne(number a, const coeffs)
Definition: rmodulo2m.cc:398
nr2mDivBy
static BOOLEAN nr2mDivBy(number a, number b, const coeffs r)
Definition: rmodulo2m.cc:441
p
int p
Definition: cfModGcd.cc:4019
nr2mDBTest
BOOLEAN nr2mDBTest(number a, const char *f, const int l, const coeffs r)
Definition: rmodulo2m.cc:28
nr2mEqual
static BOOLEAN nr2mEqual(number a, number b, const coeffs)
Definition: rmodulo2m.cc:408
nr2mPower
static void nr2mPower(number a, int i, number *result, const coeffs r)
Definition: rmodulo2m.cc:319