862 if(
p->GFChar > (2<<15))
865 WarnS(
"illegal characteristic");
870 const double check=
log ((
double) (
p->GFChar));
872 #define sixteenlog2 11.09035489
876 Warn(
"Sorry: illegal size: %u ^ %u",
p->GFChar,
p->GFDegree );
894 r->cfExactDiv=
nfDiv;
939 const char *
name =
p->GFPar_name;
942 r->m_nfCharP =
p->GFChar;
945 r->iNumberOfParameters = 1;
948 char ** pParameterNames = (
char **)
omAlloc(
sizeof(
char *));
953 r->pParameterNames = (
const char**)pParameterNames;
955 r->m_nfPlus1Table=
NULL;
957 if (strlen(
name) > 1)
962 r->has_simple_Alloc=
TRUE;
963 r->has_simple_Inverse=
TRUE;
965 int c = (
int)
pow ((
double)
p->GFChar, (
double)
p->GFDegree);
969 if( r->m_nfPlus1Table ==
NULL )
971 Werror(
"reading table for field with %d elements failed",c);
976 assume (r -> m_nfCharQ > 0);
978 r->ch = r->m_nfCharP;
Rational pow(const Rational &a, int e)
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
@ n_rep_gf
(int), see ffields.h
Creation data needed for finite fields.
char name(const Variable &v)
static BOOLEAN nfIsMOne(number a, const coeffs r)
static number nfInitMPZ(mpz_t m, const coeffs cf)
static number nfAdd(number a, number b, const coeffs R)
static nMapFunc nfSetMap(const coeffs src, const coeffs dst)
static BOOLEAN nfDBTest(number a, const char *f, const int l, const coeffs r)
static number nfInit(long i, const coeffs r)
static void nfKillChar(coeffs r)
static int nfParDeg(number n, const coeffs r)
static long nfInt(number &n, const coeffs r)
static number nfMult(number a, number b, const coeffs r)
static BOOLEAN nfGreaterZero(number k, const coeffs r)
static void nfWriteShort(number a, const coeffs r)
static char * nfCoeffName(const coeffs r)
static number nfSub(number a, number b, const coeffs r)
static number nfRandom(siRandProc p, number, number, const coeffs cf)
static BOOLEAN nfIsOne(number a, const coeffs r)
static void nfCoeffWrite(const coeffs r, BOOLEAN details)
static const char * nfRead(const char *s, number *a, const coeffs r)
static BOOLEAN nfGreater(number a, number b, const coeffs r)
static number nfNeg(number c, const coeffs r)
static BOOLEAN nfIsZero(number a, const coeffs r)
static BOOLEAN nfCoeffIsEqual(const coeffs, n_coeffType, void *)
static BOOLEAN nfEqual(number a, number b, const coeffs r)
static void nfReadTable(const int c, const coeffs r)
static void nfWriteLong(number a, const coeffs r)
static number nfDiv(number a, number b, const coeffs r)
static number nfParameter(int i, const coeffs)
static number nfInvers(number c, const coeffs r)
static void nfPower(number a, int i, number *result, const coeffs r)
gmp_float log(const gmp_float &a)
void Werror(const char *fmt,...)