339{
341 const int c = (int) (
long)
p;
342
344
346
350
351 r->ch = c;
352 r->npPminus1M = c - 1;
353
354
358
366
369
370
371
372
373
376
377
378
381
388
389
390
391
392
393
395
396
400#ifdef LDEBUG
401
403#endif
404
405
408
409
411 r->has_simple_Alloc=
TRUE;
412 r->has_simple_Inverse=
TRUE;
413
414
415#ifdef NV_OPS
417#endif
418 {
419#ifdef HAVE_INVTABLE
420 r->npInvTable=(
unsigned short*)
omAlloc0( r->ch*
sizeof(
unsigned short) );
421#endif
422#ifndef HAVE_GENERIC_MULT
423 r->cfParameter=
npPar;
424 r->npExpTable=(
unsigned short *)
omAlloc0( r->ch*
sizeof(
unsigned short) );
425 r->npLogTable=(
unsigned short *)
omAlloc0( r->ch*
sizeof(
unsigned short) );
426 r->npExpTable[0] = 1;
427 r->npLogTable[0] = 0;
428 if (r->ch > 2)
429 {
432 {
433 r->npLogTable[1] = 0;
437 {
439 r->npExpTable[
i] =(int)(((
long)
w * (
long)r->npExpTable[
i-1]) % r->ch);
440 r->npLogTable[r->npExpTable[
i]] =
i;
441 if ( r->npExpTable[
i] == 1 )
442 break;
443 }
445 break;
446 }
447 }
448 else
449 {
450 r->npExpTable[1] = 1;
451 r->npLogTable[1] = 0;
452 }
453#endif
454 }
455#ifdef NV_OPS
456 else
457 {
460 r->cfExactDiv =
nvDiv;
463
464
465
466
467
468 }
469#endif
471}
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
@ n_rep_int
(int), see modulop.h
static BOOLEAN npCoeffsEqual(const coeffs r, n_coeffType n, void *parameter)
static const char * npRead(const char *s, number *a, const coeffs r)
static number npInitMPZ(mpz_t m, const coeffs r)
static void npWrite(number a, const coeffs r)
CanonicalForm npConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
static void npWriteFd(number n, const ssiInfo *d, const coeffs)
static number nvDiv(number a, number b, const coeffs r)
static number npDiv(number a, number b, const coeffs r)
number nvInvers(number c, const coeffs r)
static number npPar(int, coeffs r)
static number npInvers(number c, const coeffs r)
static BOOLEAN npEqual(number a, number b, const coeffs r)
static char * npCoeffName(const coeffs cf)
static number npNeg(number c, const coeffs r)
static BOOLEAN npGreater(number a, number b, const coeffs r)
void npInpMult(number &a, number b, const coeffs r)
static BOOLEAN npIsMOne(number a, const coeffs r)
static BOOLEAN npGreaterZero(number k, const coeffs r)
static BOOLEAN npDBTest(number a, const char *f, const int l, const coeffs r)
static nMapFunc npSetMap(const coeffs src, const coeffs dst)
static number npReadFd(const ssiInfo *d, const coeffs)
static void nvInpMult(number &a, number b, const coeffs r)
static number npRandom(siRandProc p, number, number, const coeffs cf)
long npInt(number &n, const coeffs r)
void npKillChar(coeffs r)
number npConvFactoryNSingN(const CanonicalForm n, const coeffs r)
static BOOLEAN npIsOne(number a, const coeffs)
static number npAddM(number a, number b, const coeffs r)
static void npInpAddM(number &a, number b, const coeffs r)
static number npSubM(number a, number b, const coeffs r)
static number npInit(long i, const coeffs r)
static number nvMult(number a, number b, const coeffs r)
static number npMult(number a, number b, const coeffs r)
static BOOLEAN npIsZero(number a, const coeffs r)