859{
860
862
866 if(
p->GFChar > (2<<15))
867 {
868#ifndef SING_NDEBUG
869 WarnS(
"illegal characteristic");
870#endif
872 }
873
874 const double check=
log ((
double) (
p->GFChar));
875
876 #define sixteenlog2 11.09035489
878 {
879#ifndef SING_NDEBUG
880 Warn(
"Sorry: illegal size: %u ^ %u",
p->GFChar,
p->GFDegree );
881#endif
883 }
884
888
892
897
898 r->cfExactDiv=
nfDiv;
901
903 #ifdef HAVE_RINGS
904
905
906
907
908
909 #endif
912
913
914
915
918
926
927
928
930
931
933
935
937
938#ifdef LDEBUG
940#endif
941
942
943 const char *
name =
p->GFPar_name;
944
945 r->m_nfCharQ = 0;
946 r->m_nfCharP =
p->GFChar;
947 r->m_nfCharQ1 = 0;
948
949 r->iNumberOfParameters = 1;
951
952 char ** pParameterNames = (
char **)
omAlloc(
sizeof(
char *));
956
957 r->pParameterNames = (const char**)pParameterNames;
958
959 r->m_nfPlus1Table=
NULL;
960
961 if (strlen(
name) > 1)
963 else
965
966 r->has_simple_Alloc=
TRUE;
967 r->has_simple_Inverse=
TRUE;
968
969 int c = (
int)
pow ((
double)
p->GFChar, (
double)
p->GFDegree);
970
972
973 if( r->m_nfPlus1Table ==
NULL )
974 {
975 Werror(
"reading table for field with %d elements failed",c);
977 }
978
979
980 assume (r -> m_nfCharQ > 0);
981
982 r->ch = r->m_nfCharP;
984
986}
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.
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 number nfInit(long i, const coeffs r)
BOOLEAN nfDBTest(number a, const char *f, const int l, 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 char * nfCoeffName(const coeffs r)
static void nfWriteShort(number a, 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,...)
char name(const Variable &v)