17 #include "factory/factory.h" 19 #ifdef TIME_WITH_SYS_TIME 21 # ifdef HAVE_SYS_TIME_H 22 # include <sys/time.h> 25 # ifdef HAVE_SYS_TIME_H 26 # include <sys/time.h> 31 #ifdef HAVE_SYS_TIMES_H 32 #include <sys/times.h> 138 #ifndef MAKE_DISTRIBUTION 139 #define HAVE_EXTENDED_SYSTEM 1 156 #ifdef HAVE_SIMPLEIPC 164 #ifndef MAKE_DISTRIBUTION 175 int n = singularMatrix->
rows();
177 unsigned long **longMatrix = 0;
178 longMatrix =
new unsigned long *[n] ;
179 for (
int i = 0 ;
i < n;
i++)
180 longMatrix[
i] =
new unsigned long [n];
182 for (
int r = 0; r < n; r++)
183 for (
int c = 0; c < n; c++)
185 poly
p=
MATELEM(singularMatrix, r + 1, c + 1);
195 longMatrix[r][c] = (
unsigned long)entryAsInt;
210 if ((
int)polyCoeffs[
i] != 0)
232 const char *sys_cmd=(
char *)(args->
Data());
237 if (strcmp(sys_cmd,
"nblocks") == 0)
259 r = (ring)
h->Data();
266 if(strcmp(sys_cmd,
"version")==0)
274 if(strcmp(sys_cmd,
"alarm")==0)
281 struct itimerval t,o;
282 memset(&t,0,
sizeof(t));
283 t.it_value.tv_sec =(unsigned)((
unsigned long)
h->Data());
284 setitimer(ITIMER_VIRTUAL,&t,&o);
292 if(strcmp(sys_cmd,
"cpu")==0)
295 #ifdef _SC_NPROCESSORS_ONLN 296 cpu=sysconf(_SC_NPROCESSORS_ONLN);
297 #elif defined(_SC_NPROCESSORS_CONF) 298 cpu=sysconf(_SC_NPROCESSORS_CONF);
300 res->data=(
void *)cpu;
306 if(strcmp(sys_cmd,
"executable")==0)
321 if(strcmp(sys_cmd,
"flatten")==0)
334 if(strcmp(sys_cmd,
"unflatten")==0)
347 if(strcmp(sys_cmd,
"neworder")==0)
361 if(strcmp(sys_cmd,
"nc_hilb") == 0)
369 i = (ideal)
h->Data();
372 WerrorS(
"nc_Hilb:ideal expected");
377 lV = (int)(
long)
h->Data();
380 WerrorS(
"nc_Hilb:int expected");
386 if((
int)(
long)
h->Data() == 1)
388 else if((
int)(long)
h->Data() == 2)
393 trunDegHs = (
int)(long)
h->Data();
398 WerrorS(
"nc_Hilb:int 1,2, total degree for the truncation, and a string for printing the details are expected");
407 if(strcmp(sys_cmd,
"rcolon") == 0)
412 ideal
i = (ideal)
h->Data();
414 poly
w=(poly)
h->Data();
416 int lV = (int)(
long)
h->Data();
427 if(strcmp(sys_cmd,
"sh")==0)
431 WerrorS(
"shell execution is disallowed in restricted mode");
437 res->data = (
void*)(long)
system((
char*)(
h->Data()));
444 if(strcmp(sys_cmd,
"reduce_bound")==0)
454 p = (poly)
h->CopyD();
458 pid = (ideal)
h->CopyD();
463 ideal q = (ideal)
h->next->CopyD();
464 int bound = (int)(
long)
h->next->next->Data();
473 if(strcmp(sys_cmd,
"uname")==0)
481 if(strcmp(sys_cmd,
"with")==0)
491 #define TEST_FOR(A) if(strcmp(s,A)==0) res->data=(void *)1; else 492 char *
s=(
char *)
h->Data();
505 #ifdef TEST_MAC_ORDER 510 #ifdef HAVE_DYNAMIC_LOADING 533 if (strcmp(sys_cmd,
"browsers")==0)
543 if (strcmp(sys_cmd,
"pid")==0)
546 res->data=(
void *)(
long) getpid();
551 if (strcmp(sys_cmd,
"getenv")==0)
556 const char *r=
getenv((
char *)
h->Data());
569 if (strcmp(sys_cmd,
"setenv")==0)
576 setenv((
char *)
h->Data(), (
char *)
h->next->Data(), 1);
586 WerrorS(
"setenv not supported on this platform");
592 if (strcmp(sys_cmd,
"Singular") == 0)
601 if (strcmp(sys_cmd,
"SingularLib") == 0)
611 if (strstr(sys_cmd,
"--") == sys_cmd)
613 if (strcmp(sys_cmd,
"--") == 0)
621 Werror(
"Unknown option %s", sys_cmd);
622 WerrorS(
"Use 'system(\"--\");' for listing of available options");
637 const char *r=(
const char*)
feOptSpec[opt].value;
651 WerrorS(
"Need string or int argument to set option value");
654 const char* errormsg;
659 Werror(
"Need string argument to set value of option %s", sys_cmd);
663 if (errormsg !=
NULL)
664 Werror(
"Option '--%s=%d' %s", sys_cmd, (
int) ((
long)
h->Data()), errormsg);
669 if (errormsg !=
NULL)
670 Werror(
"Option '--%s=%s' %s", sys_cmd, (
char*)
h->Data(), errormsg);
677 if (strcmp(sys_cmd,
"HC")==0)
685 if(strcmp(sys_cmd,
"random")==0)
708 if (strcmp(sys_cmd,
"std_syz") == 0)
714 i1=(ideal)
h->CopyD();
720 i2=(int)((
long)
h->Data());
729 if (strcmp(sys_cmd,
"denom_list")==0)
738 if(strcmp(sys_cmd,
"complexNearZero")==0)
745 WerrorS(
"unsupported ground field!");
752 (int)((
long)(
h->next->Data())));
763 if(strcmp(sys_cmd,
"getPrecDigits")==0)
768 WerrorS(
"unsupported ground field!");
779 if(strcmp(sys_cmd,
"lduDecomp")==0)
786 poly
l; poly u; poly prodLU;
787 lduDecomp(aMat, pMat, lMat, dMat, uMat,
l, u, prodLU);
798 res->data = (
char *)L;
808 if(strcmp(sys_cmd,
"lduSolve")==0)
842 poly
l = (poly)
h->next->next->next->next->Data();
843 poly u = (poly)
h->next->next->next->next->next->Data();
844 poly lTimesU = (poly)
h->next->next->next->next->next->next->Data();
845 matrix bVec = (
matrix)
h->next->next->next->next->next->next->next->Data();
849 Werror(
"first matrix (%d x %d) is not quadratic",
855 Werror(
"second matrix (%d x %d) is not quadratic",
861 Werror(
"third matrix (%d x %d) is not quadratic",
867 Werror(
"third matrix (%d x %d) and fourth matrix (%d x %d) %s",
874 Werror(
"fourth matrix (%d x %d) and vector (%d x 1) do not fit",
879 bVec, xVec, homogSolSpace);
902 if (strcmp(sys_cmd,
"shared") == 0)
904 #ifndef SI_COUNTEDREF_AUTOLOAD 911 else if (strcmp(sys_cmd,
"reference") == 0)
913 #ifndef SI_COUNTEDREF_AUTOLOAD 922 #ifdef HAVE_SIMPLEIPC 923 if (strcmp(sys_cmd,
"semaphore")==0)
929 v=(int)(
long)
h->next->next->Data();
936 WerrorS(
"Usage: system(\"semaphore\",<cmd>,int)");
943 if (strcmp(sys_cmd,
"reserve")==0)
951 res->data=(
void*)(
long)
p;
958 if (strcmp(sys_cmd,
"reservedLink")==0)
967 if (strcmp(sys_cmd,
"install")==0)
973 (int)(
long)
h->next->next->next->Data(),
980 if (strcmp(sys_cmd,
"newstruct")==0)
986 char *n=(
char*)
h->Data();
993 newstruct_desc desc=(newstruct_desc)bb->data;
997 else Werror(
"'%s' is not a newstruct",n);
999 else Werror(
"'%s' is not a blackbox object",n);
1005 if (strcmp(sys_cmd,
"blackbox")==0)
1013 if (strcmp(sys_cmd,
"absFact") == 0)
1030 l->m[0].data=(
void *)
f;
1032 l->m[1].data=(
void *)
v;
1034 l->m[2].data=(
void*) mipos;
1036 l->m[3].data=(
void*) (
long) n;
1037 res->data=(
void *)
l;
1046 if (strcmp(sys_cmd,
"LLL") == 0)
1069 #if __FLINT_RELEASE >= 20500 1070 if (strcmp(sys_cmd,
"LLL_Flint") == 0)
1091 WerrorS(
"matrix,int or bigint,int expected");
1096 if(((
int)((
long)(
h->next->Data())) != 0) && (
int)((long)(
h->next->Data()) != 1))
1098 WerrorS(
"int is different from 0, 1");
1102 if((
long)(
h->next->Data()) == 0)
1117 if((
long)(
h->next->Data()) == 1)
1123 for(
int i = 1;
i<=
m->rows();
i++)
1128 m = singflint_LLL(
m,
T);
1141 for(
int i = 1;
i<=
m->rows();
i++)
1143 m = singflint_LLL(
m,
T);
1163 #ifdef HAVE_SHIFTBBA 1164 if (strcmp(sys_cmd,
"stest") == 0)
1169 poly
p=(poly)
h->CopyD();
1171 int sh=(int)((
long)(
h->Data()));
1173 int uptodeg=(int)((
long)(
h->Data()));
1175 int lVblock=(int)((
long)(
h->Data()));
1178 WerrorS(
"negative shift for pLPshift");
1184 WerrorS(
"pLPshift: too big shift requested\n");
1196 #ifdef HAVE_SHIFTBBA 1197 if (strcmp(sys_cmd,
"btest") == 0)
1202 poly
p=(poly)
h->CopyD();
1204 int lV=(int)((
long)(
h->Data()));
1214 #ifdef HAVE_SHIFTBBA 1215 if (strcmp(sys_cmd,
"shrinktest") == 0)
1220 poly
p=(poly)
h->Data();
1222 int lV=(int)((
long)(
h->Data()));
1236 if(strcmp(sys_cmd,
"pcvLAddL")==0)
1241 if(strcmp(sys_cmd,
"pcvPMulL")==0)
1246 if(strcmp(sys_cmd,
"pcvMinDeg")==0)
1251 if(strcmp(sys_cmd,
"pcvP2CV")==0)
1256 if(strcmp(sys_cmd,
"pcvCV2P")==0)
1261 if(strcmp(sys_cmd,
"pcvDim")==0)
1266 if(strcmp(sys_cmd,
"pcvBasis")==0)
1273 #ifdef HAVE_EIGENVAL 1274 if(strcmp(sys_cmd,
"hessenberg")==0)
1281 #ifdef HAVE_EIGENVAL 1282 if(strcmp(sys_cmd,
"eigenvals")==0)
1289 #ifdef HAVE_EIGENVAL 1290 if(strcmp(sys_cmd,
"rowelim")==0)
1297 #ifdef HAVE_EIGENVAL 1298 if(strcmp(sys_cmd,
"rowcolswap")==0)
1306 if(strcmp(sys_cmd,
"gmsnf")==0)
1313 if(strcmp(sys_cmd,
"contributors") == 0)
1317 "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");
1322 #ifdef HAVE_SPECTRUM 1323 if(strcmp(sys_cmd,
"spectrum") == 0)
1337 if(((
long)
h->next->Data())==1L)
1343 if(strcmp(sys_cmd,
"semic") == 0)
1349 if (
h->next->next==
NULL)
1351 else if (
h->next->next->Typ()==
INT_CMD)
1358 if(strcmp(sys_cmd,
"spadd") == 0)
1369 if(strcmp(sys_cmd,
"spmul") == 0)
1381 #define HAVE_SHEAFCOH_TRICKS 1 1383 #ifdef HAVE_SHEAFCOH_TRICKS 1384 if(strcmp(sys_cmd,
"tensorModuleMult")==0)
1390 int m = (int)( (
long)
h->Data() );
1391 ideal
M = (ideal)
h->next->Data();
1402 if (strcmp(sys_cmd,
"twostd") == 0)
1407 I=(ideal)
h->CopyD();
1421 if (strcmp(sys_cmd,
"bracket") == 0)
1426 poly
p=(poly)
h->CopyD();
1428 poly q=(poly)
h->Data();
1439 if (strcmp(sys_cmd,
"env")==0)
1443 ring r = (ring)
h->Data();
1450 WerrorS(
"`system(\"env\",<ring>)` expected");
1458 if (strcmp(sys_cmd,
"opp")==0)
1462 ring r=(ring)
h->Data();
1469 WerrorS(
"`system(\"opp\",<ring>)` expected");
1477 if (strcmp(sys_cmd,
"oppose")==0)
1480 && (
h->next!=
NULL))
1482 ring Rop = (ring)
h->Data();
1495 WerrorS(
"`system(\"oppose\",<ring>,<poly>)` expected");
1503 #ifdef HAVE_SHIFTBBA 1504 if (strcmp(sys_cmd,
"freegb") == 0)
1512 ideal I=(ideal)
h->CopyD();
1514 int uptodeg=(int)((
long)(
h->Data()));
1516 int lVblock=(int)((
long)(
h->Data()));
1527 WerrorS(
"system(\"freegb\",`ideal/module`,`int`,`int`) expected");
1538 if (strcmp(sys_cmd,
"walkNextWeight") == 0)
1545 Werror(
"system(\"walkNextWeight\" ...) intvecs not of length %d\n",
1549 res->data = (
void*) walkNextWeight(((
intvec*)
h->Data()),
1551 (ideal)
h->next->next->Data());
1552 if (
res->data ==
NULL ||
res->data == (
void*) 1L)
1568 if (strcmp(sys_cmd,
"walkInitials") == 0)
1572 WerrorS(
"system(\"walkInitials\", ideal) expected");
1575 res->data = (
void*) walkInitials((ideal)
h->Data());
1585 if (strcmp(sys_cmd,
"walkAddIntVec") == 0)
1591 res->data = (
intvec*) walkAddIntVec(arg1, arg2);
1600 #ifdef MwaklNextWeight 1601 if (strcmp(sys_cmd,
"MwalkNextWeight") == 0)
1608 Werror(
"system(\"MwalkNextWeight\" ...) intvecs not of length %d\n",
1614 ideal arg3 = (ideal)
h->next->next->Data();
1621 #endif //MWalkNextWeight 1625 if(strcmp(sys_cmd,
"Mivdp") == 0)
1629 WerrorS(
"system(\"Mivdp\", int) expected");
1632 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1634 Werror(
"system(\"Mivdp\" ...) intvecs not of length %d\n",
1638 int arg1 = (int) ((
long)(
h->Data()));
1648 if(strcmp(sys_cmd,
"Mivlp") == 0)
1652 WerrorS(
"system(\"Mivlp\", int) expected");
1655 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1657 Werror(
"system(\"Mivlp\" ...) intvecs not of length %d\n",
1661 int arg1 = (int) ((
long)(
h->Data()));
1672 if(strcmp(sys_cmd,
"MpDiv") == 0)
1676 poly arg1 = (poly)
h->Data();
1677 poly arg2 = (poly)
h->next->Data();
1678 poly
result = MpDiv(arg1, arg2);
1689 if(strcmp(sys_cmd,
"MpMult") == 0)
1693 poly arg1 = (poly)
h->Data();
1694 poly arg2 = (poly)
h->next->Data();
1695 poly
result = MpMult(arg1, arg2);
1705 if (strcmp(sys_cmd,
"MivSame") == 0)
1726 res->data = (
void*)(
long)
MivSame(arg1, arg2);
1733 if (strcmp(sys_cmd,
"M3ivSame") == 0)
1756 res->data = (
void*)(
long)
M3ivSame(arg1, arg2, arg3);
1763 if(strcmp(sys_cmd,
"MwalkInitialForm") == 0)
1769 Werror(
"system \"MwalkInitialForm\"...) intvec not of length %d\n",
1773 ideal
id = (ideal)
h->Data();
1785 if(strcmp(sys_cmd,
"MivMatrixOrder") == 0)
1789 WerrorS(
"system(\"MivMatrixOrder\",intvec) expected");
1802 if(strcmp(sys_cmd,
"MivMatrixOrderdp") == 0)
1806 WerrorS(
"system(\"MivMatrixOrderdp\",intvec) expected");
1809 int arg1 = (int) ((
long)(
h->Data()));
1819 if(strcmp(sys_cmd,
"MPertVectors") == 0)
1823 ideal arg1 = (ideal)
h->Data();
1825 int arg3 = (int) ((
long)(
h->next->next->Data()));
1835 if(strcmp(sys_cmd,
"MPertVectorslp") == 0)
1839 ideal arg1 = (ideal)
h->Data();
1841 int arg3 = (int) ((
long)(
h->next->next->Data()));
1851 if(strcmp(sys_cmd,
"Mfpertvector") == 0)
1855 ideal arg1 = (ideal)
h->Data();
1866 if(strcmp(sys_cmd,
"MivUnit") == 0)
1870 int arg1 = (int) ((
long)(
h->Data()));
1880 if(strcmp(sys_cmd,
"MivWeightOrderlp") == 0)
1894 if(strcmp(sys_cmd,
"MivWeightOrderdp") == 0)
1898 WerrorS(
"system(\"MivWeightOrderdp\",intvec) expected");
1912 if(strcmp(sys_cmd,
"MivMatrixOrderlp") == 0)
1916 WerrorS(
"system(\"MivMatrixOrderlp\",int) expected");
1919 int arg1 = (int) ((
long)(
h->Data()));
1929 if (strcmp(sys_cmd,
"MkInterRedNextWeight") == 0)
1936 Werror(
"system(\"MkInterRedNextWeight\" ...) intvecs not of length %d\n",
1942 ideal arg3 = (ideal)
h->next->next->Data();
1952 #ifdef MPertNextWeight 1953 if (strcmp(sys_cmd,
"MPertNextWeight") == 0)
1959 Werror(
"system(\"MPertNextWeight\" ...) intvecs not of length %d\n",
1964 ideal arg2 = (ideal)
h->next->Data();
1965 int arg3 = (int)
h->next->next->Data();
1972 #endif //MPertNextWeight 1976 #ifdef Mivperttarget 1977 if (strcmp(sys_cmd,
"Mivperttarget") == 0)
1981 ideal arg1 = (ideal)
h->Data();
1982 int arg2 = (int)
h->next->Data();
1989 #endif //Mivperttarget 1993 if (strcmp(sys_cmd,
"Mwalk") == 0)
2000 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d\n",
2004 ideal arg1 = (ideal)
h->CopyD();
2007 ring arg4 = (ring)
h->next->next->next->Data();
2008 int arg5 = (int) (
long)
h->next->next->next->next->Data();
2009 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
2010 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2020 if (strcmp(sys_cmd,
"Mwalk") == 0)
2029 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d or %d\n",
2033 ideal arg1 = (ideal)
h->Data();
2036 ring arg4 = (ring)
h->next->next->next->Data();
2037 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3,arg4);
2044 if (strcmp(sys_cmd,
"Mpwalk") == 0)
2051 Werror(
"system(\"Mpwalk\" ...) intvecs not of length %d\n",
currRing->N);
2054 ideal arg1 = (ideal)
h->Data();
2055 int arg2 = (int) (
long)
h->next->Data();
2056 int arg3 = (int) (
long)
h->next->next->Data();
2059 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
2060 int arg7 = (int) (
long)
h->next->next->next->next->next->next->Data();
2061 int arg8 = (int) (
long)
h->next->next->next->next->next->next->next->Data();
2062 ideal
result = (ideal)
Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
2072 if (strcmp(sys_cmd,
"Mrwalk") == 0)
2081 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2085 ideal arg1 = (ideal)
h->Data();
2088 int arg4 = (int)(
long)
h->next->next->next->Data();
2089 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2090 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2091 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
2092 ideal
result = (ideal)
Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
2101 if (strcmp(sys_cmd,
"MAltwalk1") == 0)
2108 Werror(
"system(\"MAltwalk1\" ...) intvecs not of length %d\n",
2112 ideal arg1 = (ideal)
h->Data();
2113 int arg2 = (int) ((
long)(
h->next->Data()));
2114 int arg3 = (int) ((
long)(
h->next->next->Data()));
2127 if (strcmp(sys_cmd,
"Mfwalk_alt") == 0)
2134 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2138 ideal arg1 = (ideal)
h->Data();
2141 int arg4 = (int)
h->next->next->next->Data();
2142 ideal
result = (ideal) Mfwalk_alt(arg1, arg2, arg3, arg4);
2152 if (strcmp(sys_cmd,
"Mfwalk") == 0)
2159 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2163 ideal arg1 = (ideal)
h->Data();
2166 int arg4 = (int)(
long)
h->next->next->next->Data();
2167 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2168 ideal
result = (ideal)
Mfwalk(arg1, arg2, arg3, arg4, arg5);
2177 if (strcmp(sys_cmd,
"Mfrwalk") == 0)
2194 Werror(
"system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n",
2199 ideal arg1 = (ideal)
h->Data();
2202 int arg4 = (int)(
long)
h->next->next->next->Data();
2203 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2204 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2205 ideal
result = (ideal)
Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2212 if (strcmp(sys_cmd,
"Mprwalk") == 0)
2221 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2225 ideal arg1 = (ideal)
h->Data();
2228 int arg4 = (int)(
long)
h->next->next->next->Data();
2229 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2230 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2231 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
2232 int arg8 = (int)(
long)
h->next->next->next->next->next->next->next->Data();
2233 int arg9 = (int)(
long)
h->next->next->next->next->next->next->next->next->Data();
2234 ideal
result = (ideal)
Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
2244 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2251 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2255 ideal arg1 = (ideal)
h->Data();
2268 if (strcmp(sys_cmd,
"MAltwalk2") == 0)
2275 Werror(
"system(\"MAltwalk2\" ...) intvecs not of length %d\n",
2279 ideal arg1 = (ideal)
h->Data();
2291 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2298 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2302 ideal arg1 = (ideal)
h->Data();
2305 int arg4 = (int) ((
long)(
h->next->next->next->Data()));
2316 if (strcmp(sys_cmd,
"TranMrImprovwalk") == 0)
2321 h->next->next->next ==
NULL ||
h->next->next->next->Typ() !=
INT_CMD ||
2322 h->next->next->next ==
NULL ||
h->next->next->next->next->Typ() !=
INT_CMD ||
2323 h->next->next->next ==
NULL ||
h->next->next->next->next->next->Typ() !=
INT_CMD)
2325 WerrorS(
"system(\"TranMrImprovwalk\", ideal, intvec, intvec) expected");
2331 Werror(
"system(\"TranMrImprovwalk\" ...) intvecs not of length %d\n",
currRing->N);
2334 ideal arg1 = (ideal)
h->Data();
2337 int arg4 = (int)(
long)
h->next->next->next->Data();
2338 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2339 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2340 ideal
result = (ideal) TranMrImprovwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2350 #ifndef MAKE_DISTRIBUTION 2361 #ifdef HAVE_EXTENDED_SYSTEM 2365 # include "hc_newton.h" 2376 char *sys_cmd=(
char *)(
h->Data());
2379 if (strcmp(sys_cmd,
"syz") == 0)
2383 const char *
s=(
const char *)
h->Data();
2384 if (strcmp(
s,
"posInT_EcartFDegpLength")==0)
2386 else if (strcmp(
s,
"posInT_FDegpLength")==0)
2388 else if (strcmp(
s,
"posInT_pLength")==0)
2390 else if (strcmp(
s,
"posInT0")==0)
2392 else if (strcmp(
s,
"posInT1")==0)
2394 else if (strcmp(
s,
"posInT2")==0)
2396 else if (strcmp(
s,
"posInT11")==0)
2398 else if (strcmp(
s,
"posInT110")==0)
2400 else if (strcmp(
s,
"posInT13")==0)
2402 else if (strcmp(
s,
"posInT15")==0)
2404 else if (strcmp(
s,
"posInT17")==0)
2406 else if (strcmp(
s,
"posInT17_c")==0)
2408 else if (strcmp(
s,
"posInT19")==0)
2410 else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
2422 if(strcmp(sys_cmd,
"locNF")==0)
2427 poly
f=(poly)
h->Data();
2429 ideal
m=(ideal)
h->Data();
2432 int n=(int)((
long)
h->Data());
2497 if(strcmp(sys_cmd,
"p")==0)
2502 WarnS(
"Sorry: not available for release build!");
2508 if(strcmp(sys_cmd,
"setsyzcomp")==0)
2512 int k = (int)(
long)
h->Data();
2520 if(strcmp(sys_cmd,
"r")==0)
2525 WarnS(
"Sorry: not available for release build!");
2537 if(strcmp(sys_cmd,
"changeRing")==0)
2541 for (
int i = 1;
i <= varN;
i++)
2544 sprintf(
h,
"x%d",
i);
2549 res->data = (
void*)0L;
2554 if(strcmp(sys_cmd,
"mtrack")==0)
2565 char *fn=(
char*)
h->Data();
2566 fd = fopen(fn,
"w");
2568 Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
2572 max = (int)(
long)
h->Data();
2581 WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
2588 if(strcmp(sys_cmd,
"backtrace")==0)
2596 #if !defined(OM_NDEBUG) 2598 if (strcmp(sys_cmd,
"omMemoryTest")==0)
2602 PrintS(
"\n[om_Info]: \n");
2604 #define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name) 2605 OM_PRINT(MaxBytesSystem);
2606 OM_PRINT(CurrentBytesSystem);
2607 OM_PRINT(MaxBytesSbrk);
2608 OM_PRINT(CurrentBytesSbrk);
2609 OM_PRINT(MaxBytesMmap);
2610 OM_PRINT(CurrentBytesMmap);
2611 OM_PRINT(UsedBytes);
2612 OM_PRINT(AvailBytes);
2613 OM_PRINT(UsedBytesMalloc);
2614 OM_PRINT(AvailBytesMalloc);
2615 OM_PRINT(MaxBytesFromMalloc);
2616 OM_PRINT(CurrentBytesFromMalloc);
2617 OM_PRINT(MaxBytesFromValloc);
2618 OM_PRINT(CurrentBytesFromValloc);
2619 OM_PRINT(UsedBytesFromValloc);
2620 OM_PRINT(AvailBytesFromValloc);
2622 OM_PRINT(UsedPages);
2623 OM_PRINT(AvailPages);
2624 OM_PRINT(MaxRegionsAlloc);
2625 OM_PRINT(CurrentRegionsAlloc);
2630 PrintS(
"\n[om_Opts]: \n");
2631 #define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name) 2632 OM_PRINT(
"d", MinTrack);
2633 OM_PRINT(
"d", MinCheck);
2634 OM_PRINT(
"d", MaxTrack);
2635 OM_PRINT(
"d", MaxCheck);
2636 OM_PRINT(
"d", Keep);
2637 OM_PRINT(
"d", HowToReportErrors);
2638 OM_PRINT(
"d", MarkAsStatic);
2639 OM_PRINT(
"u", PagesPerRegion);
2640 OM_PRINT(
"p", OutOfMemoryFunc);
2641 OM_PRINT(
"p", MemoryLowFunc);
2642 OM_PRINT(
"p", ErrorHook);
2647 Print(
"\n\n[om_ErrorStatus] : '%s' (%s)\n",
2650 Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
2663 #if defined(PDEBUG) || defined(PDIV_DEBUG) 2664 if(strcmp(sys_cmd,
"pDivStat")==0)
2674 if(strcmp(sys_cmd,
"red")==0)
2689 if(strcmp(sys_cmd,
"fastcomb")==0)
2697 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2702 (ideal)
h->Data(),(poly)
h->next->Data());
2710 if(strcmp(sys_cmd,
"comb")==0)
2718 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2723 (ideal)
h->Data(),(poly)
h->next->Data());
2732 if(strcmp(sys_cmd,
"listall")==0)
2734 void listall(
int showproc);
2736 if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
2744 if(strcmp(sys_cmd,
"proclist")==0)
2746 void piShowProcList();
2754 if(strcmp(sys_cmd,
"newton")==0)
2758 || (
h->next->next->Typ()!=
INT_CMD))
2760 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2763 poly
p=(poly)(
h->Data());
2782 (
int) (
h->next->Data()),
2783 (
int) (
h->next->next->Data())
2796 L->
m[1].
data=(
void *)(
long)r.achse;
2798 L->
m[2].
data=(
void *)(
long)r.deg;
2802 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2804 int anz = r.anz_punkte;
2807 for (
i=0;
i<anz*
dim;
i++)
2817 (*w)[
i] = r.deg_tab[
i];
2820 while (r.deg_tab[
i-1] != -2);
2831 res->data=(
void *)L;
2854 if (strcmp(sys_cmd,
"minpoly") == 0)
2858 Werror(
"expected exactly one argument: %s",
2859 "a square matrix with number entries");
2869 WerrorS(
"expected exactly one argument: " 2870 "a square matrix with number entries");
2877 res->data = (
void *)theMinPoly;
2878 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2880 delete[] polyCoeffs;
2887 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2895 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2904 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2913 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2921 #if 0 // for testing only 2922 if (strcmp(sys_cmd,
"GF") == 0)
2939 if (strcmp(sys_cmd,
"svd") == 0)
2954 if (strcmp(sys_cmd,
"DLL") == 0)
2956 typedef void (*Void_Func)();
2957 typedef int (*Int_Func)(int);
2967 if (
f!=
NULL) printf(
"%d\n",
f(
i));
2968 else PrintS(
"cannot find PlusDll\n");
2976 else PrintS(
"cannot find TestDll\n");
2983 #ifdef HAVE_RING2TOM 2985 if (strcmp(sys_cmd,
"findZeroPoly")==0)
2988 poly
f = (poly)
h->Data();
2995 #ifdef HAVE_VANIDEAL 2996 if (strcmp(sys_cmd,
"createG0")==0)
3021 if (strcmp(sys_cmd,
"redNF_ring")==0)
3024 poly
f = (poly)
h->Data();
3026 ideal
G = (ideal)
h->Data();
3034 if (strcmp(sys_cmd,
"hilbroune") == 0)
3046 if (strcmp(sys_cmd,
"f5")==0)
3055 ideal
G = (ideal)
h->Data();
3059 opt = (int) (
long)
h->Data();
3067 plus = (int) (
long)
h->Data();
3075 termination = (int) (
long)
h->Data();
3081 res->data=(ideal)
F5main(
G,r,opt,plus,termination);
3088 if (strcmp(sys_cmd,
"NF_ring")==0)
3091 poly
f = (poly)
h->Data();
3093 ideal
G = (ideal)
h->Data();
3099 if (strcmp(sys_cmd,
"spoly")==0)
3101 poly
f =
pCopy((poly)
h->Data());
3103 poly
g =
pCopy((poly)
h->Data());
3110 if (strcmp(sys_cmd,
"testGB")==0)
3112 ideal I = (ideal)
h->Data();
3114 ideal GI = (ideal)
h->Data();
3116 res->data = (
void *)(
long)
testGB(I, GI);
3123 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3129 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3137 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3144 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3150 #ifdef HAVE_RATGRING 3151 if (strcmp(sys_cmd,
"intratNF") == 0)
3166 I=(ideal)
h->CopyD();
3174 is=(int)((
long)(
h->Data()));
3182 for(
k=0;
k < id;
k++)
3186 PrintS(
"starting redRat\n");
3204 if (strcmp(sys_cmd,
"ratNF") == 0)
3223 is=(int)((
long)(
h->Data()));
3238 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3256 is=(int)((
long)(
h->Data()));
3270 #endif // HAVE_RATGRING 3272 if (strcmp(sys_cmd,
"ratVar") == 0)
3289 return (start==0)||(end==0)||(start>end);
3293 if (strcmp(sys_cmd,
"unifastmult")==0)
3295 poly
f = (poly)
h->Data();
3297 poly
g=(poly)
h->Data();
3303 if (strcmp(sys_cmd,
"multifastmult")==0)
3305 poly
f = (poly)
h->Data();
3307 poly
g=(poly)
h->Data();
3313 if (strcmp(sys_cmd,
"mults")==0)
3320 if (strcmp(sys_cmd,
"fastpower")==0)
3323 poly
f = (poly)
h->Data();
3325 int n=(int)((
long)
h->Data());
3331 if (strcmp(sys_cmd,
"normalpower")==0)
3333 poly
f = (poly)
h->Data();
3335 int n=(int)((
long)
h->Data());
3341 if (strcmp(sys_cmd,
"MCpower")==0)
3344 poly
f = (poly)
h->Data();
3346 int n=(int)((
long)
h->Data());
3352 if (strcmp(sys_cmd,
"bit_subst")==0)
3355 poly outer = (poly)
h->Data();
3357 poly inner=(poly)
h->Data();
3364 if (strcmp(sys_cmd,
"gcd") == 0)
3379 int d=(int)(
long)
h->next->Data();
3380 char *
s=(
char *)
h->Data();
3395 if (strcmp(sys_cmd,
"subring") == 0)
3409 if (strcmp(sys_cmd,
"HNF") == 0)
3431 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3439 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3444 char *
s=(
char *)
h->next->Data();
3456 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3460 char* filename = (
char*)
h->Data();
3461 FILE*
f = fopen(filename,
"r");
3464 WerrorS(
"invalid file name (in paths use '/')");
3467 mpz_t
m; mpz_init(
m);
3468 mpz_inp_str(
m,
f, 10);
3472 res->data = (
void*)n;
3477 WerrorS(
"expected valid file name as a string");
3489 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3493 (
h->next->next ==
NULL))
3498 int validEntries = 0;
3499 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3501 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3502 sizeof(
int) * jvec->
rows()) == 0)
3504 if (validEntries == 0)
3508 r->
resize(validEntries + 1);
3509 (*r)[validEntries] =
k + 1;
3515 res->data = (
void*)r;
3520 WerrorS(
"expected two non-empty intvecs as arguments");
3531 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3535 (
h->next->next ==
NULL))
3539 int ir = ivec->
rows();
int jr = jvec->
rows();
3540 int r = jr;
if (ir < jr) r = ir;
3541 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3542 sizeof(
int) * r) != 0))
3545 res->data = (
void*)(
long)r;
3550 WerrorS(
"expected two non-empty intvecs as arguments");
3556 if(strcmp(sys_cmd,
"henselfactors")==0)
3561 (
h->next->next->next !=
NULL) &&
3562 (
h->next->next->next->Typ() ==
POLY_CMD) &&
3563 (
h->next->next->next->next !=
NULL) &&
3564 (
h->next->next->next->next->Typ() ==
POLY_CMD) &&
3565 (
h->next->next->next->next->next !=
NULL) &&
3566 (
h->next->next->next->next->next->Typ() ==
INT_CMD) &&
3567 (
h->next->next->next->next->next->next ==
NULL))
3569 int xIndex = (int)(
long)
h->Data();
3570 int yIndex = (int)(
long)
h->next->Data();
3571 poly hh = (poly)
h->next->next->Data();
3572 poly f0 = (poly)
h->next->next->next->Data();
3573 poly g0 = (poly)
h->next->next->next->next->Data();
3574 int d = (int)(
long)
h->next->next->next->next->next->Data();
3582 res->data = (
char *)L;
3587 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3594 if (strcmp(sys_cmd,
"astep") == 0)
3599 I=(ideal)
h->CopyD();
3612 if (strcmp(sys_cmd,
"PrintMat") == 0)
3622 a=(int)((
long)(
h->Data()));
3627 b=(int)((
long)(
h->Data()));
3642 metric=(int)((
long)(
h->Data()));
3653 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3666 if(strcmp(sys_cmd,
"NCGetType")==0)
3672 res->data=(
void *)(-1L);
3679 if(strcmp(sys_cmd,
"ForceSCA")==0)
3686 b = (int)((
long)(
h->Data()));
3692 e = (int)((
long)(
h->Data()));
3703 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3715 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3727 if(strcmp(sys_cmd,
"test64")==0)
3743 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3749 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3760 if(strcmp(sys_cmd,
"LU")==0)
3770 res->data=(
char*)bb;
3775 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3782 if(strcmp(sys_cmd,
"sort")==0)
3792 if(strcmp(sys_cmd,
"uniq")==0)
3802 if(strcmp(sys_cmd,
"GF")==0)
3807 int p=(int)(
long)
h->Data();
3808 int n=(int)(
long)
h->next->Data();
3809 char *
v=(
char*)
h->next->next->CopyD();
3825 if(strcmp(sys_cmd,
"power1")==0)
3828 poly
f=(poly)
h->CopyD();
3830 res->data=(
void *)
g;
3834 if(strcmp(sys_cmd,
"power2")==0)
3837 poly
f=(poly)
h->Data();
3839 for(
int i=0;
i<2000;
i++)
3841 res->data=(
void *)
g;
3844 if(strcmp(sys_cmd,
"power3")==0)
3847 poly
f=(poly)
h->Data();
3858 poly p1536=
pMult(p1024,p512);
3859 poly p1792=
pMult(p1536,p256);
3860 poly p1920=
pMult(p1792,p128);
3861 poly p1984=
pMult(p1920,p64);
3862 poly p2000=
pMult(p1984,p16);
3863 res->data=(
void *)p2000;
3888 #endif // HAVE_EXTENDED_SYSTEM
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
ideal sm_UnFlatten(ideal a, int col, const ring R)
int posInT_pLength(const TSet set, const int length, LObject &p)
const CanonicalForm int s
This file provides miscellaneous functionality.
poly pFastPower(poly f, int n, ring r)
intvec * MivMatrixOrder(intvec *iv)
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys p
void p_DebugPrint(poly p, const ring r)
void factoryseed(int s)
random seed initializer
Class used for (list of) interpreter objects.
const char * omError2String(omError_t error)
ring rSubring(ring org_ring, sleftv *rv)
void resize(int new_length)
static CanonicalForm bound(const CFMatrix &M)
int posInT2(const TSet set, const int length, LObject &p)
matrix singntl_LLL(matrix m, const ring s)
BOOLEAN jjSORTLIST(leftv, leftv arg)
intvec * Mfpertvector(ideal G, intvec *ivtarget)
static void * feOptValue(feOptIndex opt)
matrix evRowElim(matrix M, int i, int j, int k)
ideal Mpwalk(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight, int nP, int reduction, int printout)
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,...
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
Compatiblity layer for legacy polynomial operations (over currRing)
void HilbertSeries_OrbitData(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
int posInT1(const TSet set, const int length, LObject &p)
intvec * MivWeightOrderlp(intvec *ivstart)
short * iv2array(intvec *iv, const ring R)
BOOLEAN semicProc3(leftv res, leftv u, leftv v, leftv w)
number n_convFactoryNSingN(const CanonicalForm n, const coeffs r)
void sdb_edit(procinfo *pi)
static char * feResource(feResourceConfig config, int warn)
This file is work in progress and currently not part of the official Singular.
lists pcvPMulL(poly p, lists l1)
static const int SW_USE_EZGCD_P
set to 1 to use EZGCD over F_q
int setNCExtensions(int iMask)
void error(const char *fmt,...)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
#define omFreeSize(addr, size)
poly pFastPowerMC(poly f, int n, ring r)
omError_t om_InternalErrorStatus
poly nc_rat_ReduceSpolyNew(const poly p1, poly p2, int ishift, const ring r)
ideal id_TensorModuleMult(const int m, const ideal M, const ring rRing)
BOOLEAN spectrumProc(leftv result, leftv first)
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
int MivSame(intvec *u, intvec *v)
intvec * MivWeightOrderdp(intvec *ivstart)
static coordinates * points
void * dynl_sym(void *handle, const char *symbol)
BOOLEAN spmulProc(leftv result, leftv first, leftv second)
const char * feSetOptValue(feOptIndex opt, char *optarg)
void WerrorS(const char *s)
gmp_complex numbers based on
bool complexNearZero(gmp_complex *c, int digits)
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...
int testGB(ideal I, ideal GI)
int posInT15(const TSet set, const int length, LObject &p)
CanonicalForm n_convSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
matrix evSwap(matrix M, int i, int j)
Creation data needed for finite fields.
int posInT0(const TSet, const int length, LObject &)
void * dynl_open(char *filename)
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
void printBlackboxTypes()
list all defined type (for debugging)
void feStringAppendBrowsers(int warn)
poly p_LPshift(poly p, int sh, int uptodeg, int lV, const ring r)
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget, int reduction, int printout)
matrix mp_Transp(matrix a, const ring R)
poly p_Shrink(poly p, int lV, const ring r)
bool sca_Force(ring rGR, int b, int e)
unsigned long * computeMinimalPolynomial(unsigned long **matrix, unsigned n, unsigned long p)
#define pGetExp(p, i)
Exponent.
int posInT11(const TSet set, const int length, LObject &p)
static int rBlocks(ring r)
int posInT17_c(const TSet set, const int length, LObject &p)
Coefficient rings, fields and other domains suitable for Singular polynomials.
ideal MAltwalk1(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight)
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 ....
int pcvDim(int d0, int d1)
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...
matrix nc_PrintMat(int a, int b, ring r, int metric)
returns matrix with the info on noncomm multiplication
static int max(int a, int b)
void newstructShow(newstruct_desc d)
poly uni_subst_bits(poly outer_uni, poly inner_multi, ring r)
poly multifastmult(poly f, poly g, ring r)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
The main handler for Singular numbers which are suitable for Singular polynomials.
void StringSetS(const char *st)
int M3ivSame(intvec *temp, intvec *u, intvec *v)
const char feNotImplemented[]
BOOLEAN jjUNIQLIST(leftv, leftv arg)
struct fe_option feOptSpec[]
ideal sm_Flatten(ideal a, const ring R)
const char * omError2Serror(omError_t error)
intvec * MwalkNextWeight(intvec *curr_weight, intvec *target_weight, ideal G)
ideal Mwalk(ideal Go, intvec *orig_M, intvec *target_M, ring baseRing, int reduction, int printout)
intvec * MPertNextWeight(intvec *iva, ideal G, int deg)
static FORCE_INLINE number n_InitMPZ(mpz_t n, const coeffs r)
conversion of a GMP integer to number
int simpleipc_cmd(char *cmd, int id, int v)
poly nc_rat_CreateSpoly(poly pp1, poly pp2, int ishift, const ring r)
poly pcvCV2P(poly cv, int d0, int d1)
void rDebugPrint(const ring r)
BOOLEAN assumeStdFlag(leftv h)
intvec * Mivperttarget(ideal G, int ndeg)
void PrintS(const char *s)
BOOLEAN spectrumfProc(leftv result, leftv first)
lists pcvLAddL(lists l1, lists l2)
int pcvBasis(lists b, int i, poly m, int d, int n)
int posInT17(const TSet set, const int length, LObject &p)
static const int SW_USE_CHINREM_GCD
set to 1 to use modular gcd over Z
static unsigned pLength(poly a)
intvec * MPertVectors(ideal G, intvec *ivtarget, int pdeg)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
matrix singntl_HNF(matrix m, const ring s)
poly kNFBound(ideal F, ideal Q, poly p, int bound, int syzComp, int lazyReduce)
static short scaFirstAltVar(ring r)
poly ringRedNF(poly f, ideal G, ring r)
ideal freegb(ideal I, int uptodeg, int lVblock)
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
int ssiReservePort(int clients)
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
static BOOLEAN rField_is_long_C(const ring r)
void rSetSyzComp(int k, const ring r)
ideal Approx_Step(ideal L)
Ann: ???
#define BIMATELEM(M, I, J)
poly plain_spoly(poly f, poly g)
INLINE_THIS void Init(int l=0)
matrix mpNew(int r, int c)
create a r x c zero-matrix
int posInT_EcartFDegpLength(const TSet set, const int length, LObject &p)
const Variable & v
< [in] a sqrfree bivariate poly
matrix evHessenberg(matrix M)
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
matrix mp_InitI(int r, int c, int v, const ring R)
make it a v * unit matrix
ideal RightColonOperation(ideal S, poly w, int lV)
#define pLastVblock(p, lV)
lists evEigenvals(matrix M)
static BOOLEAN rField_is_Ring(const ring r)
CanonicalForm convSingPFactoryP(poly p, const ring r)
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
BOOLEAN semicProc(leftv res, leftv u, leftv v)
poly fglmLinearCombination(ideal source, poly monset)
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...
ideal TranMImprovwalk(ideal G, intvec *curr_weight, intvec *target_tmp, int nP)
int probIrredTest(const CanonicalForm &F, double error)
given some error probIrredTest detects irreducibility or reducibility of F with confidence level 1-er...
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 (...
int posInT110(const TSet set, const int length, LObject &p)
static const int SW_USE_QGCD
set to 1 to use Encarnacion GCD over Q(a)
static BOOLEAN rField_is_long_R(const ring r)
static const int SW_USE_EZGCD
set to 1 to use EZGCD over Z
static BOOLEAN length(leftv result, leftv arg)
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
static short scaLastAltVar(ring r)
intvec * MivMatrixOrderdp(int nV)
static bool rIsSCA(const ring r)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
BOOLEAN ncInitSpecialPairMultiplication(ring r)
ideal MAltwalk2(ideal Go, 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)
static void p_Setm(poly p, const ring r)
CFList int bool & irred
[in,out] Is A irreducible?
poly pcvP2CV(poly p, int d0, int d1)
int(* test_PosInT)(const TSet T, const int tl, LObject &h)
#define omPrintCurrentBackTrace(fd)
static nc_type & ncRingType(nc_struct *p)
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether)
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
char * omFindExec(const char *name, char *exec)
#define pLmDeleteAndNext(p)
like pLmDelete, returns pNext(p)
void pPrintDivisbleByStat()
BOOLEAN spaddProc(leftv result, leftv first, leftv second)
ideal idXXX(ideal h1, int k)
ideal singclap_absFactorize(poly f, ideal &mipos, intvec **exps, int &numFactors, const ring r)
void omPrintUsedTrackAddrs(FILE *fd, int max_frames)
BOOLEAN newstruct_set_proc(const char *bbname, const char *func, int args, procinfov pr)
void omMarkAsStaticAddr(void *addr)
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)
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
int posInT19(const TSet set, const int length, LObject &p)
int(* test_PosInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
lists gmsNF(ideal p, ideal g, matrix B, int D, int K)
ideal id_Vec2Ideal(poly vec, const ring R)
feOptIndex feGetOptIndex(const char *name)
void countedref_reference_load()
Initialize blackbox types 'reference' and 'shared', or both.
static poly p_Add_q(poly p, poly q, const ring r)
char * singclap_neworder(ideal I, const ring r)
poly ringNF(poly f, ideal G, ring r)
ideal MwalkInitialForm(ideal G, intvec *ivw)
int posInT_FDegpLength(const TSet set, const int length, LObject &p)
ideal Mfrwalk(ideal G, intvec *ivstart, intvec *ivtarget, int weight_rad, int reduction, int printout)
poly fglmNewLinearCombination(ideal source, poly monset)
#define IMATELEM(M, I, J)
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
void Werror(const char *fmt,...)
intvec * MivMatrixOrderlp(int nV)
void countedref_shared_load()
int posInT13(const TSet set, const int length, LObject &p)
poly unifastmult(poly f, poly g, ring r)
#define pCopy(p)
return a copy of the poly
#define MATELEM(mat, i, j)
void n_Print(number &a, const coeffs r)
print a number (BEWARE of string buffers!) mostly for debugging
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
intvec * MkInterRedNextWeight(intvec *iva, intvec *ivb, ideal G)
ideal twostd(ideal I)
Compute two-sided GB:
ideal F5main(ideal id, ring r, int opt, int plus, int termination)