2384 char *sys_cmd=(
char *)(
h->Data());
2387 if (strcmp(sys_cmd,
"syz") == 0)
2391 const char *
s=(
const char *)
h->Data();
2392 if (strcmp(
s,
"posInT_EcartFDegpLength")==0)
2394 else if (strcmp(
s,
"posInT_FDegpLength")==0)
2396 else if (strcmp(
s,
"posInT_pLength")==0)
2398 else if (strcmp(
s,
"posInT0")==0)
2400 else if (strcmp(
s,
"posInT1")==0)
2402 else if (strcmp(
s,
"posInT2")==0)
2404 else if (strcmp(
s,
"posInT11")==0)
2406 else if (strcmp(
s,
"posInT110")==0)
2408 else if (strcmp(
s,
"posInT13")==0)
2410 else if (strcmp(
s,
"posInT15")==0)
2412 else if (strcmp(
s,
"posInT17")==0)
2414 else if (strcmp(
s,
"posInT17_c")==0)
2416 else if (strcmp(
s,
"posInT19")==0)
2418 else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
2430 if(strcmp(sys_cmd,
"locNF")==0)
2435 poly
f=(poly)
h->Data();
2437 ideal
m=(ideal)
h->Data();
2440 int n=(int)((
long)
h->Data());
2505 if(strcmp(sys_cmd,
"p")==0)
2510 WarnS(
"Sorry: not available for release build!");
2516 if(strcmp(sys_cmd,
"setsyzcomp")==0)
2520 int k = (int)(
long)
h->Data();
2528 if(strcmp(sys_cmd,
"r")==0)
2533 WarnS(
"Sorry: not available for release build!");
2545 if(strcmp(sys_cmd,
"changeRing")==0)
2549 for (
int i = 1;
i <= varN;
i++)
2552 sprintf(
h,
"x%d",
i);
2557 res->data = (
void*)0L;
2562 if(strcmp(sys_cmd,
"mtrack")==0)
2573 char *fn=(
char*)
h->Data();
2574 fd = fopen(fn,
"w");
2576 Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
2580 max = (int)(
long)
h->Data();
2589 WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
2596 if(strcmp(sys_cmd,
"backtrace")==0)
2604 #if !defined(OM_NDEBUG)
2606 if (strcmp(sys_cmd,
"omMemoryTest")==0)
2610 PrintS(
"\n[om_Info]: \n");
2612 #define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name)
2613 OM_PRINT(MaxBytesSystem);
2614 OM_PRINT(CurrentBytesSystem);
2615 OM_PRINT(MaxBytesSbrk);
2616 OM_PRINT(CurrentBytesSbrk);
2617 OM_PRINT(MaxBytesMmap);
2618 OM_PRINT(CurrentBytesMmap);
2619 OM_PRINT(UsedBytes);
2620 OM_PRINT(AvailBytes);
2621 OM_PRINT(UsedBytesMalloc);
2622 OM_PRINT(AvailBytesMalloc);
2623 OM_PRINT(MaxBytesFromMalloc);
2624 OM_PRINT(CurrentBytesFromMalloc);
2625 OM_PRINT(MaxBytesFromValloc);
2626 OM_PRINT(CurrentBytesFromValloc);
2627 OM_PRINT(UsedBytesFromValloc);
2628 OM_PRINT(AvailBytesFromValloc);
2630 OM_PRINT(UsedPages);
2631 OM_PRINT(AvailPages);
2632 OM_PRINT(MaxRegionsAlloc);
2633 OM_PRINT(CurrentRegionsAlloc);
2638 PrintS(
"\n[om_Opts]: \n");
2639 #define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name)
2640 OM_PRINT(
"d", MinTrack);
2641 OM_PRINT(
"d", MinCheck);
2642 OM_PRINT(
"d", MaxTrack);
2643 OM_PRINT(
"d", MaxCheck);
2644 OM_PRINT(
"d", Keep);
2645 OM_PRINT(
"d", HowToReportErrors);
2646 OM_PRINT(
"d", MarkAsStatic);
2647 OM_PRINT(
"u", PagesPerRegion);
2648 OM_PRINT(
"p", OutOfMemoryFunc);
2649 OM_PRINT(
"p", MemoryLowFunc);
2650 OM_PRINT(
"p", ErrorHook);
2655 Print(
"\n\n[om_ErrorStatus] : '%s' (%s)\n",
2658 Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
2671 #if defined(PDEBUG) || defined(PDIV_DEBUG)
2672 if(strcmp(sys_cmd,
"pDivStat")==0)
2682 if(strcmp(sys_cmd,
"red")==0)
2697 if(strcmp(sys_cmd,
"fastcomb")==0)
2705 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2710 (ideal)
h->Data(),(poly)
h->next->Data());
2718 if(strcmp(sys_cmd,
"comb")==0)
2726 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2731 (ideal)
h->Data(),(poly)
h->next->Data());
2740 if(strcmp(sys_cmd,
"listall")==0)
2742 void listall(
int showproc);
2744 if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
2752 if(strcmp(sys_cmd,
"proclist")==0)
2754 void piShowProcList();
2762 if(strcmp(sys_cmd,
"newton")==0)
2766 || (
h->next->next->Typ()!=
INT_CMD))
2768 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2771 poly
p=(poly)(
h->Data());
2790 (
int) (
h->next->Data()),
2791 (
int) (
h->next->next->Data())
2804 L->
m[1].
data=(
void *)(
long)r.achse;
2806 L->
m[2].
data=(
void *)(
long)r.deg;
2810 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2812 int anz = r.anz_punkte;
2815 for (
i=0;
i<anz*
dim;
i++)
2825 (*w)[
i] = r.deg_tab[
i];
2828 while (r.deg_tab[
i-1] != -2);
2839 res->data=(
void *)L;
2862 if (strcmp(sys_cmd,
"minpoly") == 0)
2866 Werror(
"expected exactly one argument: %s",
2867 "a square matrix with number entries");
2877 WerrorS(
"expected exactly one argument: "
2878 "a square matrix with number entries");
2885 res->data = (
void *)theMinPoly;
2886 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2888 delete[] polyCoeffs;
2895 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2903 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2912 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2916 WerrorS(
"shell execution is disallowed in restricted mode");
2926 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2935 if (strcmp(sys_cmd,
"GF") == 0)
2952 if (strcmp(sys_cmd,
"svd") == 0)
2963 if (strcmp(sys_cmd,
"redNF_ring")==0)
2966 poly
f = (poly)
h->Data();
2968 ideal
G = (ideal)
h->Data();
2976 if (strcmp(sys_cmd,
"hilbroune") == 0)
2988 if (strcmp(sys_cmd,
"f5")==0)
2997 ideal
G = (ideal)
h->Data();
3001 opt = (int) (
long)
h->Data();
3009 plus = (int) (
long)
h->Data();
3017 termination = (int) (
long)
h->Data();
3023 res->data=(ideal)
F5main(
G,r,opt,plus,termination);
3030 if (strcmp(sys_cmd,
"NF_ring")==0)
3033 poly
f = (poly)
h->Data();
3035 ideal
G = (ideal)
h->Data();
3041 if (strcmp(sys_cmd,
"spoly")==0)
3043 poly
f =
pCopy((poly)
h->Data());
3045 poly
g =
pCopy((poly)
h->Data());
3052 if (strcmp(sys_cmd,
"testGB")==0)
3054 ideal I = (ideal)
h->Data();
3056 ideal GI = (ideal)
h->Data();
3058 res->data = (
void *)(
long)
testGB(I, GI);
3065 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3071 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3079 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3086 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3092 #ifdef HAVE_RATGRING
3093 if (strcmp(sys_cmd,
"intratNF") == 0)
3108 I=(ideal)
h->CopyD();
3116 is=(int)((
long)(
h->Data()));
3124 for(
k=0;
k < id;
k++)
3128 PrintS(
"starting redRat\n");
3146 if (strcmp(sys_cmd,
"ratNF") == 0)
3165 is=(int)((
long)(
h->Data()));
3180 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3198 is=(int)((
long)(
h->Data()));
3214 if (strcmp(sys_cmd,
"ratVar") == 0)
3231 return (start==0)||(end==0)||(start>end);
3235 if (strcmp(sys_cmd,
"unifastmult")==0)
3237 poly
f = (poly)
h->Data();
3239 poly
g=(poly)
h->Data();
3245 if (strcmp(sys_cmd,
"multifastmult")==0)
3247 poly
f = (poly)
h->Data();
3249 poly
g=(poly)
h->Data();
3255 if (strcmp(sys_cmd,
"mults")==0)
3262 if (strcmp(sys_cmd,
"fastpower")==0)
3265 poly
f = (poly)
h->Data();
3267 int n=(int)((
long)
h->Data());
3273 if (strcmp(sys_cmd,
"normalpower")==0)
3275 poly
f = (poly)
h->Data();
3277 int n=(int)((
long)
h->Data());
3283 if (strcmp(sys_cmd,
"MCpower")==0)
3286 poly
f = (poly)
h->Data();
3288 int n=(int)((
long)
h->Data());
3294 if (strcmp(sys_cmd,
"bit_subst")==0)
3297 poly outer = (poly)
h->Data();
3299 poly inner=(poly)
h->Data();
3306 if (strcmp(sys_cmd,
"gcd") == 0)
3326 int d=(int)(
long)
h->next->Data();
3327 char *
s=(
char *)
h->Data();
3345 if (strcmp(sys_cmd,
"subring") == 0)
3359 if (strcmp(sys_cmd,
"HNF") == 0)
3381 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3389 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3394 char *
s=(
char *)
h->next->Data();
3406 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3410 char* filename = (
char*)
h->Data();
3411 FILE*
f = fopen(filename,
"r");
3414 WerrorS(
"invalid file name (in paths use '/')");
3417 mpz_t
m; mpz_init(
m);
3418 mpz_inp_str(
m,
f, 10);
3422 res->data = (
void*)n;
3427 WerrorS(
"expected valid file name as a string");
3439 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3443 (
h->next->next ==
NULL))
3448 int validEntries = 0;
3449 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3451 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3452 sizeof(
int) * jvec->
rows()) == 0)
3454 if (validEntries == 0)
3458 r->
resize(validEntries + 1);
3459 (*r)[validEntries] =
k + 1;
3465 res->data = (
void*)r;
3470 WerrorS(
"expected two non-empty intvecs as arguments");
3481 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3485 (
h->next->next ==
NULL))
3489 int ir = ivec->
rows();
int jr = jvec->
rows();
3490 int r = jr;
if (ir < jr) r = ir;
3491 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3492 sizeof(
int) * r) != 0))
3495 res->data = (
void*)(
long)r;
3500 WerrorS(
"expected two non-empty intvecs as arguments");
3506 if(strcmp(sys_cmd,
"henselfactors")==0)
3511 (
h->next->next->next !=
NULL) &&
3512 (
h->next->next->next->Typ() ==
POLY_CMD) &&
3513 (
h->next->next->next->next !=
NULL) &&
3514 (
h->next->next->next->next->Typ() ==
POLY_CMD) &&
3515 (
h->next->next->next->next->next !=
NULL) &&
3516 (
h->next->next->next->next->next->Typ() ==
INT_CMD) &&
3517 (
h->next->next->next->next->next->next ==
NULL))
3519 int xIndex = (int)(
long)
h->Data();
3520 int yIndex = (int)(
long)
h->next->Data();
3521 poly hh = (poly)
h->next->next->Data();
3522 poly f0 = (poly)
h->next->next->next->Data();
3523 poly g0 = (poly)
h->next->next->next->next->Data();
3524 int d = (int)(
long)
h->next->next->next->next->next->Data();
3532 res->data = (
char *)L;
3537 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3544 if (strcmp(sys_cmd,
"astep") == 0)
3549 I=(ideal)
h->CopyD();
3562 if (strcmp(sys_cmd,
"PrintMat") == 0)
3572 a=(int)((
long)(
h->Data()));
3577 b=(int)((
long)(
h->Data()));
3592 metric=(int)((
long)(
h->Data()));
3603 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3616 if(strcmp(sys_cmd,
"NCGetType")==0)
3622 res->data=(
void *)(-1L);
3629 if(strcmp(sys_cmd,
"ForceSCA")==0)
3636 b = (int)((
long)(
h->Data()));
3642 e = (int)((
long)(
h->Data()));
3653 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3665 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3677 if(strcmp(sys_cmd,
"test64")==0)
3693 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3699 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3710 if(strcmp(sys_cmd,
"LU")==0)
3720 res->data=(
char*)bb;
3725 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3732 if(strcmp(sys_cmd,
"sort")==0)
3742 if(strcmp(sys_cmd,
"uniq")==0)
3752 if(strcmp(sys_cmd,
"GF")==0)
3757 int p=(int)(
long)
h->Data();
3758 int n=(int)(
long)
h->next->Data();
3759 char *
v=(
char*)
h->next->next->CopyD();
3775 if(strcmp(sys_cmd,
"power1")==0)
3778 poly
f=(poly)
h->CopyD();
3780 res->data=(
void *)
g;
3784 if(strcmp(sys_cmd,
"power2")==0)
3787 poly
f=(poly)
h->Data();
3789 for(
int i=0;
i<2000;
i++)
3791 res->data=(
void *)
g;
3794 if(strcmp(sys_cmd,
"power3")==0)
3797 poly
f=(poly)
h->Data();
3808 poly p1536=
pMult(p1024,p512);
3809 poly p1792=
pMult(p1536,p256);
3810 poly p1920=
pMult(p1792,p128);
3811 poly p1984=
pMult(p1920,p64);
3812 poly p2000=
pMult(p1984,p16);
3813 res->data=(
void *)p2000;
3833 #ifdef HAVE_CCLUSTER
3834 if(strcmp(sys_cmd,
"ccluster")==0)
3844 int pol_with_complex_coeffs=0;
3846 pol_with_complex_coeffs=1;
3852 fmpq_poly_t fre, fim;
3854 if (pol_with_complex_coeffs==1)
3859 fmpq_t center_re,center_im,boxsize,eps;
3865 int n=fmpq_poly_length(fre);
3866 fmpq_t* re_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3867 fmpq_t* im_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3869 for(
int i=0;
i<n;
i++)
3870 { fmpq_init(re_part[
i]); fmpq_init(im_part[
i]); }
3875 long nb_threads = (long)
feOptValue(FE_OPT_CPUS);
3876 strategy = strategy+(nb_threads<<6);
3879 if (pol_with_complex_coeffs==0)
3880 nn=ccluster_interface_poly_real(re_part,im_part,
mult,fre,center_re,center_im,boxsize,eps,strategy,verbosity);
3882 nn=ccluster_interface_poly_real_imag(re_part,im_part,
mult,fre,fim,center_re,center_im,boxsize,eps,strategy,verbosity);
3886 for(
int i=0;
i<nn;
i++)
3900 for(
int i=n-1;
i>=0;
i--) { fmpq_clear(re_part[
i]); fmpq_clear(im_part[
i]); }
3904 fmpq_clear(center_re); fmpq_clear(center_im); fmpq_clear(boxsize); fmpq_clear(eps);
3905 fmpq_poly_clear(fre);
3906 if (pol_with_complex_coeffs==1) fmpq_poly_clear(fim);
3918 if(strcmp(sys_cmd,
"evaluate")==0)
3920 extern number
maEvalAt(
const poly
p,
const number* pt,
const ring r);
3923 WerrorS(
"expected system(\"evaluate\",<poly>,..)");
3926 poly
p=(poly)
h->Data();
3933 WerrorS(
"system(\"evaluate\",<poly>,<number>..) - expect number");
3936 pt[
i]=(number)
h->Data();
3944 if(strcmp(sys_cmd,
"DivRem")==0)
3949 poly
p=(poly)
h->CopyD();
3950 poly q=(poly)
h->next->CopyD();
3959 WerrorS(
"expected system(\"DivRem\",<poly>,<poly>)");
3965 if(strcmp(sys_cmd,
"CoeffTerm")==0)
3976 poly
p=(poly)
h->Data();
3977 poly q=(poly)
h->next->Data();
3985 ideal
p=(ideal)
h->Data();
3986 poly q=(poly)
h->next->Data();
3993 poly
p=(poly)
h->Data();
3994 poly q=(poly)
h->next->Data();
4001 ideal
p=(ideal)
h->Data();
4002 poly q=(poly)
h->next->Data();
4009 WerrorS(
"expected system(\"CoeffTerm\",<poly>/<vector>,<poly>/<vector>)" "\n or <ideal>/<module>,<poly>/<vector>");
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)
static FORCE_INLINE number n_convFactoryNSingN(const CanonicalForm n, const coeffs r)
void n_Print(number &a, const coeffs r)
print a number (BEWARE of string buffers!) mostly for debugging
static FORCE_INLINE CanonicalForm n_convSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
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)
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)
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)
number p_CoeffTerm(poly p, poly m, const ring r)
find coeff of (polynomial) m in polynomial p find coeff of (vector) m in vector p
ideal id_CoeffTermV(ideal M, poly m, const ring r)
find coeffs of (polynomial) m in all vectors from I
ideal id_CoeffTerm(ideal I, poly m, const ring r)
find coeffs of (polynomial) m in all polynomials from I find coeffs of (vector) m in all vectors from...
poly p_CoeffTermV(poly v, poly m, const ring r)
find vector of coeffs of (polynomial) m in vector v
void pPrintDivisbleByStat()
static unsigned pLength(poly a)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
poly p_DivRem(poly p, poly q, poly &rest, const ring r)
#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)