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",
2672 if(strcmp(sys_cmd,
"red")==0)
2687 if(strcmp(sys_cmd,
"fastcomb")==0)
2695 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2700 (ideal)
h->Data(),(poly)
h->next->Data());
2708 if(strcmp(sys_cmd,
"comb")==0)
2716 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2721 (ideal)
h->Data(),(poly)
h->next->Data());
2730 if(strcmp(sys_cmd,
"listall")==0)
2732 void listall(
int showproc);
2734 if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
2742 if(strcmp(sys_cmd,
"proclist")==0)
2744 void piShowProcList();
2752 if(strcmp(sys_cmd,
"newton")==0)
2756 || (
h->next->next->Typ()!=
INT_CMD))
2758 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2761 poly
p=(poly)(
h->Data());
2780 (
int) (
h->next->Data()),
2781 (
int) (
h->next->next->Data())
2794 L->
m[1].
data=(
void *)(
long)r.achse;
2796 L->
m[2].
data=(
void *)(
long)r.deg;
2800 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2802 int anz = r.anz_punkte;
2805 for (
i=0;
i<anz*
dim;
i++)
2815 (*w)[
i] = r.deg_tab[
i];
2818 while (r.deg_tab[
i-1] != -2);
2829 res->data=(
void *)L;
2852 if (strcmp(sys_cmd,
"minpoly") == 0)
2856 Werror(
"expected exactly one argument: %s",
2857 "a square matrix with number entries");
2867 WerrorS(
"expected exactly one argument: "
2868 "a square matrix with number entries");
2875 res->data = (
void *)theMinPoly;
2876 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2878 delete[] polyCoeffs;
2885 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2893 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2902 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2906 WerrorS(
"shell execution is disallowed in restricted mode");
2916 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2925 if (strcmp(sys_cmd,
"GF") == 0)
2942 if (strcmp(sys_cmd,
"svd") == 0)
2953 if (strcmp(sys_cmd,
"redNF_ring")==0)
2956 poly
f = (poly)
h->Data();
2958 ideal
G = (ideal)
h->Data();
2966 if (strcmp(sys_cmd,
"hilbroune") == 0)
2978 if (strcmp(sys_cmd,
"f5")==0)
2987 ideal
G = (ideal)
h->Data();
2991 opt = (int) (
long)
h->Data();
2999 plus = (int) (
long)
h->Data();
3007 termination = (int) (
long)
h->Data();
3013 res->data=(ideal)
F5main(
G,r,opt,plus,termination);
3020 if (strcmp(sys_cmd,
"NF_ring")==0)
3023 poly
f = (poly)
h->Data();
3025 ideal
G = (ideal)
h->Data();
3031 if (strcmp(sys_cmd,
"spoly")==0)
3033 poly
f =
pCopy((poly)
h->Data());
3035 poly
g =
pCopy((poly)
h->Data());
3042 if (strcmp(sys_cmd,
"testGB")==0)
3044 ideal I = (ideal)
h->Data();
3046 ideal GI = (ideal)
h->Data();
3048 res->data = (
void *)(
long)
testGB(I, GI);
3055 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3061 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3069 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3076 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3082 #ifdef HAVE_RATGRING
3083 if (strcmp(sys_cmd,
"intratNF") == 0)
3098 I=(ideal)
h->CopyD();
3106 is=(int)((
long)(
h->Data()));
3114 for(
k=0;
k < id;
k++)
3118 PrintS(
"starting redRat\n");
3136 if (strcmp(sys_cmd,
"ratNF") == 0)
3155 is=(int)((
long)(
h->Data()));
3170 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3188 is=(int)((
long)(
h->Data()));
3204 if (strcmp(sys_cmd,
"ratVar") == 0)
3221 return (start==0)||(end==0)||(start>end);
3225 if (strcmp(sys_cmd,
"unifastmult")==0)
3227 poly
f = (poly)
h->Data();
3229 poly
g=(poly)
h->Data();
3235 if (strcmp(sys_cmd,
"multifastmult")==0)
3237 poly
f = (poly)
h->Data();
3239 poly
g=(poly)
h->Data();
3245 if (strcmp(sys_cmd,
"mults")==0)
3252 if (strcmp(sys_cmd,
"fastpower")==0)
3255 poly
f = (poly)
h->Data();
3257 int n=(int)((
long)
h->Data());
3263 if (strcmp(sys_cmd,
"normalpower")==0)
3265 poly
f = (poly)
h->Data();
3267 int n=(int)((
long)
h->Data());
3273 if (strcmp(sys_cmd,
"MCpower")==0)
3276 poly
f = (poly)
h->Data();
3278 int n=(int)((
long)
h->Data());
3284 if (strcmp(sys_cmd,
"bit_subst")==0)
3287 poly outer = (poly)
h->Data();
3289 poly inner=(poly)
h->Data();
3296 if (strcmp(sys_cmd,
"gcd") == 0)
3316 int d=(int)(
long)
h->next->Data();
3317 char *
s=(
char *)
h->Data();
3335 if (strcmp(sys_cmd,
"subring") == 0)
3349 if (strcmp(sys_cmd,
"HNF") == 0)
3371 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3379 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3384 char *
s=(
char *)
h->next->Data();
3396 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3400 char* filename = (
char*)
h->Data();
3401 FILE*
f = fopen(filename,
"r");
3404 WerrorS(
"invalid file name (in paths use '/')");
3407 mpz_t
m; mpz_init(
m);
3408 mpz_inp_str(
m,
f, 10);
3412 res->data = (
void*)n;
3417 WerrorS(
"expected valid file name as a string");
3429 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3433 (
h->next->next ==
NULL))
3438 int validEntries = 0;
3439 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3441 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3442 sizeof(
int) * jvec->
rows()) == 0)
3444 if (validEntries == 0)
3448 r->
resize(validEntries + 1);
3449 (*r)[validEntries] =
k + 1;
3455 res->data = (
void*)r;
3460 WerrorS(
"expected two non-empty intvecs as arguments");
3471 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3475 (
h->next->next ==
NULL))
3479 int ir = ivec->
rows();
int jr = jvec->
rows();
3480 int r = jr;
if (ir < jr) r = ir;
3481 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3482 sizeof(
int) * r) != 0))
3485 res->data = (
void*)(
long)r;
3490 WerrorS(
"expected two non-empty intvecs as arguments");
3496 if(strcmp(sys_cmd,
"henselfactors")==0)
3501 (
h->next->next->next !=
NULL) &&
3502 (
h->next->next->next->Typ() ==
POLY_CMD) &&
3503 (
h->next->next->next->next !=
NULL) &&
3504 (
h->next->next->next->next->Typ() ==
POLY_CMD) &&
3505 (
h->next->next->next->next->next !=
NULL) &&
3506 (
h->next->next->next->next->next->Typ() ==
INT_CMD) &&
3507 (
h->next->next->next->next->next->next ==
NULL))
3509 int xIndex = (int)(
long)
h->Data();
3510 int yIndex = (int)(
long)
h->next->Data();
3511 poly hh = (poly)
h->next->next->Data();
3512 poly f0 = (poly)
h->next->next->next->Data();
3513 poly g0 = (poly)
h->next->next->next->next->Data();
3514 int d = (int)(
long)
h->next->next->next->next->next->Data();
3522 res->data = (
char *)L;
3527 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3534 if (strcmp(sys_cmd,
"astep") == 0)
3539 I=(ideal)
h->CopyD();
3552 if (strcmp(sys_cmd,
"PrintMat") == 0)
3562 a=(int)((
long)(
h->Data()));
3567 b=(int)((
long)(
h->Data()));
3582 metric=(int)((
long)(
h->Data()));
3593 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3606 if(strcmp(sys_cmd,
"NCGetType")==0)
3612 res->data=(
void *)(-1L);
3619 if(strcmp(sys_cmd,
"ForceSCA")==0)
3626 b = (int)((
long)(
h->Data()));
3632 e = (int)((
long)(
h->Data()));
3643 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3655 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3667 if(strcmp(sys_cmd,
"test64")==0)
3683 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3689 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3700 if(strcmp(sys_cmd,
"LU")==0)
3710 res->data=(
char*)bb;
3715 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3722 if(strcmp(sys_cmd,
"sort")==0)
3732 if(strcmp(sys_cmd,
"uniq")==0)
3742 if(strcmp(sys_cmd,
"GF")==0)
3747 int p=(int)(
long)
h->Data();
3748 int n=(int)(
long)
h->next->Data();
3749 char *
v=(
char*)
h->next->next->CopyD();
3765 if(strcmp(sys_cmd,
"power1")==0)
3768 poly
f=(poly)
h->CopyD();
3770 res->data=(
void *)
g;
3774 if(strcmp(sys_cmd,
"power2")==0)
3777 poly
f=(poly)
h->Data();
3779 for(
int i=0;
i<2000;
i++)
3781 res->data=(
void *)
g;
3784 if(strcmp(sys_cmd,
"power3")==0)
3787 poly
f=(poly)
h->Data();
3798 poly p1536=
pMult(p1024,p512);
3799 poly p1792=
pMult(p1536,p256);
3800 poly p1920=
pMult(p1792,p128);
3801 poly p1984=
pMult(p1920,p64);
3802 poly p2000=
pMult(p1984,p16);
3803 res->data=(
void *)p2000;
3823 #ifdef HAVE_CCLUSTER
3824 if(strcmp(sys_cmd,
"ccluster")==0)
3834 int pol_with_complex_coeffs=0;
3836 pol_with_complex_coeffs=1;
3842 fmpq_poly_t fre, fim;
3844 if (pol_with_complex_coeffs==1)
3849 fmpq_t center_re,center_im,boxsize,eps;
3855 int n=fmpq_poly_length(fre);
3856 fmpq_t* re_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3857 fmpq_t* im_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
3859 for(
int i=0;
i<n;
i++)
3860 { fmpq_init(re_part[
i]); fmpq_init(im_part[
i]); }
3865 long nb_threads = (long)
feOptValue(FE_OPT_CPUS);
3866 strategy = strategy+(nb_threads<<6);
3869 if (pol_with_complex_coeffs==0)
3870 nn=ccluster_interface_poly_real(re_part,im_part,
mult,fre,center_re,center_im,boxsize,eps,strategy,verbosity);
3872 nn=ccluster_interface_poly_real_imag(re_part,im_part,
mult,fre,fim,center_re,center_im,boxsize,eps,strategy,verbosity);
3876 for(
int i=0;
i<nn;
i++)
3890 for(
int i=n-1;
i>=0;
i--) { fmpq_clear(re_part[
i]); fmpq_clear(im_part[
i]); }
3894 fmpq_clear(center_re); fmpq_clear(center_im); fmpq_clear(boxsize); fmpq_clear(eps);
3895 fmpq_poly_clear(fre);
3896 if (pol_with_complex_coeffs==1) fmpq_poly_clear(fim);
3908 if(strcmp(sys_cmd,
"evaluate")==0)
3910 extern number
maEvalAt(
const poly
p,
const number* pt,
const ring r);
3913 WerrorS(
"expected system(\"evaluate\",<poly>,..)");
3916 poly
p=(poly)
h->Data();
3923 WerrorS(
"system(\"evaluate\",<poly>,<number>..) - expect number");
3926 pt[
i]=(number)
h->Data();
3934 if(strcmp(sys_cmd,
"DivRem")==0)
3939 poly
p=(poly)
h->CopyD();
3940 poly q=(poly)
h->next->CopyD();
3949 WerrorS(
"expected system(\"DivRem\",<poly>,<poly>)");
3955 if(strcmp(sys_cmd,
"CoeffTerm")==0)
3968 poly
p=(poly)
h->Data();
3969 poly q=(poly)
h->next->Data();
3977 ideal
p=(ideal)
h->Data();
3978 poly q=(poly)
h->next->Data();
3985 poly
p=(poly)
h->Data();
3986 poly q=(poly)
h->next->Data();
3993 ideal
p=(ideal)
h->Data();
3994 poly q=(poly)
h->next->Data();
4001 poly
p=(poly)
h->Data();
4002 ideal q=(ideal)
h->next->Data();
4009 poly
p=(poly)
h->Data();
4010 ideal q=(ideal)
h->next->Data();
4017 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)
poly p_CoeffTermMo(poly v, ideal m, int n, const ring r)
find coeffs of a vector of a matrix(module) of given monomials, n>=max_comp(v)
poly p_CoeffTermId(poly v, ideal m, int n, const ring r)
find coeffs of a vector of a list of given monomials, n>=max_comp(v)
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
static int pLength(poly a)
static long p_MaxComp(poly p, ring lmRing, ring tailRing)
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)