if (rField_is_GF(r)) { Print("// # ground field : %d\n",rInternalChar(r)); Print("// primitive element : %s\n", r->parameter[0]); if (r==currRing) { StringSetS("// minpoly : "); nfShowMipo();PrintS(StringEndS("\n")); // NOTE/TODO: use StringAppendS("\n"); omFree(s); } } #ifdef HAVE_RINGS else if (rField_is_Ring(r)) { PrintS("// coeff. ring is : "); if (rField_is_Ring_Z(r)) PrintS("Integers\n"); long l = (long)mpz_sizeinbase(r->ringflaga, 10) + 2; char* s = (char*) omAlloc(l); mpz_get_str(s,10,r->ringflaga); if (rField_is_Ring_ModN(r)) Print("Z/%s\n", s); if (rField_is_Ring_2toM(r)) Print("Z/2^%lu\n", r->ringflagb); if (rField_is_Ring_PtoM(r)) Print("Z/%s^%lu\n", s, r->ringflagb); omFreeSize((ADDRESS)s, l); } #endif else { PrintS("// characteristic : "); if ( rField_is_R(r) ) PrintS("0 (real)\n"); /* R */ else if ( rField_is_long_R(r) ) Print("0 (real:%d digits, additional %d digits)\n", r->float_len,r->float_len2); /* long R */ else if ( rField_is_long_C(r) ) Print("0 (complex:%d digits, additional %d digits)\n", r->float_len, r->float_len2); /* long C */ else Print ("%d\n",rChar(r)); /* Fp(a) */ if (r->parameter!=NULL) { Print ("// %d parameter : ",rPar(r)); char **sp=r->parameter; int nop=0; while (nopparameter[0]); } else if (r->minpoly==NULL) { PrintS("0\n"); } else if (r==currRing) { StringSetS(""); nWrite(r->minpoly); PrintS(StringEndS("\n")); // NOTE/TODO: use StringAppendS("\n"); omFree(s); } else { PrintS("...\n"); } if (r->qideal!=NULL) { if (r==currRing) iiWriteMatrix((matrix)r->qideal,"// minpolys",1,r,0); else PrintS("// minpolys=..."); PrintLn(); } } }