19#include "ccluster/ccluster.h" 
   22#include "factory/factory.h" 
   24#ifdef TIME_WITH_SYS_TIME 
   26# ifdef HAVE_SYS_TIME_H 
   30# ifdef HAVE_SYS_TIME_H 
   36#ifdef HAVE_SYS_TIMES_H 
  142#ifndef MAKE_DISTRIBUTION 
  143#define HAVE_EXTENDED_SYSTEM 1 
  168#ifndef MAKE_DISTRIBUTION 
  180  int n = singularMatrix->
rows();
 
  182  unsigned long **longMatrix = 0;
 
  183  longMatrix = 
new unsigned long *[n] ;
 
  184  for (
int i = 0 ; 
i < n; 
i++)
 
  185    longMatrix[
i] = 
new unsigned long [n];
 
  187  for (
int r = 0; r < n; r++)
 
  188    for (
int c = 0; c < n; c++)
 
  190      poly 
p=
MATELEM(singularMatrix, r + 1, c + 1);
 
  200      longMatrix[r][c] = (
unsigned long)entryAsInt;
 
  215    if ((
int)polyCoeffs[
i] != 0)
 
  236    const char *sys_cmd=(
char *)(args->
Data());
 
  241    if (strcmp(sys_cmd, 
"nblocks") == 0)
 
  263        r = (ring) 
h->Data();
 
  270    if(strcmp(sys_cmd,
"version")==0)
 
  278      if(strcmp(sys_cmd,
"alarm")==0)
 
  285          struct itimerval t,o;
 
  286          memset(&t,0,
sizeof(t));
 
  287          t.it_value.tv_sec     =(unsigned)((
unsigned long)
h->Data());
 
  288          setitimer(ITIMER_VIRTUAL,&t,&o);
 
  296    if(strcmp(sys_cmd,
"content")==0)
 
  301        poly 
p=(poly)
h->CopyD();
 
  315    if(strcmp(sys_cmd,
"cpu")==0)
 
  319      #ifdef _SC_NPROCESSORS_ONLN 
  320      cpu=sysconf(_SC_NPROCESSORS_ONLN);
 
  321      #elif defined(_SC_NPROCESSORS_CONF) 
  322      cpu=sysconf(_SC_NPROCESSORS_CONF);
 
  324      res->data=(
void *)cpu;
 
  333    if(strcmp(sys_cmd,
"executable")==0)
 
  348    if(strcmp(sys_cmd,
"flatten")==0)
 
  361    if(strcmp(sys_cmd,
"unflatten")==0)
 
  374    if(strcmp(sys_cmd,
"neworder")==0)
 
  388    if(strcmp(sys_cmd,
"nc_hilb") == 0)
 
  396        i = (ideal)
h->Data();
 
  399        WerrorS(
"nc_Hilb:ideal expected");
 
  404        lV = (int)(
long)
h->Data();
 
  407        WerrorS(
"nc_Hilb:int expected");
 
  413        if((
int)(
long)
h->Data() == 1)
 
  415        else if((
int)(
long)
h->Data() == 2)
 
  420          trunDegHs = (int)(
long)
h->Data();
 
  425        WerrorS(
"nc_Hilb:int 1,2, total degree for the truncation, and a string                  for printing the details are expected");
 
  434    if(strcmp(sys_cmd,
"verifyGB")==0)
 
  438        WerrorS(
"system(\"verifyGB\",<ideal>,..) expects a commutative ring");
 
  443        WerrorS(
"expected system(\"verifyGB\",<ideal>,..)");
 
  446      ideal F=(ideal)
h->Data();
 
  463  if(strcmp(sys_cmd,
"rcolon") == 0)
 
  468      ideal 
i = (ideal)
h->Data();
 
  470      poly 
w=(poly)
h->Data();
 
  472      int lV = (int)(
long)
h->Data();
 
  483    if(strcmp(sys_cmd,
"sh")==0)
 
  487        WerrorS(
"shell execution is disallowed in restricted mode");
 
  491      if (
h==
NULL) 
res->data = (
void *)(
long) system(
"sh");
 
  493        res->data = (
void*)(
long) system((
char*)(
h->Data()));
 
  500    if(strcmp(sys_cmd,
"reduce_bound")==0)
 
  510        p = (poly)
h->CopyD();
 
  514        pid = (ideal)
h->CopyD();
 
  519      ideal q = (ideal)
h->next->CopyD();
 
  520      int bound = (int)(
long)
h->next->next->Data();
 
  529    if(strcmp(sys_cmd,
"uname")==0)
 
  537    if(strcmp(sys_cmd,
"with")==0)
 
  547        #define TEST_FOR(A) if(strcmp(s,A)==0) res->data=(void *)1; else 
  548        char *
s=(
char *)
h->Data();
 
  561        #ifdef TEST_MAC_ORDER 
  566        #ifdef HAVE_DYNAMIC_LOADING 
  589    if (strcmp(sys_cmd,
"browsers")==0)
 
  599    if (strcmp(sys_cmd,
"pid")==0)
 
  602      res->data=(
void *)(
long) getpid();
 
  607    if (strcmp(sys_cmd,
"getenv")==0)
 
  612        const char *r=
getenv((
char *)
h->Data());
 
  625    if (strcmp(sys_cmd,
"setenv")==0)
 
  632        setenv((
char *)
h->Data(), (
char *)
h->next->Data(), 1);
 
  642      WerrorS(
"setenv not supported on this platform");
 
  648    if (strcmp(sys_cmd, 
"Singular") == 0)
 
  657    if (strcmp(sys_cmd, 
"SingularLib") == 0)
 
  666    if (strcmp(sys_cmd, 
"SingularBin") == 0)
 
  670      if (r == 
NULL) r=
"/usr/local";
 
  673      #define SINGULAR_PROCS_DIR "/libexec/singular/MOD" 
  676      if ((strstr(r,
".libs/..")==
NULL)   
 
  677      &&(strstr(r,
"Singular/..")==
NULL)) 
 
  681        if (access(
s,X_OK)==0)
 
  688          strcpy(
s,LIBEXEC_DIR);
 
  689          if (access(
s,X_OK)==0)
 
  712      res->data = (
void*)
s;
 
  717    if (strstr(sys_cmd, 
"--") == sys_cmd)
 
  719      if (strcmp(sys_cmd, 
"--") == 0)
 
  727        Werror(
"Unknown option %s", sys_cmd);
 
  728        WerrorS(
"Use 'system(\"--\");' for listing of available options");
 
  743          const char *r=(
const char*)
feOptSpec[opt].value;
 
  757        WerrorS(
"Need string or int argument to set option value");
 
  760      const char* errormsg;
 
  765          Werror(
"Need string argument to set value of option %s", sys_cmd);
 
  769        if (errormsg != 
NULL)
 
  770          Werror(
"Option '--%s=%d' %s", sys_cmd, (
int) ((
long)
h->Data()), errormsg);
 
  775        if (errormsg != 
NULL)
 
  776          Werror(
"Option '--%s=%s' %s", sys_cmd, (
char*) 
h->Data(), errormsg);
 
  783    if (strcmp(sys_cmd,
"HC")==0)
 
  791    if(strcmp(sys_cmd,
"random")==0)
 
  814    if (strcmp(sys_cmd,
"denom_list")==0)
 
  823    if(strcmp(sys_cmd,
"complexNearZero")==0)
 
  830          WerrorS( 
"unsupported ground field!");
 
  837                             (int)((
long)(
h->next->Data())));
 
  848    if(strcmp(sys_cmd,
"getPrecDigits")==0)
 
  853        WerrorS( 
"unsupported ground field!");
 
  864    if(strcmp(sys_cmd, 
"lduDecomp")==0)
 
  871        poly 
l; poly u; poly prodLU;
 
  872        lduDecomp(aMat, pMat, lMat, dMat, uMat, 
l, u, prodLU);
 
  883        res->data = (
char *)L;
 
  893    if(strcmp(sys_cmd, 
"lduSolve")==0)
 
  927      poly 
l       = (poly)  
h->next->next->next->next->Data();
 
  928      poly u       = (poly)  
h->next->next->next->next->next->Data();
 
  929      poly lTimesU = (poly)  
h->next->next->next->next->next->next->Data();
 
  930      matrix bVec  = (
matrix)
h->next->next->next->next->next->next->next->Data();
 
  934        Werror(
"first matrix (%d x %d) is not quadratic",
 
  940        Werror(
"second matrix (%d x %d) is not quadratic",
 
  946        Werror(
"third matrix (%d x %d) is not quadratic",
 
  952        Werror(
"third matrix (%d x %d) and fourth matrix (%d x %d) %s",
 
  959        Werror(
"fourth matrix (%d x %d) and vector (%d x 1) do not fit",
 
  964                                       bVec, xVec, homogSolSpace);
 
  987    if (strcmp(sys_cmd, 
"shared") == 0)
 
  989      #ifndef SI_COUNTEDREF_AUTOLOAD 
  996    else if (strcmp(sys_cmd, 
"reference") == 0)
 
  998      #ifndef SI_COUNTEDREF_AUTOLOAD 
 1007#ifdef HAVE_SIMPLEIPC 
 1008    if (strcmp(sys_cmd,
"semaphore")==0)
 
 1013        if ((
h->next->next!=
NULL)&& (
h->next->next->Typ()==
INT_CMD))
 
 1014          v=(int)(
long)
h->next->next->Data();
 
 1021        WerrorS(
"Usage: system(\"semaphore\",<cmd>,int)");
 
 1028    if (strcmp(sys_cmd,
"reserve")==0)
 
 1036        res->data=(
void*)(
long)
p;
 
 1043    if (strcmp(sys_cmd,
"reservedLink")==0)
 
 1052    if (strcmp(sys_cmd,
"install")==0)
 
 1058                                (
int)(
long)
h->next->next->next->Data(),
 
 1065    if (strcmp(sys_cmd,
"newstruct")==0)
 
 1071        char *n=(
char*)
h->Data();
 
 1078            newstruct_desc desc=(newstruct_desc)bb->data;
 
 1082          else Werror(
"'%s' is not a newstruct",n);
 
 1084        else Werror(
"'%s' is not a blackbox object",n);
 
 1090    if (strcmp(sys_cmd,
"blackbox")==0)
 
 1097    #if defined(HAVE_FLINT) || defined(HAVE_NTL) 
 1098    if (strcmp(sys_cmd, 
"absFact") == 0)
 
 1115        l->m[0].data=(
void *)
f;
 
 1117        l->m[1].data=(
void *)
v;
 
 1119        l->m[2].data=(
void*) mipos;
 
 1121        l->m[3].data=(
void*) (
long) n;
 
 1122        res->data=(
void *)
l;
 
 1131    if (strcmp(sys_cmd, 
"LLL") == 0)
 
 1154  #if __FLINT_RELEASE >= 20500 
 1155    if (strcmp(sys_cmd, 
"LLL_Flint") == 0)
 
 1176            WerrorS(
"matrix,int or bigint,int expected");
 
 1181            if(((
int)((
long)(
h->next->Data())) != 0) && (
int)((
long)(
h->next->Data()) != 1))
 
 1183                WerrorS(
"int is different from 0, 1");
 
 1187            if((
long)(
h->next->Data()) == 0)
 
 1202            if((
long)(
h->next->Data()) == 1)
 
 1208                  for(
int i = 1; 
i<=
m->rows(); 
i++)
 
 1226                  for(
int i = 1; 
i<=
m->rows(); 
i++)
 
 1248  #if defined(HAVE_FLINT) || defined(HAVE_NTL) 
 1249  if(strcmp(sys_cmd,
"rref")==0)
 
 1256      #if defined(HAVE_FLINT) 
 1258      #elif defined(HAVE_NTL) 
 1266      ideal 
M=(ideal)
h->Data();
 
 1267      #if defined(HAVE_FLINT) 
 1269      #elif defined(HAVE_NTL) 
 1277      WerrorS(
"expected system(\"rref\",<matrix>/<smatrix>)");
 
 1285    if(strcmp(sys_cmd,
"pcvLAddL")==0)
 
 1290    if(strcmp(sys_cmd,
"pcvPMulL")==0)
 
 1295    if(strcmp(sys_cmd,
"pcvMinDeg")==0)
 
 1300    if(strcmp(sys_cmd,
"pcvP2CV")==0)
 
 1305    if(strcmp(sys_cmd,
"pcvCV2P")==0)
 
 1310    if(strcmp(sys_cmd,
"pcvDim")==0)
 
 1315    if(strcmp(sys_cmd,
"pcvBasis")==0)
 
 1322  #ifdef HAVE_EIGENVAL 
 1323    if(strcmp(sys_cmd,
"hessenberg")==0)
 
 1330  #ifdef HAVE_EIGENVAL 
 1331    if(strcmp(sys_cmd,
"eigenvals")==0)
 
 1338  #ifdef HAVE_EIGENVAL 
 1339    if(strcmp(sys_cmd,
"rowelim")==0)
 
 1346  #ifdef HAVE_EIGENVAL 
 1347    if(strcmp(sys_cmd,
"rowcolswap")==0)
 
 1355    if(strcmp(sys_cmd,
"gmsnf")==0)
 
 1362    if(strcmp(sys_cmd,
"contributors") == 0)
 
 1366         "Olaf Bachmann, Michael Brickenstein, Hubert Grassmann, Kai Krueger, Victor Levandovskyy, Wolfgang Neumann, Thomas Nuessler, Wilfred Pohl, Jens Schmidt, Mathias Schulze, Thomas Siebert, Ruediger Stobbe, Moritz Wenk, Tim Wichmann");
 
 1371    #ifdef HAVE_SPECTRUM 
 1372    if(strcmp(sys_cmd,
"spectrum") == 0)
 
 1386      if(((
long)
h->next->Data())==1L)
 
 1392    if(strcmp(sys_cmd,
"semic") == 0)
 
 1398        if (
h->next->next==
NULL)
 
 1400        else if (
h->next->next->Typ()==
INT_CMD)
 
 1407    if(strcmp(sys_cmd,
"spadd") == 0)
 
 1418    if(strcmp(sys_cmd,
"spmul") == 0)
 
 1430  #define HAVE_SHEAFCOH_TRICKS 1 
 1432  #ifdef HAVE_SHEAFCOH_TRICKS 
 1433    if(strcmp(sys_cmd,
"tensorModuleMult")==0)
 
 1439        int m = (int)( (
long)
h->Data() );
 
 1440        ideal 
M = (ideal)
h->next->Data();
 
 1451    if (strcmp(sys_cmd, 
"twostd") == 0)
 
 1456        I=(ideal)
h->CopyD();
 
 1470    if (strcmp(sys_cmd, 
"bracket") == 0)
 
 1475        poly 
p=(poly)
h->CopyD();
 
 1477        poly q=(poly)
h->Data();
 
 1488    if (strcmp(sys_cmd, 
"env")==0)
 
 1492        ring r = (ring)
h->Data();
 
 1499        WerrorS(
"`system(\"env\",<ring>)` expected");
 
 1507    if (strcmp(sys_cmd, 
"opp")==0)
 
 1511        ring r=(ring)
h->Data();
 
 1518        WerrorS(
"`system(\"opp\",<ring>)` expected");
 
 1526    if (strcmp(sys_cmd, 
"oppose")==0)
 
 1529      && (
h->next!= 
NULL))
 
 1531        ring Rop = (ring)
h->Data();
 
 1544        WerrorS(
"`system(\"oppose\",<ring>,<poly>)` expected");
 
 1554    if (strcmp(sys_cmd, 
"walkNextWeight") == 0)
 
 1561        Werror(
"system(\"walkNextWeight\" ...) intvecs not of length %d\n",
 
 1565      res->data = (
void*) walkNextWeight(((
intvec*) 
h->Data()),
 
 1567                                         (ideal) 
h->next->next->Data());
 
 1568      if (
res->data == 
NULL || 
res->data == (
void*) 1L)
 
 1584    if (strcmp(sys_cmd, 
"walkInitials") == 0)
 
 1588        WerrorS(
"system(\"walkInitials\", ideal) expected");
 
 1591      res->data = (
void*) walkInitials((ideal) 
h->Data());
 
 1601    if (strcmp(sys_cmd, 
"walkAddIntVec") == 0)
 
 1607      res->data = (
intvec*) walkAddIntVec(arg1, arg2);
 
 1616  #ifdef MwaklNextWeight 
 1617    if (strcmp(sys_cmd, 
"MwalkNextWeight") == 0)
 
 1624        Werror(
"system(\"MwalkNextWeight\" ...) intvecs not of length %d\n",
 
 1630      ideal arg3   =   (ideal) 
h->next->next->Data();
 
 1641    if(strcmp(sys_cmd, 
"Mivdp") == 0)
 
 1645        WerrorS(
"system(\"Mivdp\", int) expected");
 
 1648      if ((
int) ((
long)(
h->Data())) != 
currRing->N)
 
 1650        Werror(
"system(\"Mivdp\" ...) intvecs not of length %d\n",
 
 1654      int arg1 = (int) ((
long)(
h->Data()));
 
 1664    if(strcmp(sys_cmd, 
"Mivlp") == 0)
 
 1668        WerrorS(
"system(\"Mivlp\", int) expected");
 
 1671      if ((
int) ((
long)(
h->Data())) != 
currRing->N)
 
 1673        Werror(
"system(\"Mivlp\" ...) intvecs not of length %d\n",
 
 1677      int arg1 = (int) ((
long)(
h->Data()));
 
 1688    if(strcmp(sys_cmd, 
"MpDiv") == 0)
 
 1692      poly arg1 = (poly) 
h->Data();
 
 1693      poly arg2 = (poly) 
h->next->Data();
 
 1694      poly 
result = MpDiv(arg1, arg2);
 
 1705    if(strcmp(sys_cmd, 
"MpMult") == 0)
 
 1709      poly arg1 = (poly) 
h->Data();
 
 1710      poly arg2 = (poly) 
h->next->Data();
 
 1711      poly 
result = MpMult(arg1, arg2);
 
 1721    if (strcmp(sys_cmd, 
"MivSame") == 0)
 
 1742      res->data = (
void*)(
long) 
MivSame(arg1, arg2);
 
 1749    if (strcmp(sys_cmd, 
"M3ivSame") == 0)
 
 1772      res->data = (
void*)(
long) 
M3ivSame(arg1, arg2, arg3);
 
 1779    if(strcmp(sys_cmd, 
"MwalkInitialForm") == 0)
 
 1785        Werror(
"system \"MwalkInitialForm\"...) intvec not of length %d\n",
 
 1789      ideal 
id      = (ideal) 
h->Data();
 
 1801    if(strcmp(sys_cmd, 
"MivMatrixOrder") == 0)
 
 1805        WerrorS(
"system(\"MivMatrixOrder\",intvec) expected");
 
 1818    if(strcmp(sys_cmd, 
"MivMatrixOrderdp") == 0)
 
 1822        WerrorS(
"system(\"MivMatrixOrderdp\",intvec) expected");
 
 1825      int arg1 = (int) ((
long)(
h->Data()));
 
 1835    if(strcmp(sys_cmd, 
"MPertVectors") == 0)
 
 1839      ideal arg1 = (ideal) 
h->Data();
 
 1841      int arg3 = (int) ((
long)(
h->next->next->Data()));
 
 1851    if(strcmp(sys_cmd, 
"MPertVectorslp") == 0)
 
 1855      ideal arg1 = (ideal) 
h->Data();
 
 1857      int arg3 = (int) ((
long)(
h->next->next->Data()));
 
 1867    if(strcmp(sys_cmd, 
"Mfpertvector") == 0)
 
 1871      ideal arg1 = (ideal) 
h->Data();
 
 1882    if(strcmp(sys_cmd, 
"MivUnit") == 0)
 
 1886      int arg1 = (int) ((
long)(
h->Data()));
 
 1896    if(strcmp(sys_cmd, 
"MivWeightOrderlp") == 0)
 
 1910    if(strcmp(sys_cmd, 
"MivWeightOrderdp") == 0)
 
 1914        WerrorS(
"system(\"MivWeightOrderdp\",intvec) expected");
 
 1928    if(strcmp(sys_cmd, 
"MivMatrixOrderlp") == 0)
 
 1932        WerrorS(
"system(\"MivMatrixOrderlp\",int) expected");
 
 1935      int arg1 = (int) ((
long)(
h->Data()));
 
 1945    if (strcmp(sys_cmd, 
"MkInterRedNextWeight") == 0)
 
 1952        Werror(
"system(\"MkInterRedNextWeight\" ...) intvecs not of length %d\n",
 
 1958      ideal arg3   =   (ideal) 
h->next->next->Data();
 
 1968  #ifdef MPertNextWeight 
 1969    if (strcmp(sys_cmd, 
"MPertNextWeight") == 0)
 
 1975        Werror(
"system(\"MPertNextWeight\" ...) intvecs not of length %d\n",
 
 1980      ideal arg2 = (ideal) 
h->next->Data();
 
 1981      int arg3   =   (int) 
h->next->next->Data();
 
 1992  #ifdef Mivperttarget 
 1993    if (strcmp(sys_cmd, 
"Mivperttarget") == 0)
 
 1997      ideal arg1 = (ideal) 
h->Data();
 
 1998      int arg2 = (int) 
h->next->Data();
 
 2009    if (strcmp(sys_cmd, 
"Mwalk") == 0)
 
 2016        Werror(
"system(\"Mwalk\" ...) intvecs not of length %d\n",
 
 2020      ideal arg1 = (ideal) 
h->CopyD();
 
 2023      ring arg4 = (ring) 
h->next->next->next->Data();
 
 2024      int arg5 = (int) (
long) 
h->next->next->next->next->Data();
 
 2025      int arg6 = (int) (
long) 
h->next->next->next->next->next->Data();
 
 2026      ideal 
result = (ideal) 
Mwalk(arg1, arg2, arg3, arg4, arg5, arg6);
 
 2036    if (strcmp(sys_cmd, 
"Mwalk") == 0)
 
 2045        Werror(
"system(\"Mwalk\" ...) intvecs not of length %d or %d\n",
 
 2049      ideal arg1 = (ideal) 
h->Data();
 
 2052      ring arg4 = (ring) 
h->next->next->next->Data();
 
 2053      ideal 
result = (ideal) 
Mwalk(arg1, arg2, arg3,arg4);
 
 2060    if (strcmp(sys_cmd, 
"Mpwalk") == 0)
 
 2067        Werror(
"system(\"Mpwalk\" ...) intvecs not of length %d\n",
currRing->N);
 
 2070      ideal arg1 = (ideal) 
h->Data();
 
 2071      int arg2 = (int) (
long) 
h->next->Data();
 
 2072      int arg3 = (int) (
long) 
h->next->next->Data();
 
 2075      int arg6 = (int) (
long) 
h->next->next->next->next->next->Data();
 
 2076      int arg7 = (int) (
long) 
h->next->next->next->next->next->next->Data();
 
 2077      int arg8 = (int) (
long) 
h->next->next->next->next->next->next->next->Data();
 
 2078      ideal 
result = (ideal) 
Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
 
 2088    if (strcmp(sys_cmd, 
"Mrwalk") == 0)
 
 2097        Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
 
 2101      ideal arg1 = (ideal) 
h->Data();
 
 2104      int arg4 = (int)(
long) 
h->next->next->next->Data();
 
 2105      int arg5 = (int)(
long) 
h->next->next->next->next->Data();
 
 2106      int arg6 = (int)(
long) 
h->next->next->next->next->next->Data();
 
 2107      int arg7 = (int)(
long) 
h->next->next->next->next->next->next->Data();
 
 2108      ideal 
result = (ideal) 
Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
 
 2117    if (strcmp(sys_cmd, 
"MAltwalk1") == 0)
 
 2124        Werror(
"system(\"MAltwalk1\" ...) intvecs not of length %d\n",
 
 2128      ideal arg1 = (ideal) 
h->Data();
 
 2129      int arg2 = (int) ((
long)(
h->next->Data()));
 
 2130      int arg3 = (int) ((
long)(
h->next->next->Data()));
 
 2143    if (strcmp(sys_cmd, 
"Mfwalk_alt") == 0)
 
 2150        Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
 
 2154      ideal arg1 = (ideal) 
h->Data();
 
 2157      int arg4 = (int) 
h->next->next->next->Data();
 
 2158      ideal 
result = (ideal) Mfwalk_alt(arg1, arg2, arg3, arg4);
 
 2168    if (strcmp(sys_cmd, 
"Mfwalk") == 0)
 
 2175        Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
 
 2179      ideal arg1 = (ideal) 
h->Data();
 
 2182      int arg4 = (int)(
long) 
h->next->next->next->Data();
 
 2183      int arg5 = (int)(
long) 
h->next->next->next->next->Data();
 
 2184      ideal 
result = (ideal) 
Mfwalk(arg1, arg2, arg3, arg4, arg5);
 
 2193    if (strcmp(sys_cmd, 
"Mfrwalk") == 0)
 
 2210        Werror(
"system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n",
 
 2215      ideal arg1 = (ideal) 
h->Data();
 
 2218      int arg4 = (int)(
long) 
h->next->next->next->Data();
 
 2219      int arg5 = (int)(
long) 
h->next->next->next->next->Data();
 
 2220      int arg6 = (int)(
long) 
h->next->next->next->next->next->Data();
 
 2221      ideal 
result = (ideal) 
Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6);
 
 2228    if (strcmp(sys_cmd, 
"Mprwalk") == 0)
 
 2237        Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
 
 2241      ideal arg1 = (ideal) 
h->Data();
 
 2244      int arg4 = (int)(
long) 
h->next->next->next->Data();
 
 2245      int arg5 = (int)(
long) 
h->next->next->next->next->Data();
 
 2246      int arg6 = (int)(
long) 
h->next->next->next->next->next->Data();
 
 2247      int arg7 = (int)(
long) 
h->next->next->next->next->next->next->Data();
 
 2248      int arg8 = (int)(
long) 
h->next->next->next->next->next->next->next->Data();
 
 2249      int arg9 = (int)(
long) 
h->next->next->next->next->next->next->next->next->Data();
 
 2250      ideal 
result = (ideal) 
Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
 
 2260    if (strcmp(sys_cmd, 
"TranMImprovwalk") == 0)
 
 2267        Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
 
 2271      ideal arg1 = (ideal) 
h->Data();
 
 2284    if (strcmp(sys_cmd, 
"MAltwalk2") == 0)
 
 2291        Werror(
"system(\"MAltwalk2\" ...) intvecs not of length %d\n",
 
 2295      ideal arg1 = (ideal) 
h->Data();
 
 2307    if (strcmp(sys_cmd, 
"TranMImprovwalk") == 0)
 
 2314        Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
 
 2318      ideal arg1 = (ideal) 
h->Data();
 
 2321      int arg4   =  (int) ((
long)(
h->next->next->next->Data()));
 
 2332    if (strcmp(sys_cmd, 
"TranMrImprovwalk") == 0)
 
 2337        h->next->next->next == 
NULL || 
h->next->next->next->Typ() != 
INT_CMD ||
 
 2338        h->next->next->next == 
NULL || 
h->next->next->next->next->Typ() != 
INT_CMD ||
 
 2339        h->next->next->next == 
NULL || 
h->next->next->next->next->next->Typ() != 
INT_CMD)
 
 2341        WerrorS(
"system(\"TranMrImprovwalk\", ideal, intvec, intvec) expected");
 
 2347        Werror(
"system(\"TranMrImprovwalk\" ...) intvecs not of length %d\n", 
currRing->N);
 
 2350      ideal arg1 = (ideal) 
h->Data();
 
 2353      int arg4 = (int)(
long) 
h->next->next->next->Data();
 
 2354      int arg5 = (int)(
long) 
h->next->next->next->next->Data();
 
 2355      int arg6 = (int)(
long) 
h->next->next->next->next->next->Data();
 
 2356      ideal 
result = (ideal) TranMrImprovwalk(arg1, arg2, arg3, arg4, arg5, arg6);
 
 2366       #ifndef MAKE_DISTRIBUTION 
 2377#ifdef HAVE_EXTENDED_SYSTEM 
 2381#    include "hc_newton.h" 
 2388      char *sys_cmd=(
char *)(
h->Data());
 
 2391      if (strcmp(sys_cmd, 
"syz") == 0)
 
 2395           const char *
s=(
const char *)
h->Data();
 
 2396           if (strcmp(
s,
"posInT_EcartFDegpLength")==0)
 
 2398           else if (strcmp(
s,
"posInT_FDegpLength")==0)
 
 2400           else if (strcmp(
s,
"posInT_pLength")==0)
 
 2402           else if (strcmp(
s,
"posInT0")==0)
 
 2404           else if (strcmp(
s,
"posInT1")==0)
 
 2406           else if (strcmp(
s,
"posInT2")==0)
 
 2408           else if (strcmp(
s,
"posInT11")==0)
 
 2410           else if (strcmp(
s,
"posInT110")==0)
 
 2412           else if (strcmp(
s,
"posInT13")==0)
 
 2414           else if (strcmp(
s,
"posInT15")==0)
 
 2416           else if (strcmp(
s,
"posInT17")==0)
 
 2418           else if (strcmp(
s,
"posInT17_c")==0)
 
 2420           else if (strcmp(
s,
"posInT19")==0)
 
 2422           else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
 
 2434      if(strcmp(sys_cmd,
"locNF")==0)
 
 2439          poly 
f=(poly)
h->Data();
 
 2441          ideal 
m=(ideal)
h->Data();
 
 2444          int n=(int)((
long)
h->Data());
 
 2509        if(strcmp(sys_cmd,
"p")==0)
 
 2514          WarnS(
"Sorry: not available for release build!");
 
 2520      if(strcmp(sys_cmd,
"setsyzcomp")==0)
 
 2524          int k = (int)(
long)
h->Data();
 
 2532        if(strcmp(sys_cmd,
"r")==0)
 
 2537          WarnS(
"Sorry: not available for release build!");
 
 2549        if(strcmp(sys_cmd,
"changeRing")==0)
 
 2553          for (
int i = 1; 
i <= varN; 
i++)
 
 2556            sprintf(
h, 
"x%d", 
i);
 
 2561          res->data = (
void*)0L;
 
 2566      if(strcmp(sys_cmd,
"mtrack")==0)
 
 2577            char *fn=(
char*) 
h->Data();
 
 2578            fd = fopen(fn, 
"w");
 
 2580              Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
 
 2584            max = (int)(
long)
h->Data();
 
 2593        WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
 
 2600      if(strcmp(sys_cmd,
"backtrace")==0)
 
 2608#if !defined(OM_NDEBUG) 
 2610      if (strcmp(sys_cmd,
"omMemoryTest")==0)
 
 2614        PrintS(
"\n[om_Info]: \n");
 
 2616#define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name)
 
 2617        OM_PRINT(MaxBytesSystem);
 
 2618        OM_PRINT(CurrentBytesSystem);
 
 2619        OM_PRINT(MaxBytesSbrk);
 
 2620        OM_PRINT(CurrentBytesSbrk);
 
 2621        OM_PRINT(MaxBytesMmap);
 
 2622        OM_PRINT(CurrentBytesMmap);
 
 2623        OM_PRINT(UsedBytes);
 
 2624        OM_PRINT(AvailBytes);
 
 2625        OM_PRINT(UsedBytesMalloc);
 
 2626        OM_PRINT(AvailBytesMalloc);
 
 2627        OM_PRINT(MaxBytesFromMalloc);
 
 2628        OM_PRINT(CurrentBytesFromMalloc);
 
 2629        OM_PRINT(MaxBytesFromValloc);
 
 2630        OM_PRINT(CurrentBytesFromValloc);
 
 2631        OM_PRINT(UsedBytesFromValloc);
 
 2632        OM_PRINT(AvailBytesFromValloc);
 
 2634        OM_PRINT(UsedPages);
 
 2635        OM_PRINT(AvailPages);
 
 2636        OM_PRINT(MaxRegionsAlloc);
 
 2637        OM_PRINT(CurrentRegionsAlloc);
 
 2642        PrintS(
"\n[om_Opts]: \n");
 
 2643#define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name)
 
 2644        OM_PRINT(
"d", MinTrack);
 
 2645        OM_PRINT(
"d", MinCheck);
 
 2646        OM_PRINT(
"d", MaxTrack);
 
 2647        OM_PRINT(
"d", MaxCheck);
 
 2648        OM_PRINT(
"d", Keep);
 
 2649        OM_PRINT(
"d", HowToReportErrors);
 
 2650        OM_PRINT(
"d", MarkAsStatic);
 
 2651        OM_PRINT(
"u", PagesPerRegion);
 
 2652        OM_PRINT(
"p", OutOfMemoryFunc);
 
 2653        OM_PRINT(
"p", MemoryLowFunc);
 
 2654        OM_PRINT(
"p", ErrorHook);
 
 2659        Print(
"\n\n[om_ErrorStatus]        : '%s' (%s)\n",
 
 2662        Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
 
 2676      if(strcmp(sys_cmd,
"red")==0)
 
 2691      if(strcmp(sys_cmd,
"fastcomb")==0)
 
 2699              WarnS(
"Wrong types for poly= comb(ideal,poly)");
 
 2704                             (ideal)
h->Data(),(poly)
h->next->Data());
 
 2712      if(strcmp(sys_cmd,
"comb")==0)
 
 2720                WarnS(
"Wrong types for poly= comb(ideal,poly)");
 
 2725                              (ideal)
h->Data(),(poly)
h->next->Data());
 
 2734      if(strcmp(sys_cmd,
"listall")==0)
 
 2736        void listall(
int showproc);
 
 2738        if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
 
 2746      if(strcmp(sys_cmd,
"proclist")==0)
 
 2748        void piShowProcList();
 
 2756      if(strcmp(sys_cmd,
"newton")==0)
 
 2760        || (
h->next->next->Typ()!=
INT_CMD))
 
 2762          WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
 
 2765        poly  
p=(poly)(
h->Data());
 
 2784                  (
int) (
h->next->Data()),      
 
 2785                  (
int) (
h->next->next->Data()) 
 
 2798        L->
m[1].
data=(
void *)(
long)r.achse;          
 
 2800        L->
m[2].
data=(
void *)(
long)r.deg;            
 
 2804          L->
m[3].
data=(
void *)(
long)r.anz_punkte;     
 
 2806          int anz = r.anz_punkte;    
 
 2809          for (
i=0; 
i<anz*
dim; 
i++)    
 
 2819            (*w)[
i] = r.deg_tab[
i];
 
 2822          while (r.deg_tab[
i-1] != -2);   
 
 2833        res->data=(
void *)L;
 
 2856      if (strcmp(sys_cmd, 
"minpoly") == 0)
 
 2860          Werror(
"expected exactly one argument: %s",
 
 2861                 "a square matrix with number entries");
 
 2871            WerrorS(
"expected exactly one argument: " 
 2872                   "a square matrix with number entries");
 
 2879          res->data = (
void *)theMinPoly;
 
 2880          for (
int i = 0; 
i < n; 
i++) 
delete[] ml[
i];
 
 2882          delete[] polyCoeffs;
 
 2889      if (strcmp(sys_cmd, 
"sdb_flags") == 0)
 
 2897          WerrorS(
"system(\"sdb_flags\",`int`) expected");
 
 2906      if (strcmp(sys_cmd, 
"sdb_edit") == 0)
 
 2910          WerrorS(
"shell execution is disallowed in restricted mode");
 
 2920          WerrorS(
"system(\"sdb_edit\",`proc`) expected");
 
 2929      if (strcmp(sys_cmd, 
"GF") == 0)
 
 2946       if (strcmp(sys_cmd, 
"svd") == 0)
 
 2957      if (strcmp(sys_cmd, 
"redNF_ring")==0)
 
 2960        poly 
f = (poly) 
h->Data();
 
 2962        ideal 
G = (ideal) 
h->Data();
 
 2970       if (strcmp(sys_cmd, 
"hilbroune") == 0)
 
 2982      if (strcmp(sys_cmd, 
"f5")==0)
 
 2991        ideal 
G = (ideal) 
h->Data();
 
 2995          opt = (int) (
long) 
h->Data();
 
 3003          plus = (int) (
long) 
h->Data();
 
 3011          termination = (int) (
long) 
h->Data();
 
 3017        res->data=(ideal) 
F5main(
G,r,opt,plus,termination);
 
 3024      if (strcmp(sys_cmd, 
"NF_ring")==0)
 
 3027        poly 
f = (poly) 
h->Data();
 
 3029        ideal 
G = (ideal) 
h->Data();
 
 3035      if (strcmp(sys_cmd, 
"spoly")==0)
 
 3037        poly 
f = 
pCopy((poly) 
h->Data());
 
 3039        poly 
g = 
pCopy((poly) 
h->Data());
 
 3046      if (strcmp(sys_cmd, 
"testGB")==0)
 
 3048        ideal I = (ideal) 
h->Data();
 
 3050        ideal GI = (ideal) 
h->Data();
 
 3052        res->data = (
void *)(
long) 
testGB(I, GI);
 
 3059      if ( (strcmp(sys_cmd, 
"AltVarStart") == 0) || (strcmp(sys_cmd, 
"AltVarEnd") == 0) )
 
 3065          WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
 
 3073          if(strcmp(sys_cmd, 
"AltVarStart") == 0)
 
 3080        WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
 
 3086  #ifdef HAVE_RATGRING 
 3087      if (strcmp(sys_cmd, 
"intratNF") == 0)
 
 3102          I=(ideal)
h->CopyD();
 
 3110          is=(int)((
long)(
h->Data()));
 
 3118            for(
k=0; 
k < id; 
k++)
 
 3122            PrintS(
"starting redRat\n");
 
 3140      if (strcmp(sys_cmd, 
"ratNF") == 0)
 
 3159          is=(int)((
long)(
h->Data()));
 
 3174      if (strcmp(sys_cmd, 
"ratSpoly") == 0)
 
 3192          is=(int)((
long)(
h->Data()));
 
 3208      if (strcmp(sys_cmd, 
"ratVar") == 0)
 
 3225        return (start==0)||(end==0)||(start>end);
 
 3229      if (strcmp(sys_cmd, 
"unifastmult")==0)
 
 3231        poly 
f = (poly)
h->Data();
 
 3233        poly 
g=(poly)
h->Data();
 
 3239      if (strcmp(sys_cmd, 
"multifastmult")==0)
 
 3241        poly 
f = (poly)
h->Data();
 
 3243        poly 
g=(poly)
h->Data();
 
 3249      if (strcmp(sys_cmd, 
"mults")==0)
 
 3256      if (strcmp(sys_cmd, 
"fastpower")==0)
 
 3259        poly 
f = (poly)
h->Data();
 
 3261        int n=(int)((
long)
h->Data());
 
 3267      if (strcmp(sys_cmd, 
"normalpower")==0)
 
 3269        poly 
f = (poly)
h->Data();
 
 3271        int n=(int)((
long)
h->Data());
 
 3277      if (strcmp(sys_cmd, 
"MCpower")==0)
 
 3280        poly 
f = (poly)
h->Data();
 
 3282        int n=(int)((
long)
h->Data());
 
 3288      if (strcmp(sys_cmd, 
"bit_subst")==0)
 
 3291        poly outer = (poly)
h->Data();
 
 3293        poly inner=(poly)
h->Data();
 
 3300      if (strcmp(sys_cmd, 
"gcd") == 0)
 
 3320          int d=(int)(
long)
h->next->Data();
 
 3321          char *
s=(
char *)
h->Data();
 
 3339      if (strcmp(sys_cmd, 
"subring") == 0)
 
 3353      if (strcmp(sys_cmd, 
"HNF") == 0)
 
 3375            WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
 
 3383      if (strcmp (sys_cmd, 
"probIrredTest") == 0)
 
 3388          char *
s=(
char *)
h->next->Data();
 
 3400    if(strcmp(sys_cmd, 
"GNUmpLoad")==0)
 
 3404        char* filename = (
char*)
h->Data();
 
 3405        FILE* 
f = fopen(filename, 
"r");
 
 3408          WerrorS( 
"invalid file name (in paths use '/')");
 
 3411        mpz_t 
m; mpz_init(
m);
 
 3412        mpz_inp_str(
m, 
f, 10);
 
 3416        res->data = (
void*)n;
 
 3421        WerrorS( 
"expected valid file name as a string");
 
 3433    if(strcmp(sys_cmd, 
"intvecMatchingSegments")==0)
 
 3437          (
h->next->next == 
NULL))
 
 3442        int validEntries = 0;
 
 3443        for (
int k = 0; 
k <= ivec->
rows() - jvec->
rows(); 
k++)
 
 3445          if (memcmp(&(*ivec)[
k], &(*jvec)[0],
 
 3446                       sizeof(
int) * jvec->
rows()) == 0)
 
 3448            if (validEntries == 0)
 
 3452              r->
resize(validEntries + 1);
 
 3453              (*r)[validEntries] = 
k + 1;
 
 3459        res->data = (
void*)r;
 
 3464        WerrorS(
"expected two non-empty intvecs as arguments");
 
 3475    if(strcmp(sys_cmd, 
"intvecOverlap")==0)
 
 3479            (
h->next->next == 
NULL))
 
 3483        int ir = ivec->
rows(); 
int jr = jvec->
rows();
 
 3484        int r = jr; 
if (ir < jr) r = ir;   
 
 3485        while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
 
 3486                                     sizeof(
int) * r) != 0))
 
 3489        res->data = (
void*)(
long)r;
 
 3494        WerrorS(
"expected two non-empty intvecs as arguments");
 
 3500    if(strcmp(sys_cmd, 
"henselfactors")==0)
 
 3505        (
h->next->next->next != 
NULL) &&
 
 3506        (
h->next->next->next->Typ() == 
POLY_CMD) &&
 
 3507        (
h->next->next->next->next != 
NULL) &&
 
 3508        (
h->next->next->next->next->Typ() == 
POLY_CMD) &&
 
 3509        (
h->next->next->next->next->next != 
NULL) &&
 
 3510        (
h->next->next->next->next->next->Typ() == 
INT_CMD) &&
 
 3511        (
h->next->next->next->next->next->next == 
NULL))
 
 3513        int xIndex = (int)(
long)
h->Data();
 
 3514        int yIndex = (int)(
long)
h->next->Data();
 
 3515        poly hh    = (poly)
h->next->next->Data();
 
 3516        poly f0    = (poly)
h->next->next->next->Data();
 
 3517        poly g0    = (poly)
h->next->next->next->next->Data();
 
 3518        int d      = (int)(
long)
h->next->next->next->next->next->Data();
 
 3526        res->data = (
char *)L;
 
 3531        WerrorS( 
"expected argument list (int, int, poly, poly, poly, int)");
 
 3538    if (strcmp(sys_cmd, 
"astep") == 0)
 
 3543        I=(ideal)
h->CopyD();
 
 3556    if (strcmp(sys_cmd, 
"PrintMat") == 0)
 
 3566          a=(int)((
long)(
h->Data()));
 
 3571          b=(int)((
long)(
h->Data()));
 
 3586        metric=(int)((
long)(
h->Data()));
 
 3597    if(strcmp(sys_cmd,
"NCUseExtensions")==0)
 
 3610    if(strcmp(sys_cmd,
"NCGetType")==0)
 
 3616        res->data=(
void *)(-1L);
 
 3623    if(strcmp(sys_cmd,
"ForceSCA")==0)
 
 3630        b = (int)((
long)(
h->Data()));
 
 3636        e = (int)((
long)(
h->Data()));
 
 3647    if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
 
 3659    if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
 
 3671    if(strcmp(sys_cmd,
"test64")==0)
 
 3687      Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
 
 3693    if(strcmp(sys_cmd,
"cache_chinrem")==0)
 
 3704    if(strcmp(sys_cmd,
"LU")==0)
 
 3714        res->data=(
char*)bb;
 
 3719        WerrorS(
"system(\"LU\",<cmatrix>) expected");
 
 3726    if(strcmp(sys_cmd,
"sort")==0)
 
 3736    if(strcmp(sys_cmd,
"uniq")==0)
 
 3746    if(strcmp(sys_cmd,
"GF")==0)
 
 3751        int p=(int)(
long)
h->Data();
 
 3752        int n=(int)(
long)
h->next->Data();
 
 3753        char *
v=(
char*)
h->next->next->CopyD();
 
 3769    if(strcmp(sys_cmd,
"power1")==0)
 
 3772      poly 
f=(poly)
h->CopyD();
 
 3774      res->data=(
void *)
g;
 
 3778    if(strcmp(sys_cmd,
"power2")==0)
 
 3781      poly 
f=(poly)
h->Data();
 
 3783      for(
int i=0;
i<2000;
i++)
 
 3785      res->data=(
void *)
g;
 
 3788    if(strcmp(sys_cmd,
"power3")==0)
 
 3791      poly 
f=(poly)
h->Data();
 
 3802      poly p1536=
pMult(p1024,p512);
 
 3803      poly p1792=
pMult(p1536,p256);
 
 3804      poly p1920=
pMult(p1792,p128);
 
 3805      poly p1984=
pMult(p1920,p64);
 
 3806      poly p2000=
pMult(p1984,p16);
 
 3807      res->data=(
void *)p2000;
 
 3828    if(strcmp(sys_cmd,
"ccluster")==0)
 
 3838        int pol_with_complex_coeffs=0;
 
 3840            pol_with_complex_coeffs=1;
 
 3846          fmpq_poly_t fre, fim;
 
 3848          if (pol_with_complex_coeffs==1)
 
 3853          fmpq_t center_re,center_im,boxsize,eps;
 
 3859          int n=fmpq_poly_length(fre);
 
 3860          fmpq_t* re_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
 
 3861          fmpq_t* im_part=(fmpq_t*)
omAlloc(n*
sizeof(fmpq_t));
 
 3863          for(
int i=0; 
i<n;
i++)
 
 3864          { fmpq_init(re_part[
i]); fmpq_init(im_part[
i]); }
 
 3869          long nb_threads = (long) 
feOptValue(FE_OPT_CPUS);
 
 3870          strategy = strategy+(nb_threads<<6);
 
 3873          if (pol_with_complex_coeffs==0)
 
 3874            nn=ccluster_interface_poly_real(re_part,im_part,
mult,fre,center_re,center_im,boxsize,eps,strategy,verbosity);
 
 3876            nn=ccluster_interface_poly_real_imag(re_part,im_part,
mult,fre,fim,center_re,center_im,boxsize,eps,strategy,verbosity);
 
 3880          for(
int i=0; 
i<nn;
i++)
 
 3894          for(
int i=n-1;
i>=0;
i--) { fmpq_clear(re_part[
i]); fmpq_clear(im_part[
i]); }
 
 3898          fmpq_clear(center_re); fmpq_clear(center_im); fmpq_clear(boxsize); fmpq_clear(eps);
 
 3899          fmpq_poly_clear(fre);
 
 3900          if (pol_with_complex_coeffs==1) fmpq_poly_clear(fim);
 
 3912    if(strcmp(sys_cmd,
"evaluate")==0)
 
 3914      extern number 
maEvalAt(
const poly 
p,
const number* pt, 
const ring r);
 
 3917        WerrorS(
"expected system(\"evaluate\",<poly>,..)");
 
 3920      poly 
p=(poly)
h->Data();
 
 3927          WerrorS(
"system(\"evaluate\",<poly>,<number>..) - expect number");
 
 3930        pt[
i]=(number)
h->Data();
 
 3938    if(strcmp(sys_cmd,
"DivRem")==0)
 
 3943        poly 
p=(poly)
h->CopyD();
 
 3944        poly q=(poly)
h->next->CopyD();
 
 3953        WerrorS(
"expected system(\"DivRem\",<poly>,<poly>)");
 
 3959    if(strcmp(sys_cmd,
"CoeffTerm")==0)
 
 3972        poly 
p=(poly)
h->Data();
 
 3973        poly q=(poly)
h->next->Data();
 
 3981        ideal 
p=(ideal)
h->Data();
 
 3982        poly q=(poly)
h->next->Data();
 
 3989        poly 
p=(poly)
h->Data();
 
 3990        poly q=(poly)
h->next->Data();
 
 3997        ideal 
p=(ideal)
h->Data();
 
 3998        poly q=(poly)
h->next->Data();
 
 4005        poly 
p=(poly)
h->Data();
 
 4006        ideal q=(ideal)
h->next->Data();
 
 4013        poly 
p=(poly)
h->Data();
 
 4014        ideal q=(ideal)
h->next->Data();
 
 4021        WerrorS(
"expected system(\"CoeffTerm\",<poly>/<vector>,<poly>/<vector>)"        "\n or                          <ideal>/<module>,<poly>/<vector>");
 
static int si_max(const int a, const int b)
 
#define BIMATELEM(M, I, J)
 
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
 
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
 
void printBlackboxTypes()
list all defined type (for debugging)
 
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
 
static CanonicalForm bound(const CFMatrix &M)
 
void factoryseed(int s)
random seed initializer
 
CanonicalForm convSingPFactoryP(poly p, const ring r)
 
matrix singntl_HNF(matrix m, const ring s)
 
matrix singntl_rref(matrix m, const ring R)
 
matrix singntl_LLL(matrix m, const ring s)
 
ideal singclap_absFactorize(poly f, ideal &mipos, intvec **exps, int &numFactors, const ring r)
 
char * singclap_neworder(ideal I, const ring r)
 
gmp_complex numbers based on
 
void resize(int new_length)
 
Class used for (list of) interpreter objects.
 
INLINE_THIS void Init(int l=0)
 
Coefficient rings, fields and other domains suitable for Singular polynomials.
 
static FORCE_INLINE long n_Int(number &n, const coeffs r)
conversion of n to an int; 0 if not possible in Z/pZ: the representing int lying in (-p/2 ....
 
@ n_transExt
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
 
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 BOOLEAN nCoeff_is_Ring(const coeffs r)
 
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
 
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.
 
void countedref_reference_load()
Initialize blackbox types 'reference' and 'shared', or both.
 
void countedref_shared_load()
 
poly uni_subst_bits(poly outer_uni, poly inner_multi, ring r)
 
matrix evRowElim(matrix M, int i, int j, int k)
 
matrix evHessenberg(matrix M)
 
matrix evSwap(matrix M, int i, int j)
 
lists evEigenvals(matrix M)
 
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)
 
feOptIndex feGetOptIndex(const char *name)
 
const char * feSetOptValue(feOptIndex opt, char *optarg)
 
static void * feOptValue(feOptIndex opt)
 
EXTERN_VAR struct fe_option feOptSpec[]
 
static char * feResource(feResourceConfig config, int warn)
 
void feStringAppendBrowsers(int warn)
 
STATIC_VAR int nfMinPoly[16]
 
This file is work in progress and currently not part of the official Singular.
 
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)
 
matrix singflint_rref(matrix m, const ring R)
 
bigintmat * singflint_LLL(bigintmat *A, bigintmat *T)
 
number maEvalAt(const poly p, const number *pt, const ring r)
evaluate the polynomial p at the pt given by the array pt
 
lists gmsNF(ideal p, ideal g, matrix B, int D, int K)
 
void HilbertSeries_OrbitData(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
 
ideal RightColonOperation(ideal S, poly w, int lV)
 
ideal id_TensorModuleMult(const int m, const ideal M, const ring rRing)
 
STATIC_VAR coordinates * points
 
static BOOLEAN length(leftv result, leftv arg)
 
#define IMATELEM(M, I, J)
 
BOOLEAN jjSORTLIST(leftv, leftv arg)
 
BOOLEAN jjUNIQLIST(leftv, leftv arg)
 
BOOLEAN spaddProc(leftv result, leftv first, leftv second)
 
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 (...
 
BOOLEAN semicProc3(leftv res, leftv u, leftv v, leftv w)
 
BOOLEAN spectrumfProc(leftv result, leftv first)
 
BOOLEAN spmulProc(leftv result, leftv first, leftv second)
 
BOOLEAN spectrumProc(leftv result, leftv first)
 
ring rSubring(ring org_ring, sleftv *rv)
 
BOOLEAN semicProc(leftv res, leftv u, leftv v)
 
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether)
 
poly fglmLinearCombination(ideal source, poly monset)
 
poly fglmNewLinearCombination(ideal source, poly monset)
 
poly kNFBound(ideal F, ideal Q, poly p, int bound, int syzComp, int lazyReduce)
 
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)
 
BOOLEAN kVerify2(ideal F, ideal Q)
 
BOOLEAN kVerify1(ideal F, ideal Q)
 
static bool rIsSCA(const ring r)
 
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
 
static nc_type & ncRingType(nc_struct *p)
 
int setNCExtensions(int iMask)
 
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys 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)
 
bool luSolveViaLDUDecomp(const matrix pMat, const matrix lMat, const matrix dMat, const matrix uMat, const poly l, const poly u, const poly lTimesU, const matrix bVec, matrix &xVec, matrix &H)
Solves the linear system A * x = b, where A is an (m x n)-matrix which is given by its LDU-decomposit...
 
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,...
 
void lduDecomp(const matrix aMat, matrix &pMat, matrix &lMat, matrix &dMat, matrix &uMat, poly &l, poly &u, poly &lTimesU)
LU-decomposition of a given (m x n)-matrix with performing only those divisions that yield zero remai...
 
matrix mp_Transp(matrix a, const ring R)
 
ideal sm_UnFlatten(ideal a, int col, 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
 
ideal sm_Flatten(ideal a, const ring R)
 
#define MATELEM(mat, i, j)
1-based access to matrix
 
void mult(unsigned long *result, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
 
unsigned long * computeMinimalPolynomial(unsigned long **matrix, unsigned n, unsigned long p)
 
This file provides miscellaneous functionality.
 
EXTERN_VAR size_t gmp_output_digits
 
bool complexNearZero(gmp_complex *c, int digits)
 
The main handler for Singular numbers which are suitable for Singular polynomials.
 
BOOLEAN ncInitSpecialPairMultiplication(ring r)
 
ideal Approx_Step(ideal L)
Ann: ???
 
ideal twostd(ideal I)
Compute two-sided GB:
 
void newstructShow(newstruct_desc d)
 
BOOLEAN newstruct_set_proc(const char *bbname, const char *func, int args, procinfov pr)
 
#define omFreeSize(addr, size)
 
const char * omError2String(omError_t error)
 
const char * omError2Serror(omError_t error)
 
omError_t om_InternalErrorStatus
 
char * omFindExec(const char *name, char *exec)
 
#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
 
void p_Content(poly ph, const ring r)
 
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
 
poly p_Cleardenom(poly p, const ring r)
 
static int pLength(poly a)
 
static poly p_Add_q(poly p, poly q, const ring r)
 
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
 
static void p_Setm(poly p, const ring r)
 
static long p_MaxComp(poly p, ring lmRing, ring tailRing)
 
poly pcvP2CV(poly p, int d0, int d1)
 
int pcvBasis(lists b, int i, poly m, int d, int n)
 
int pcvDim(int d0, int d1)
 
lists pcvPMulL(poly p, lists l1)
 
poly pcvCV2P(poly cv, int d0, int d1)
 
lists pcvLAddL(lists l1, lists l2)
 
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)
 
Compatibility layer for legacy polynomial operations (over currRing)
 
#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)
 
void StringSetS(const char *st)
 
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_long_C(const ring r)
 
static int rBlocks(const ring r)
 
static BOOLEAN rField_is_Q(const ring r)
 
static BOOLEAN rIsNCRing(const ring r)
 
static BOOLEAN rField_is_long_R(const ring r)
 
#define rField_is_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)
 
int simpleipc_cmd(char *cmd, int id, int v)
 
ideal id_Vec2Ideal(poly vec, const ring R)
 
int ssiReservePort(int clients)
 
BOOLEAN assumeStdFlag(leftv h)
 
int M3ivSame(intvec *temp, intvec *u, intvec *v)
 
intvec * MivWeightOrderdp(intvec *ivstart)
 
ideal TranMImprovwalk(ideal G, intvec *curr_weight, intvec *target_tmp, int nP)
 
intvec * MivMatrixOrderdp(int nV)
 
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget, int reduction, int printout)
 
intvec * MPertVectors(ideal G, intvec *ivtarget, int pdeg)
 
intvec * MivWeightOrderlp(intvec *ivstart)
 
ideal Mprwalk(ideal Go, intvec *orig_M, intvec *target_M, int weight_rad, int op_deg, int tp_deg, int nP, int reduction, int printout)
 
intvec * MivMatrixOrder(intvec *iv)
 
ideal MAltwalk2(ideal Go, intvec *curr_weight, intvec *target_weight)
 
ideal MAltwalk1(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight)
 
ideal Mrwalk(ideal Go, intvec *orig_M, intvec *target_M, int weight_rad, int pert_deg, int reduction, int printout)
 
ideal Mfrwalk(ideal G, intvec *ivstart, intvec *ivtarget, int weight_rad, int reduction, int printout)
 
ideal Mwalk(ideal Go, intvec *orig_M, intvec *target_M, ring baseRing, int reduction, int printout)
 
ideal Mpwalk(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight, int nP, int reduction, int printout)
 
int MivSame(intvec *u, intvec *v)
 
ideal MwalkInitialForm(ideal G, intvec *ivw)
 
intvec * MivMatrixOrderlp(int nV)
 
intvec * Mfpertvector(ideal G, intvec *ivtarget)
 
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
 
intvec * MkInterRedNextWeight(intvec *iva, intvec *ivb, ideal G)
 
intvec * MwalkNextWeight(intvec *curr_weight, intvec *target_weight, ideal G)
 
intvec * Mivperttarget(ideal G, int ndeg)
 
intvec * MPertNextWeight(intvec *iva, ideal G, int deg)
 
int * iv2array(intvec *iv, const ring R)
 
#define omMarkAsStaticAddr(A)
 
#define omPrintUsedTrackAddrs(F, max)