2277 char *sys_cmd=(
char *)(
h->Data());
2280 if (strcmp(sys_cmd,
"syz") == 0)
2284 const char *
s=(
const char *)
h->Data();
2285 if (strcmp(
s,
"posInT_EcartFDegpLength")==0)
2287 else if (strcmp(
s,
"posInT_FDegpLength")==0)
2289 else if (strcmp(
s,
"posInT_pLength")==0)
2291 else if (strcmp(
s,
"posInT0")==0)
2293 else if (strcmp(
s,
"posInT1")==0)
2295 else if (strcmp(
s,
"posInT2")==0)
2297 else if (strcmp(
s,
"posInT11")==0)
2299 else if (strcmp(
s,
"posInT110")==0)
2301 else if (strcmp(
s,
"posInT13")==0)
2303 else if (strcmp(
s,
"posInT15")==0)
2305 else if (strcmp(
s,
"posInT17")==0)
2307 else if (strcmp(
s,
"posInT17_c")==0)
2309 else if (strcmp(
s,
"posInT19")==0)
2311 else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
2323 if(strcmp(sys_cmd,
"locNF")==0)
2328 poly
f=(poly)
h->Data();
2330 ideal
m=(ideal)
h->Data();
2333 int n=(int)((
long)
h->Data());
2398 if(strcmp(sys_cmd,
"p")==0)
2403 WarnS(
"Sorry: not available for release build!");
2409 if(strcmp(sys_cmd,
"setsyzcomp")==0)
2413 int k = (int)(
long)
h->Data();
2421 if(strcmp(sys_cmd,
"r")==0)
2426 WarnS(
"Sorry: not available for release build!");
2438 if(strcmp(sys_cmd,
"changeRing")==0)
2442 for (
int i = 1;
i <= varN;
i++)
2445 sprintf(
h,
"x%d",
i);
2450 res->data = (
void*)0L;
2455 if(strcmp(sys_cmd,
"mtrack")==0)
2466 char *fn=(
char*)
h->Data();
2467 fd = fopen(fn,
"w");
2469 Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
2473 max = (int)(
long)
h->Data();
2482 WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
2489 if(strcmp(sys_cmd,
"backtrace")==0)
2497 #if !defined(OM_NDEBUG)
2499 if (strcmp(sys_cmd,
"omMemoryTest")==0)
2503 PrintS(
"\n[om_Info]: \n");
2505 #define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name)
2506 OM_PRINT(MaxBytesSystem);
2507 OM_PRINT(CurrentBytesSystem);
2508 OM_PRINT(MaxBytesSbrk);
2509 OM_PRINT(CurrentBytesSbrk);
2510 OM_PRINT(MaxBytesMmap);
2511 OM_PRINT(CurrentBytesMmap);
2512 OM_PRINT(UsedBytes);
2513 OM_PRINT(AvailBytes);
2514 OM_PRINT(UsedBytesMalloc);
2515 OM_PRINT(AvailBytesMalloc);
2516 OM_PRINT(MaxBytesFromMalloc);
2517 OM_PRINT(CurrentBytesFromMalloc);
2518 OM_PRINT(MaxBytesFromValloc);
2519 OM_PRINT(CurrentBytesFromValloc);
2520 OM_PRINT(UsedBytesFromValloc);
2521 OM_PRINT(AvailBytesFromValloc);
2523 OM_PRINT(UsedPages);
2524 OM_PRINT(AvailPages);
2525 OM_PRINT(MaxRegionsAlloc);
2526 OM_PRINT(CurrentRegionsAlloc);
2531 PrintS(
"\n[om_Opts]: \n");
2532 #define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name)
2533 OM_PRINT(
"d", MinTrack);
2534 OM_PRINT(
"d", MinCheck);
2535 OM_PRINT(
"d", MaxTrack);
2536 OM_PRINT(
"d", MaxCheck);
2537 OM_PRINT(
"d", Keep);
2538 OM_PRINT(
"d", HowToReportErrors);
2539 OM_PRINT(
"d", MarkAsStatic);
2540 OM_PRINT(
"u", PagesPerRegion);
2541 OM_PRINT(
"p", OutOfMemoryFunc);
2542 OM_PRINT(
"p", MemoryLowFunc);
2543 OM_PRINT(
"p", ErrorHook);
2548 Print(
"\n\n[om_ErrorStatus] : '%s' (%s)\n",
2551 Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
2564 #if defined(PDEBUG) || defined(PDIV_DEBUG)
2565 if(strcmp(sys_cmd,
"pDivStat")==0)
2575 if(strcmp(sys_cmd,
"red")==0)
2590 if(strcmp(sys_cmd,
"fastcomb")==0)
2598 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2603 (ideal)
h->Data(),(poly)
h->next->Data());
2611 if(strcmp(sys_cmd,
"comb")==0)
2619 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2624 (ideal)
h->Data(),(poly)
h->next->Data());
2633 if(strcmp(sys_cmd,
"listall")==0)
2635 void listall(
int showproc);
2637 if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
2645 if(strcmp(sys_cmd,
"proclist")==0)
2647 void piShowProcList();
2655 if(strcmp(sys_cmd,
"newton")==0)
2659 || (
h->next->next->Typ()!=
INT_CMD))
2661 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2664 poly
p=(poly)(
h->Data());
2683 (
int) (
h->next->Data()),
2684 (
int) (
h->next->next->Data())
2697 L->
m[1].
data=(
void *)(
long)r.achse;
2699 L->
m[2].
data=(
void *)(
long)r.deg;
2703 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2705 int anz = r.anz_punkte;
2708 for (
i=0;
i<anz*
dim;
i++)
2718 (*w)[
i] = r.deg_tab[
i];
2721 while (r.deg_tab[
i-1] != -2);
2732 res->data=(
void *)L;
2755 if (strcmp(sys_cmd,
"minpoly") == 0)
2759 Werror(
"expected exactly one argument: %s",
2760 "a square matrix with number entries");
2770 WerrorS(
"expected exactly one argument: "
2771 "a square matrix with number entries");
2778 res->data = (
void *)theMinPoly;
2779 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2781 delete[] polyCoeffs;
2788 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2796 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2805 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2814 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2823 if (strcmp(sys_cmd,
"GF") == 0)
2840 if (strcmp(sys_cmd,
"svd") == 0)
2855 if (strcmp(sys_cmd,
"DLL") == 0)
2857 typedef void (*Void_Func)();
2858 typedef int (*Int_Func)(int);
2868 if (
f!=
NULL) printf(
"%d\n",
f(
i));
2869 else PrintS(
"cannot find PlusDll\n");
2877 else PrintS(
"cannot find TestDll\n");
2884 #ifdef HAVE_RING2TOM
2886 if (strcmp(sys_cmd,
"findZeroPoly")==0)
2889 poly
f = (poly)
h->Data();
2896 #ifdef HAVE_VANIDEAL
2897 if (strcmp(sys_cmd,
"createG0")==0)
2922 if (strcmp(sys_cmd,
"redNF_ring")==0)
2925 poly
f = (poly)
h->Data();
2927 ideal
G = (ideal)
h->Data();
2935 if (strcmp(sys_cmd,
"hilbroune") == 0)
2947 if (strcmp(sys_cmd,
"f5")==0)
2956 ideal
G = (ideal)
h->Data();
2960 opt = (int) (
long)
h->Data();
2968 plus = (int) (
long)
h->Data();
2976 termination = (int) (
long)
h->Data();
2982 res->data=(ideal)
F5main(
G,r,opt,plus,termination);
2989 if (strcmp(sys_cmd,
"NF_ring")==0)
2992 poly
f = (poly)
h->Data();
2994 ideal
G = (ideal)
h->Data();
3000 if (strcmp(sys_cmd,
"spoly")==0)
3002 poly
f =
pCopy((poly)
h->Data());
3004 poly
g =
pCopy((poly)
h->Data());
3011 if (strcmp(sys_cmd,
"testGB")==0)
3013 ideal I = (ideal)
h->Data();
3015 ideal GI = (ideal)
h->Data();
3017 res->data = (
void *)(
long)
testGB(I, GI);
3024 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3030 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3038 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3045 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3051 #ifdef HAVE_RATGRING
3052 if (strcmp(sys_cmd,
"intratNF") == 0)
3067 I=(ideal)
h->CopyD();
3075 is=(int)((
long)(
h->Data()));
3083 for(
k=0;
k < id;
k++)
3087 PrintS(
"starting redRat\n");
3105 if (strcmp(sys_cmd,
"ratNF") == 0)
3124 is=(int)((
long)(
h->Data()));
3139 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3157 is=(int)((
long)(
h->Data()));
3173 if (strcmp(sys_cmd,
"ratVar") == 0)
3190 return (start==0)||(end==0)||(start>end);
3194 if (strcmp(sys_cmd,
"unifastmult")==0)
3196 poly
f = (poly)
h->Data();
3198 poly
g=(poly)
h->Data();
3204 if (strcmp(sys_cmd,
"multifastmult")==0)
3206 poly
f = (poly)
h->Data();
3208 poly
g=(poly)
h->Data();
3214 if (strcmp(sys_cmd,
"mults")==0)
3221 if (strcmp(sys_cmd,
"fastpower")==0)
3224 poly
f = (poly)
h->Data();
3226 int n=(int)((
long)
h->Data());
3232 if (strcmp(sys_cmd,
"normalpower")==0)
3234 poly
f = (poly)
h->Data();
3236 int n=(int)((
long)
h->Data());
3242 if (strcmp(sys_cmd,
"MCpower")==0)
3245 poly
f = (poly)
h->Data();
3247 int n=(int)((
long)
h->Data());
3253 if (strcmp(sys_cmd,
"bit_subst")==0)
3256 poly outer = (poly)
h->Data();
3258 poly inner=(poly)
h->Data();
3265 if (strcmp(sys_cmd,
"gcd") == 0)
3285 int d=(int)(
long)
h->next->Data();
3286 char *
s=(
char *)
h->Data();
3304 if (strcmp(sys_cmd,
"subring") == 0)
3318 if (strcmp(sys_cmd,
"HNF") == 0)
3340 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3348 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3353 char *
s=(
char *)
h->next->Data();
3365 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3369 char* filename = (
char*)
h->Data();
3370 FILE*
f = fopen(filename,
"r");
3373 WerrorS(
"invalid file name (in paths use '/')");
3376 mpz_t
m; mpz_init(
m);
3377 mpz_inp_str(
m,
f, 10);
3381 res->data = (
void*)n;
3386 WerrorS(
"expected valid file name as a string");
3398 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3402 (
h->next->next ==
NULL))
3407 int validEntries = 0;
3408 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3410 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3411 sizeof(
int) * jvec->
rows()) == 0)
3413 if (validEntries == 0)
3417 r->
resize(validEntries + 1);
3418 (*r)[validEntries] =
k + 1;
3424 res->data = (
void*)r;
3429 WerrorS(
"expected two non-empty intvecs as arguments");
3440 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3444 (
h->next->next ==
NULL))
3448 int ir = ivec->
rows();
int jr = jvec->
rows();
3449 int r = jr;
if (ir < jr) r = ir;
3450 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3451 sizeof(
int) * r) != 0))
3454 res->data = (
void*)(
long)r;
3459 WerrorS(
"expected two non-empty intvecs as arguments");
3465 if(strcmp(sys_cmd,
"henselfactors")==0)
3470 (
h->next->next->next !=
NULL) &&
3471 (
h->next->next->next->Typ() ==
POLY_CMD) &&
3472 (
h->next->next->next->next !=
NULL) &&
3473 (
h->next->next->next->next->Typ() ==
POLY_CMD) &&
3474 (
h->next->next->next->next->next !=
NULL) &&
3475 (
h->next->next->next->next->next->Typ() ==
INT_CMD) &&
3476 (
h->next->next->next->next->next->next ==
NULL))
3478 int xIndex = (int)(
long)
h->Data();
3479 int yIndex = (int)(
long)
h->next->Data();
3480 poly hh = (poly)
h->next->next->Data();
3481 poly f0 = (poly)
h->next->next->next->Data();
3482 poly g0 = (poly)
h->next->next->next->next->Data();
3483 int d = (int)(
long)
h->next->next->next->next->next->Data();
3491 res->data = (
char *)L;
3496 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3503 if (strcmp(sys_cmd,
"astep") == 0)
3508 I=(ideal)
h->CopyD();
3521 if (strcmp(sys_cmd,
"PrintMat") == 0)
3531 a=(int)((
long)(
h->Data()));
3536 b=(int)((
long)(
h->Data()));
3551 metric=(int)((
long)(
h->Data()));
3562 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3575 if(strcmp(sys_cmd,
"NCGetType")==0)
3581 res->data=(
void *)(-1L);
3588 if(strcmp(sys_cmd,
"ForceSCA")==0)
3595 b = (int)((
long)(
h->Data()));
3601 e = (int)((
long)(
h->Data()));
3612 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3624 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3636 if(strcmp(sys_cmd,
"test64")==0)
3652 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3658 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3669 if(strcmp(sys_cmd,
"LU")==0)
3679 res->data=(
char*)bb;
3684 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3691 if(strcmp(sys_cmd,
"sort")==0)
3701 if(strcmp(sys_cmd,
"uniq")==0)
3711 if(strcmp(sys_cmd,
"GF")==0)
3716 int p=(int)(
long)
h->Data();
3717 int n=(int)(
long)
h->next->Data();
3718 char *
v=(
char*)
h->next->next->CopyD();
3734 if(strcmp(sys_cmd,
"power1")==0)
3737 poly
f=(poly)
h->CopyD();
3739 res->data=(
void *)
g;
3743 if(strcmp(sys_cmd,
"power2")==0)
3746 poly
f=(poly)
h->Data();
3748 for(
int i=0;
i<2000;
i++)
3750 res->data=(
void *)
g;
3753 if(strcmp(sys_cmd,
"power3")==0)
3756 poly
f=(poly)
h->Data();
3767 poly p1536=
pMult(p1024,p512);
3768 poly p1792=
pMult(p1536,p256);
3769 poly p1920=
pMult(p1792,p128);
3770 poly p1984=
pMult(p1920,p64);
3771 poly p2000=
pMult(p1984,p16);
3772 res->data=(
void *)p2000;
3792 #ifdef HAVE_CCLUSTER
3793 if(strcmp(sys_cmd,
"ccluster")==0)
3803 int pol_with_complex_coeffs=0;
3805 pol_with_complex_coeffs=1;
3811 fmpq_poly_t fre, fim;
3813 if (pol_with_complex_coeffs==1)
3818 fmpq_t center_re,center_im,boxsize,eps;
3824 int n=fmpq_poly_length(fre);
3825 fmpq_t* re_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3826 fmpq_t* im_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3828 for(
int i=0;
i<n;
i++)
3829 { fmpq_init(re_part[
i]); fmpq_init(im_part[
i]); }
3834 long nb_threads = (long)
feOptValue(FE_OPT_CPUS);
3835 strategy = strategy+(nb_threads<<6);
3838 if (pol_with_complex_coeffs==0)
3839 nn=ccluster_interface_poly_real(re_part,im_part,
mult,fre,center_re,center_im,boxsize,eps,strategy,verbosity);
3841 nn=ccluster_interface_poly_real_imag(re_part,im_part,
mult,fre,fim,center_re,center_im,boxsize,eps,strategy,verbosity);
3845 for(
int i=0;
i<nn;
i++)
3859 for(
int i=n-1;
i>=0;
i--) { fmpq_clear(re_part[
i]); fmpq_clear(im_part[
i]); }
3863 fmpq_clear(center_re); fmpq_clear(center_im); fmpq_clear(boxsize); fmpq_clear(eps);
3864 fmpq_poly_clear(fre);
3865 if (pol_with_complex_coeffs==1) fmpq_poly_clear(fim);
3877 if(strcmp(sys_cmd,
"evaluate")==0)
3879 extern number
maEvalAt(
const poly
p,
const number* pt,
const ring r);
3882 WerrorS(
"expected system(\"evaluate\",<poly>,..)");
3885 poly
p=(poly)
h->Data();
3892 WerrorS(
"system(\"evaluate\",<poly>,<number>..) - expect number");
3895 pt[
i]=(number)
h->Data();
EXTERN_VAR int singular_homog_flag
static const int SW_USE_CHINREM_GCD
set to 1 to use modular gcd over Z
static const int SW_USE_FL_GCD_P
set to 1 to use Flints gcd over F_p
static const int SW_USE_EZGCD_P
set to 1 to use EZGCD over F_q
static const int SW_USE_EZGCD
set to 1 to use EZGCD over Z
static const int SW_USE_FL_GCD_0
set to 1 to use Flints gcd over Q/Z
CanonicalForm convSingPFactoryP(poly p, const ring r)
matrix singntl_HNF(matrix m, const ring s)
void resize(int new_length)
Class used for (list of) interpreter objects.
INLINE_THIS void Init(int l=0)
CanonicalForm n_convSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
void n_Print(number &a, const coeffs r)
print a number (BEWARE of string buffers!) mostly for debugging
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
number n_convFactoryNSingN(const CanonicalForm n, const coeffs r)
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_InitMPZ(mpz_t n, const coeffs r)
conversion of a GMP integer to number
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Creation data needed for finite fields.
poly uni_subst_bits(poly outer_uni, poly inner_multi, ring r)
void error(const char *fmt,...)
ideal F5main(ideal id, ring r, int opt, int plus, int termination)
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
CFList int bool & irred
[in,out] Is A irreducible?
int probIrredTest(const CanonicalForm &F, double error)
given some error probIrredTest detects irreducibility or reducibility of F with confidence level 1-er...
poly unifastmult(poly f, poly g, ring r)
poly pFastPowerMC(poly f, int n, ring r)
static int max(int a, int b)
poly pFastPower(poly f, int n, ring r)
poly multifastmult(poly f, poly g, ring r)
void WerrorS(const char *s)
static void * feOptValue(feOptIndex opt)
STATIC_VAR int nfMinPoly[16]
void convSingPFlintP(fmpq_poly_t res, poly p, const ring r)
void convSingNFlintN(fmpz_t f, mpz_t z)
void convFlintNSingN(mpz_t z, fmpz_t f)
number maEvalAt(const poly p, const number *pt, const ring r)
evaluate the polynomial p at the pt given by the array pt
STATIC_VAR coordinates * points
BOOLEAN jjSORTLIST(leftv, leftv arg)
BOOLEAN jjUNIQLIST(leftv, leftv arg)
BOOLEAN iiCheckTypes(leftv args, const short *type_list, int report)
check a list of arguemys against a given field of types return TRUE if the types match return FALSE (...
ring rSubring(ring org_ring, sleftv *rv)
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether)
poly fglmLinearCombination(ideal source, poly monset)
poly fglmNewLinearCombination(ideal source, poly monset)
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
VAR int(* test_PosInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
VAR int(* test_PosInT)(const TSet T, const int tl, LObject &h)
int posInT17(const TSet set, const int length, LObject &p)
int posInT11(const TSet set, const int length, LObject &p)
int posInT1(const TSet set, const int length, LObject &p)
int posInT0(const TSet, const int length, LObject &)
int posInT2(const TSet set, const int length, LObject &p)
int posInT_pLength(const TSet set, const int length, LObject &p)
int posInT13(const TSet set, const int length, LObject &p)
int posInT17_c(const TSet set, const int length, LObject &p)
int posInT_EcartFDegpLength(const TSet set, const int length, LObject &p)
int posInT15(const TSet set, const int length, LObject &p)
int posInT110(const TSet set, const int length, LObject &p)
int posInT19(const TSet set, const int length, LObject &p)
int posInT_FDegpLength(const TSet set, const int length, LObject &p)
static bool rIsSCA(const ring r)
int setNCExtensions(int iMask)
static nc_type & ncRingType(nc_struct *p)
matrix nc_PrintMat(int a, int b, ring r, int metric)
returns matrix with the info on noncomm multiplication
bool sca_Force(ring rGR, int b, int e)
void henselFactors(const int xIndex, const int yIndex, const poly h, const poly f0, const poly g0, const int d, poly &f, poly &g)
Computes a factorization of a polynomial h(x, y) in K[[x]][y] up to a certain degree in x,...
matrix mp_Transp(matrix a, const ring R)
matrix mp_InitI(int r, int c, int v, const ring R)
make it a v * unit matrix
matrix mpNew(int r, int c)
create a r x c zero-matrix
#define MATELEM(mat, i, j)
1-based access to matrix
unsigned long * computeMinimalPolynomial(unsigned long **matrix, unsigned n, unsigned long p)
void mult(unsigned long *result, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
void * dynl_sym(void *handle, const char *symbol)
void * dynl_open(char *filename)
The main handler for Singular numbers which are suitable for Singular polynomials.
BOOLEAN ncInitSpecialPairMultiplication(ring r)
ideal Approx_Step(ideal L)
Ann: ???
#define omFreeSize(addr, size)
void omMarkAsStaticAddr(void *addr)
const char * omError2String(omError_t error)
const char * omError2Serror(omError_t error)
omError_t om_InternalErrorStatus
#define omPrintCurrentBackTrace(fd)
void pPrintDivisbleByStat()
static unsigned pLength(poly a)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pLmDeleteAndNext(p)
like pLmDelete, returns pNext(p)
#define pGetExp(p, i)
Exponent.
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
#define pCopy(p)
return a copy of the poly
poly nc_rat_CreateSpoly(poly pp1, poly pp2, int ishift, const ring r)
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
poly nc_rat_ReduceSpolyNew(const poly p1, poly p2, int ishift, const ring r)
const char feNotImplemented[]
void PrintS(const char *s)
void Werror(const char *fmt,...)
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
void p_DebugPrint(poly p, const ring r)
void rDebugPrint(const ring r)
void rSetSyzComp(int k, const ring r)
static BOOLEAN rField_is_R(const ring r)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
static BOOLEAN rField_is_Q(const ring r)
static BOOLEAN rField_is_long_R(const ring r)
poly ringNF(poly f, ideal G, ring r)
poly plain_spoly(poly f, poly g)
poly ringRedNF(poly f, ideal G, ring r)
int testGB(ideal I, ideal GI)
static short scaLastAltVar(ring r)
static short scaFirstAltVar(ring r)
void sdb_edit(procinfo *pi)
ideal id_Vec2Ideal(poly vec, const ring R)
BOOLEAN assumeStdFlag(leftv h)
int * iv2array(intvec *iv, const ring R)
#define omPrintUsedTrackAddrs(F, max)