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> 141 #ifndef MAKE_DISTRIBUTION 142 #define HAVE_EXTENDED_SYSTEM 1 159 #ifdef HAVE_SIMPLEIPC 167 #ifndef MAKE_DISTRIBUTION 178 int n = singularMatrix->
rows();
180 unsigned long **longMatrix = 0;
181 longMatrix =
new unsigned long *[n] ;
182 for (
int i = 0 ;
i < n;
i++)
183 longMatrix[
i] =
new unsigned long [n];
185 for (
int r = 0; r < n; r++)
186 for (
int c = 0; c < n; c++)
188 poly
p=
MATELEM(singularMatrix, r + 1, c + 1);
198 longMatrix[r][c] = (
unsigned long)entryAsInt;
213 if ((
int)polyCoeffs[
i] != 0)
235 const char *sys_cmd=(
char *)(args->
Data());
240 if (strcmp(sys_cmd,
"nblocks") == 0)
262 r = (ring) h->
Data();
269 if(strcmp(sys_cmd,
"version")==0)
277 if(strcmp(sys_cmd,
"alarm")==0)
284 struct itimerval t,o;
285 memset(&t,0,
sizeof(t));
286 t.it_value.tv_sec =(unsigned)((
unsigned long)h->
Data());
287 setitimer(ITIMER_VIRTUAL,&t,&o);
295 if(strcmp(sys_cmd,
"cpu")==0)
298 #ifdef _SC_NPROCESSORS_ONLN 299 cpu=sysconf(_SC_NPROCESSORS_ONLN);
300 #elif defined(_SC_NPROCESSORS_CONF) 301 cpu=sysconf(_SC_NPROCESSORS_CONF);
303 res->
data=(
void *)cpu;
309 if(strcmp(sys_cmd,
"executable")==0)
315 if(s==
NULL) s=(
char*)
"";
324 if(strcmp(sys_cmd,
"flatten")==0)
337 if(strcmp(sys_cmd,
"unflatten")==0)
350 if(strcmp(sys_cmd,
"neworder")==0)
364 if(strcmp(sys_cmd,
"nc_hilb") == 0)
372 i = (ideal)h->
Data();
375 WerrorS(
"nc_Hilb:ideal expected");
380 lV = (int)(
long)h->
Data();
383 WerrorS(
"nc_Hilb:int expected");
389 if((
int)(
long)h->
Data() == 1)
391 else if((
int)(long)h->
Data() == 2)
396 trunDegHs = (
int)(long)h->
Data();
401 WerrorS(
"nc_Hilb:int 1,2, total degree for the truncation, and a string for printing the details are expected");
410 if(strcmp(sys_cmd,
"rcolon") == 0)
415 ideal
i = (ideal)h->
Data();
417 poly
w=(poly)h->
Data();
419 int lV = (int)(
long)h->
Data();
430 if(strcmp(sys_cmd,
"sh")==0)
434 WerrorS(
"shell execution is disallowed in restricted mode");
447 if(strcmp(sys_cmd,
"reduce_bound")==0)
457 p = (poly)h->
CopyD();
461 pid = (ideal)h->
CopyD();
476 if(strcmp(sys_cmd,
"uname")==0)
484 if(strcmp(sys_cmd,
"with")==0)
494 #define TEST_FOR(A) if(strcmp(s,A)==0) res->data=(void *)1; else 495 char *
s=(
char *)h->
Data();
508 #ifdef TEST_MAC_ORDER 513 #ifdef HAVE_DYNAMIC_LOADING 536 if (strcmp(sys_cmd,
"browsers")==0)
546 if (strcmp(sys_cmd,
"pid")==0)
549 res->
data=(
void *)(
long) getpid();
554 if (strcmp(sys_cmd,
"getenv")==0)
572 if (strcmp(sys_cmd,
"setenv")==0)
589 WerrorS(
"setenv not supported on this platform");
595 if (strcmp(sys_cmd,
"Singular") == 0)
604 if (strcmp(sys_cmd,
"SingularLib") == 0)
614 if (strstr(sys_cmd,
"--") == sys_cmd)
616 if (strcmp(sys_cmd,
"--") == 0)
624 Werror(
"Unknown option %s", sys_cmd);
625 WerrorS(
"Use 'system(\"--\");' for listing of available options");
640 const char *r=(
const char*)
feOptSpec[opt].value;
654 WerrorS(
"Need string or int argument to set option value");
657 const char* errormsg;
662 Werror(
"Need string argument to set value of option %s", sys_cmd);
666 if (errormsg !=
NULL)
667 Werror(
"Option '--%s=%d' %s", sys_cmd, (
int) ((
long)h->
Data()), errormsg);
672 if (errormsg !=
NULL)
673 Werror(
"Option '--%s=%s' %s", sys_cmd, (
char*) h->
Data(), errormsg);
680 if (strcmp(sys_cmd,
"HC")==0)
688 if(strcmp(sys_cmd,
"random")==0)
711 if (strcmp(sys_cmd,
"std_syz") == 0)
717 i1=(ideal)h->
CopyD();
723 i2=(int)((
long)h->
Data());
732 if (strcmp(sys_cmd,
"denom_list")==0)
741 if(strcmp(sys_cmd,
"complexNearZero")==0)
748 WerrorS(
"unsupported ground field!");
766 if(strcmp(sys_cmd,
"getPrecDigits")==0)
771 WerrorS(
"unsupported ground field!");
782 if(strcmp(sys_cmd,
"lduDecomp")==0)
789 poly
l; poly u; poly prodLU;
790 lduDecomp(aMat, pMat, lMat, dMat, uMat, l, u, prodLU);
801 res->
data = (
char *)L;
811 if(strcmp(sys_cmd,
"lduSolve")==0)
852 Werror(
"first matrix (%d x %d) is not quadratic",
858 Werror(
"second matrix (%d x %d) is not quadratic",
864 Werror(
"third matrix (%d x %d) is not quadratic",
870 Werror(
"third matrix (%d x %d) and fourth matrix (%d x %d) %s",
877 Werror(
"fourth matrix (%d x %d) and vector (%d x 1) do not fit",
882 bVec, xVec, homogSolSpace);
905 if (strcmp(sys_cmd,
"shared") == 0)
907 #ifndef SI_COUNTEDREF_AUTOLOAD 914 else if (strcmp(sys_cmd,
"reference") == 0)
916 #ifndef SI_COUNTEDREF_AUTOLOAD 925 #ifdef HAVE_SIMPLEIPC 926 if (strcmp(sys_cmd,
"semaphore")==0)
939 WerrorS(
"Usage: system(\"semaphore\",<cmd>,int)");
946 if (strcmp(sys_cmd,
"reserve")==0)
954 res->
data=(
void*)(
long)
p;
961 if (strcmp(sys_cmd,
"reservedLink")==0)
970 if (strcmp(sys_cmd,
"install")==0)
983 if (strcmp(sys_cmd,
"newstruct")==0)
989 char *n=(
char*)h->
Data();
996 newstruct_desc desc=(newstruct_desc)bb->data;
1000 else Werror(
"'%s' is not a newstruct",n);
1002 else Werror(
"'%s' is not a blackbox object",n);
1008 if (strcmp(sys_cmd,
"blackbox")==0)
1016 if (strcmp(sys_cmd,
"absFact") == 0)
1033 l->
m[0].
data=(
void *)f;
1035 l->
m[1].
data=(
void *)v;
1037 l->
m[2].
data=(
void*) mipos;
1039 l->
m[3].
data=(
void*) (
long) n;
1040 res->
data=(
void *)l;
1049 if (strcmp(sys_cmd,
"LLL") == 0)
1072 #if __FLINT_RELEASE >= 20500 1073 if (strcmp(sys_cmd,
"LLL_Flint") == 0)
1094 WerrorS(
"matrix,int or bigint,int expected");
1099 if(((
int)((
long)(h->
next->
Data())) != 0) && (
int)((long)(h->
next->
Data()) != 1))
1101 WerrorS(
"int is different from 0, 1");
1126 for(
int i = 1;
i<=m->
rows();
i++)
1131 m = singflint_LLL(m,T);
1144 for(
int i = 1;
i<=m->
rows();
i++)
1146 m = singflint_LLL(m,T);
1166 #ifdef HAVE_SHIFTBBA 1167 if (strcmp(sys_cmd,
"stest") == 0)
1174 int sh=(int)((
long)(h->
Data()));
1177 WerrorS(
"negative shift for pLPshift");
1183 WerrorS(
"pLPshift: too big shift requested\n");
1196 #ifdef HAVE_SHIFTBBA 1197 if (strcmp(sys_cmd,
"btest") == 0)
1212 #ifdef HAVE_SHIFTBBA 1213 if (strcmp(sys_cmd,
"lpLmDivides") == 0)
1229 #ifdef HAVE_SHIFTBBA 1230 if (strcmp(sys_cmd,
"lpVarAt") == 0)
1236 int pos=(int)((
long)(h->
next->
Data()));
1247 if(strcmp(sys_cmd,
"pcvLAddL")==0)
1252 if(strcmp(sys_cmd,
"pcvPMulL")==0)
1257 if(strcmp(sys_cmd,
"pcvMinDeg")==0)
1262 if(strcmp(sys_cmd,
"pcvP2CV")==0)
1267 if(strcmp(sys_cmd,
"pcvCV2P")==0)
1272 if(strcmp(sys_cmd,
"pcvDim")==0)
1277 if(strcmp(sys_cmd,
"pcvBasis")==0)
1284 #ifdef HAVE_EIGENVAL 1285 if(strcmp(sys_cmd,
"hessenberg")==0)
1292 #ifdef HAVE_EIGENVAL 1293 if(strcmp(sys_cmd,
"eigenvals")==0)
1300 #ifdef HAVE_EIGENVAL 1301 if(strcmp(sys_cmd,
"rowelim")==0)
1308 #ifdef HAVE_EIGENVAL 1309 if(strcmp(sys_cmd,
"rowcolswap")==0)
1317 if(strcmp(sys_cmd,
"gmsnf")==0)
1319 return gmsNF(res,h);
1324 if(strcmp(sys_cmd,
"contributors") == 0)
1328 "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");
1333 #ifdef HAVE_SPECTRUM 1334 if(strcmp(sys_cmd,
"spectrum") == 0)
1354 if(strcmp(sys_cmd,
"semic") == 0)
1369 if(strcmp(sys_cmd,
"spadd") == 0)
1380 if(strcmp(sys_cmd,
"spmul") == 0)
1392 #define HAVE_SHEAFCOH_TRICKS 1 1394 #ifdef HAVE_SHEAFCOH_TRICKS 1395 if(strcmp(sys_cmd,
"tensorModuleMult")==0)
1401 int m = (int)( (
long)h->
Data() );
1413 if (strcmp(sys_cmd,
"twostd") == 0)
1418 I=(ideal)h->
CopyD();
1432 if (strcmp(sys_cmd,
"bracket") == 0)
1439 poly q=(poly)h->
Data();
1450 if (strcmp(sys_cmd,
"env")==0)
1454 ring r = (ring)h->
Data();
1461 WerrorS(
"`system(\"env\",<ring>)` expected");
1469 if (strcmp(sys_cmd,
"opp")==0)
1473 ring r=(ring)h->
Data();
1480 WerrorS(
"`system(\"opp\",<ring>)` expected");
1488 if (strcmp(sys_cmd,
"oppose")==0)
1493 ring Rop = (ring)h->
Data();
1506 WerrorS(
"`system(\"oppose\",<ring>,<poly>)` expected");
1516 if (strcmp(sys_cmd,
"walkNextWeight") == 0)
1523 Werror(
"system(\"walkNextWeight\" ...) intvecs not of length %d\n",
1546 if (strcmp(sys_cmd,
"walkInitials") == 0)
1550 WerrorS(
"system(\"walkInitials\", ideal) expected");
1553 res->
data = (
void*) walkInitials((ideal) h->
Data());
1563 if (strcmp(sys_cmd,
"walkAddIntVec") == 0)
1569 res->
data = (
intvec*) walkAddIntVec(arg1, arg2);
1578 #ifdef MwaklNextWeight 1579 if (strcmp(sys_cmd,
"MwalkNextWeight") == 0)
1586 Werror(
"system(\"MwalkNextWeight\" ...) intvecs not of length %d\n",
1599 #endif //MWalkNextWeight 1603 if(strcmp(sys_cmd,
"Mivdp") == 0)
1607 WerrorS(
"system(\"Mivdp\", int) expected");
1612 Werror(
"system(\"Mivdp\" ...) intvecs not of length %d\n",
1616 int arg1 = (int) ((
long)(h->
Data()));
1626 if(strcmp(sys_cmd,
"Mivlp") == 0)
1630 WerrorS(
"system(\"Mivlp\", int) expected");
1635 Werror(
"system(\"Mivlp\" ...) intvecs not of length %d\n",
1639 int arg1 = (int) ((
long)(h->
Data()));
1650 if(strcmp(sys_cmd,
"MpDiv") == 0)
1654 poly arg1 = (poly) h->
Data();
1655 poly arg2 = (poly) h->
next->
Data();
1656 poly
result = MpDiv(arg1, arg2);
1667 if(strcmp(sys_cmd,
"MpMult") == 0)
1671 poly arg1 = (poly) h->
Data();
1672 poly arg2 = (poly) h->
next->
Data();
1673 poly
result = MpMult(arg1, arg2);
1683 if (strcmp(sys_cmd,
"MivSame") == 0)
1711 if (strcmp(sys_cmd,
"M3ivSame") == 0)
1741 if(strcmp(sys_cmd,
"MwalkInitialForm") == 0)
1747 Werror(
"system \"MwalkInitialForm\"...) intvec not of length %d\n",
1751 ideal
id = (ideal) h->
Data();
1763 if(strcmp(sys_cmd,
"MivMatrixOrder") == 0)
1767 WerrorS(
"system(\"MivMatrixOrder\",intvec) expected");
1780 if(strcmp(sys_cmd,
"MivMatrixOrderdp") == 0)
1784 WerrorS(
"system(\"MivMatrixOrderdp\",intvec) expected");
1787 int arg1 = (int) ((
long)(h->
Data()));
1797 if(strcmp(sys_cmd,
"MPertVectors") == 0)
1801 ideal arg1 = (ideal) h->
Data();
1813 if(strcmp(sys_cmd,
"MPertVectorslp") == 0)
1817 ideal arg1 = (ideal) h->
Data();
1829 if(strcmp(sys_cmd,
"Mfpertvector") == 0)
1833 ideal arg1 = (ideal) h->
Data();
1844 if(strcmp(sys_cmd,
"MivUnit") == 0)
1848 int arg1 = (int) ((
long)(h->
Data()));
1858 if(strcmp(sys_cmd,
"MivWeightOrderlp") == 0)
1872 if(strcmp(sys_cmd,
"MivWeightOrderdp") == 0)
1876 WerrorS(
"system(\"MivWeightOrderdp\",intvec) expected");
1890 if(strcmp(sys_cmd,
"MivMatrixOrderlp") == 0)
1894 WerrorS(
"system(\"MivMatrixOrderlp\",int) expected");
1897 int arg1 = (int) ((
long)(h->
Data()));
1907 if (strcmp(sys_cmd,
"MkInterRedNextWeight") == 0)
1914 Werror(
"system(\"MkInterRedNextWeight\" ...) intvecs not of length %d\n",
1930 #ifdef MPertNextWeight 1931 if (strcmp(sys_cmd,
"MPertNextWeight") == 0)
1937 Werror(
"system(\"MPertNextWeight\" ...) intvecs not of length %d\n",
1942 ideal arg2 = (ideal) h->
next->
Data();
1950 #endif //MPertNextWeight 1954 #ifdef Mivperttarget 1955 if (strcmp(sys_cmd,
"Mivperttarget") == 0)
1959 ideal arg1 = (ideal) h->
Data();
1967 #endif //Mivperttarget 1971 if (strcmp(sys_cmd,
"Mwalk") == 0)
1978 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d\n",
1982 ideal arg1 = (ideal) h->
CopyD();
1988 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3, arg4, arg5, arg6);
1998 if (strcmp(sys_cmd,
"Mwalk") == 0)
2007 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d or %d\n",
2011 ideal arg1 = (ideal) h->
Data();
2015 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3,arg4);
2022 if (strcmp(sys_cmd,
"Mpwalk") == 0)
2029 Werror(
"system(\"Mpwalk\" ...) intvecs not of length %d\n",
currRing->N);
2032 ideal arg1 = (ideal) h->
Data();
2033 int arg2 = (int) (
long) h->
next->
Data();
2040 ideal
result = (ideal)
Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
2050 if (strcmp(sys_cmd,
"Mrwalk") == 0)
2059 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2063 ideal arg1 = (ideal) h->
Data();
2070 ideal
result = (ideal)
Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
2079 if (strcmp(sys_cmd,
"MAltwalk1") == 0)
2086 Werror(
"system(\"MAltwalk1\" ...) intvecs not of length %d\n",
2090 ideal arg1 = (ideal) h->
Data();
2091 int arg2 = (int) ((
long)(h->
next->
Data()));
2105 if (strcmp(sys_cmd,
"Mfwalk_alt") == 0)
2112 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2116 ideal arg1 = (ideal) h->
Data();
2120 ideal
result = (ideal) Mfwalk_alt(arg1, arg2, arg3, arg4);
2130 if (strcmp(sys_cmd,
"Mfwalk") == 0)
2137 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2141 ideal arg1 = (ideal) h->
Data();
2146 ideal
result = (ideal)
Mfwalk(arg1, arg2, arg3, arg4, arg5);
2155 if (strcmp(sys_cmd,
"Mfrwalk") == 0)
2172 Werror(
"system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n",
2177 ideal arg1 = (ideal) h->
Data();
2183 ideal
result = (ideal)
Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2190 if (strcmp(sys_cmd,
"Mprwalk") == 0)
2199 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2203 ideal arg1 = (ideal) h->
Data();
2212 ideal
result = (ideal)
Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
2222 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2229 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2233 ideal arg1 = (ideal) h->
Data();
2246 if (strcmp(sys_cmd,
"MAltwalk2") == 0)
2253 Werror(
"system(\"MAltwalk2\" ...) intvecs not of length %d\n",
2257 ideal arg1 = (ideal) h->
Data();
2269 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2276 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2280 ideal arg1 = (ideal) h->
Data();
2294 if (strcmp(sys_cmd,
"TranMrImprovwalk") == 0)
2303 WerrorS(
"system(\"TranMrImprovwalk\", ideal, intvec, intvec) expected");
2309 Werror(
"system(\"TranMrImprovwalk\" ...) intvecs not of length %d\n",
currRing->N);
2312 ideal arg1 = (ideal) h->
Data();
2318 ideal
result = (ideal) TranMrImprovwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2328 #ifndef MAKE_DISTRIBUTION 2339 #ifdef HAVE_EXTENDED_SYSTEM 2343 # include "hc_newton.h" 2354 char *sys_cmd=(
char *)(h->
Data());
2357 if (strcmp(sys_cmd,
"syz") == 0)
2361 const char *
s=(
const char *)h->
Data();
2362 if (strcmp(s,
"posInT_EcartFDegpLength")==0)
2364 else if (strcmp(s,
"posInT_FDegpLength")==0)
2366 else if (strcmp(s,
"posInT_pLength")==0)
2368 else if (strcmp(s,
"posInT0")==0)
2370 else if (strcmp(s,
"posInT1")==0)
2372 else if (strcmp(s,
"posInT2")==0)
2374 else if (strcmp(s,
"posInT11")==0)
2376 else if (strcmp(s,
"posInT110")==0)
2378 else if (strcmp(s,
"posInT13")==0)
2380 else if (strcmp(s,
"posInT15")==0)
2382 else if (strcmp(s,
"posInT17")==0)
2384 else if (strcmp(s,
"posInT17_c")==0)
2386 else if (strcmp(s,
"posInT19")==0)
2388 else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
2400 if(strcmp(sys_cmd,
"locNF")==0)
2405 poly
f=(poly)h->
Data();
2407 ideal
m=(ideal)h->
Data();
2410 int n=(int)((
long)h->
Data());
2475 if(strcmp(sys_cmd,
"p")==0)
2480 WarnS(
"Sorry: not available for release build!");
2486 if(strcmp(sys_cmd,
"setsyzcomp")==0)
2490 int k = (int)(
long)h->
Data();
2498 if(strcmp(sys_cmd,
"r")==0)
2503 WarnS(
"Sorry: not available for release build!");
2515 if(strcmp(sys_cmd,
"changeRing")==0)
2519 for (
int i = 1;
i <= varN;
i++)
2522 sprintf(h,
"x%d",
i);
2527 res->
data = (
void*)0L;
2532 if(strcmp(sys_cmd,
"mtrack")==0)
2543 char *fn=(
char*) h->
Data();
2544 fd = fopen(fn,
"w");
2546 Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
2550 max = (int)(
long)h->
Data();
2555 if (fd !=
NULL) fclose(fd);
2559 WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
2566 if(strcmp(sys_cmd,
"backtrace")==0)
2574 #if !defined(OM_NDEBUG) 2576 if (strcmp(sys_cmd,
"omMemoryTest")==0)
2580 PrintS(
"\n[om_Info]: \n");
2582 #define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name) 2583 OM_PRINT(MaxBytesSystem);
2584 OM_PRINT(CurrentBytesSystem);
2585 OM_PRINT(MaxBytesSbrk);
2586 OM_PRINT(CurrentBytesSbrk);
2587 OM_PRINT(MaxBytesMmap);
2588 OM_PRINT(CurrentBytesMmap);
2589 OM_PRINT(UsedBytes);
2590 OM_PRINT(AvailBytes);
2591 OM_PRINT(UsedBytesMalloc);
2592 OM_PRINT(AvailBytesMalloc);
2593 OM_PRINT(MaxBytesFromMalloc);
2594 OM_PRINT(CurrentBytesFromMalloc);
2595 OM_PRINT(MaxBytesFromValloc);
2596 OM_PRINT(CurrentBytesFromValloc);
2597 OM_PRINT(UsedBytesFromValloc);
2598 OM_PRINT(AvailBytesFromValloc);
2600 OM_PRINT(UsedPages);
2601 OM_PRINT(AvailPages);
2602 OM_PRINT(MaxRegionsAlloc);
2603 OM_PRINT(CurrentRegionsAlloc);
2608 PrintS(
"\n[om_Opts]: \n");
2609 #define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name) 2610 OM_PRINT(
"d", MinTrack);
2611 OM_PRINT(
"d", MinCheck);
2612 OM_PRINT(
"d", MaxTrack);
2613 OM_PRINT(
"d", MaxCheck);
2614 OM_PRINT(
"d", Keep);
2615 OM_PRINT(
"d", HowToReportErrors);
2616 OM_PRINT(
"d", MarkAsStatic);
2617 OM_PRINT(
"u", PagesPerRegion);
2618 OM_PRINT(
"p", OutOfMemoryFunc);
2619 OM_PRINT(
"p", MemoryLowFunc);
2620 OM_PRINT(
"p", ErrorHook);
2625 Print(
"\n\n[om_ErrorStatus] : '%s' (%s)\n",
2628 Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
2641 #if defined(PDEBUG) || defined(PDIV_DEBUG) 2642 if(strcmp(sys_cmd,
"pDivStat")==0)
2652 if(strcmp(sys_cmd,
"red")==0)
2667 if(strcmp(sys_cmd,
"fastcomb")==0)
2675 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2688 if(strcmp(sys_cmd,
"comb")==0)
2696 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2710 if(strcmp(sys_cmd,
"listall")==0)
2712 void listall(
int showproc);
2722 if(strcmp(sys_cmd,
"proclist")==0)
2724 void piShowProcList();
2732 if(strcmp(sys_cmd,
"newton")==0)
2738 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2741 poly
p=(poly)(h->
Data());
2747 for (i=0;pp!=
NULL;i++)
2774 L->
m[1].
data=(
void *)(
long)r.achse;
2776 L->
m[2].
data=(
void *)(
long)r.deg;
2780 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2782 int anz = r.anz_punkte;
2785 for (i=0; i<anz*
dim; i++)
2788 L->
m[4].
data=(
void *)v;
2795 (*w)[
i] = r.deg_tab[
i];
2798 while (r.deg_tab[i-1] != -2);
2800 L->
m[5].
data=(
void *)w;
2809 res->
data=(
void *)L;
2832 if (strcmp(sys_cmd,
"minpoly") == 0)
2836 Werror(
"expected exactly one argument: %s",
2837 "a square matrix with number entries");
2847 WerrorS(
"expected exactly one argument: " 2848 "a square matrix with number entries");
2855 res->
data = (
void *)theMinPoly;
2856 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2858 delete[] polyCoeffs;
2865 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2873 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2882 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2891 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2899 #if 0 // for testing only 2900 if (strcmp(sys_cmd,
"GF") == 0)
2917 if (strcmp(sys_cmd,
"svd") == 0)
2932 if (strcmp(sys_cmd,
"DLL") == 0)
2934 typedef void (*Void_Func)();
2935 typedef int (*Int_Func)(int);
2945 if (
f!=
NULL) printf(
"%d\n",
f(i));
2946 else PrintS(
"cannot find PlusDll\n");
2954 else PrintS(
"cannot find TestDll\n");
2961 #ifdef HAVE_RING2TOM 2963 if (strcmp(sys_cmd,
"findZeroPoly")==0)
2966 poly
f = (poly) h->
Data();
2973 #ifdef HAVE_VANIDEAL 2974 if (strcmp(sys_cmd,
"createG0")==0)
2999 if (strcmp(sys_cmd,
"redNF_ring")==0)
3002 poly
f = (poly) h->
Data();
3004 ideal
G = (ideal) h->
Data();
3012 if (strcmp(sys_cmd,
"hilbroune") == 0)
3024 if (strcmp(sys_cmd,
"f5")==0)
3033 ideal
G = (ideal) h->
Data();
3037 opt = (int) (
long) h->
Data();
3045 plus = (int) (
long) h->
Data();
3053 termination = (int) (
long) h->
Data();
3059 res->
data=(ideal)
F5main(G,r,opt,plus,termination);
3066 if (strcmp(sys_cmd,
"NF_ring")==0)
3069 poly
f = (poly) h->
Data();
3071 ideal
G = (ideal) h->
Data();
3077 if (strcmp(sys_cmd,
"spoly")==0)
3081 poly
g =
pCopy((poly) h->Data());
3088 if (strcmp(sys_cmd,
"testGB")==0)
3090 ideal I = (ideal) h->
Data();
3092 ideal GI = (ideal) h->
Data();
3101 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3107 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3115 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3122 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3128 #ifdef HAVE_RATGRING 3129 if (strcmp(sys_cmd,
"intratNF") == 0)
3144 I=(ideal)h->
CopyD();
3152 is=(int)((
long)(h->
Data()));
3160 for(k=0; k < id; k++)
3164 PrintS(
"starting redRat\n");
3182 if (strcmp(sys_cmd,
"ratNF") == 0)
3201 is=(int)((
long)(h->
Data()));
3216 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3234 is=(int)((
long)(h->
Data()));
3248 #endif // HAVE_RATGRING 3250 if (strcmp(sys_cmd,
"ratVar") == 0)
3267 return (start==0)||(end==0)||(start>end);
3271 if (strcmp(sys_cmd,
"unifastmult")==0)
3273 poly
f = (poly)h->
Data();
3275 poly
g=(poly)h->
Data();
3281 if (strcmp(sys_cmd,
"multifastmult")==0)
3283 poly
f = (poly)h->
Data();
3285 poly
g=(poly)h->
Data();
3291 if (strcmp(sys_cmd,
"mults")==0)
3298 if (strcmp(sys_cmd,
"fastpower")==0)
3301 poly
f = (poly)h->
Data();
3303 int n=(int)((
long)h->
Data());
3309 if (strcmp(sys_cmd,
"normalpower")==0)
3311 poly
f = (poly)h->
Data();
3313 int n=(int)((
long)h->
Data());
3319 if (strcmp(sys_cmd,
"MCpower")==0)
3322 poly
f = (poly)h->
Data();
3324 int n=(int)((
long)h->
Data());
3330 if (strcmp(sys_cmd,
"bit_subst")==0)
3333 poly outer = (poly)h->
Data();
3335 poly inner=(poly)h->
Data();
3342 if (strcmp(sys_cmd,
"gcd") == 0)
3358 char *
s=(
char *)h->
Data();
3373 if (strcmp(sys_cmd,
"subring") == 0)
3387 if (strcmp(sys_cmd,
"HNF") == 0)
3409 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3417 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3423 double error= atof (s);
3434 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3438 char* filename = (
char*)h->
Data();
3439 FILE*
f = fopen(filename,
"r");
3442 WerrorS(
"invalid file name (in paths use '/')");
3445 mpz_t
m; mpz_init(m);
3446 mpz_inp_str(m, f, 10);
3450 res->
data = (
void*)n;
3455 WerrorS(
"expected valid file name as a string");
3467 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3476 int validEntries = 0;
3477 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3479 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3480 sizeof(
int) * jvec->
rows()) == 0)
3482 if (validEntries == 0)
3486 r->
resize(validEntries + 1);
3487 (*r)[validEntries] = k + 1;
3493 res->
data = (
void*)r;
3498 WerrorS(
"expected two non-empty intvecs as arguments");
3509 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3517 int ir = ivec->
rows();
int jr = jvec->
rows();
3518 int r = jr;
if (ir < jr) r = ir;
3519 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3520 sizeof(
int) * r) != 0))
3523 res->
data = (
void*)(
long)r;
3528 WerrorS(
"expected two non-empty intvecs as arguments");
3534 if(strcmp(sys_cmd,
"henselfactors")==0)
3547 int xIndex = (int)(
long)h->
Data();
3548 int yIndex = (int)(
long)h->
next->
Data();
3560 res->
data = (
char *)L;
3565 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3572 if (strcmp(sys_cmd,
"astep") == 0)
3577 I=(ideal)h->
CopyD();
3590 if (strcmp(sys_cmd,
"PrintMat") == 0)
3600 a=(int)((
long)(h->
Data()));
3605 b=(int)((
long)(h->
Data()));
3620 metric=(int)((
long)(h->
Data()));
3631 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3644 if(strcmp(sys_cmd,
"NCGetType")==0)
3650 res->
data=(
void *)(-1L);
3657 if(strcmp(sys_cmd,
"ForceSCA")==0)
3664 b = (int)((
long)(h->
Data()));
3670 e = (int)((
long)(h->
Data()));
3681 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3693 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3705 if(strcmp(sys_cmd,
"test64")==0)
3721 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3727 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3730 Print(
"caching inverse in chines remainder:%d\n",n_SwitchChinRem);
3732 n_SwitchChinRem=(int)(
long)h->
Data();
3738 if(strcmp(sys_cmd,
"LU")==0)
3748 res->
data=(
char*)bb;
3753 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3760 if(strcmp(sys_cmd,
"sort")==0)
3770 if(strcmp(sys_cmd,
"uniq")==0)
3780 if(strcmp(sys_cmd,
"GF")==0)
3785 int p=(int)(
long)h->
Data();
3803 if(strcmp(sys_cmd,
"power1")==0)
3808 res->
data=(
void *)g;
3812 if(strcmp(sys_cmd,
"power2")==0)
3815 poly
f=(poly)h->
Data();
3817 for(
int i=0;
i<2000;
i++)
3819 res->
data=(
void *)g;
3822 if(strcmp(sys_cmd,
"power3")==0)
3825 poly
f=(poly)h->
Data();
3836 poly p1536=
pMult(p1024,p512);
3837 poly p1792=
pMult(p1536,p256);
3838 poly p1920=
pMult(p1792,p128);
3839 poly p1984=
pMult(p1920,p64);
3840 poly p2000=
pMult(p1984,p16);
3841 res->
data=(
void *)p2000;
3866 #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)
idhdl get(const char *s, int lev)
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
void printBlackboxTypes()
list all defined type (for debugging)
void feStringAppendBrowsers(int warn)
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget, int reduction, int printout)
matrix mp_Transp(matrix a, 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)
void p_LPshift(poly p, int sh, const ring ri)
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 p_LPDivisibleBy(poly a, poly b, const ring r)
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)
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)
poly p_LPVarAt(poly p, int pos, const ring r)
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)
#define omPrintUsedTrackAddrs(F, max)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : 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)
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)
coeffs basecoeffs() const
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)
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)
1-based access to matrix
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)