855{
856
858
862 if(
p->GFChar > (2<<15))
863 {
864#ifndef SING_NDEBUG
865 WarnS(
"illegal characteristic");
866#endif
868 }
869
870 const double check=
log ((
double) (
p->GFChar));
871
872 #define sixteenlog2 11.09035489
874 {
875#ifndef SING_NDEBUG
876 Warn(
"Sorry: illegal size: %u ^ %u",
p->GFChar,
p->GFDegree );
877#endif
879 }
880
884
888
893
894 r->cfExactDiv=
nfDiv;
897
899 #ifdef HAVE_RINGS
900
901
902
903
904
905 #endif
908
909
910
911
914
922
923
924
926
927
929
931
933
934#ifdef LDEBUG
936#endif
937
938
939 const char *
name =
p->GFPar_name;
940
941 r->m_nfCharQ = 0;
942 r->m_nfCharP =
p->GFChar;
943 r->m_nfCharQ1 = 0;
944
945 r->iNumberOfParameters = 1;
947
948 char ** pParameterNames = (
char **)
omAlloc(
sizeof(
char *));
952
953 r->pParameterNames = (const char**)pParameterNames;
954
955 r->m_nfPlus1Table=
NULL;
956
957 if (strlen(
name) > 1)
959 else
961
962 r->has_simple_Alloc=
TRUE;
963 r->has_simple_Inverse=
TRUE;
964
965 int c = (
int)
pow ((
double)
p->GFChar, (
double)
p->GFDegree);
966
968
969 if( r->m_nfPlus1Table ==
NULL )
970 {
971 Werror(
"reading table for field with %d elements failed",c);
973 }
974
975
976 assume (r -> m_nfCharQ > 0);
977
978 r->ch = r->m_nfCharP;
980
982}
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 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 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,...)
int name
New type name for int.