 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the documentation of this file.
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)
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");
440 res->data = (
void*)(long)
system((
char*)(
h->Data()));
447 if(strcmp(sys_cmd,
"reduce_bound")==0)
457 p = (poly)
h->CopyD();
461 pid = (ideal)
h->CopyD();
466 ideal q = (ideal)
h->next->CopyD();
467 int bound = (int)(
long)
h->next->next->Data();
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)
559 const char *r=
getenv((
char *)
h->Data());
572 if (strcmp(sys_cmd,
"setenv")==0)
579 setenv((
char *)
h->Data(), (
char *)
h->next->Data(), 1);
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!");
755 (int)((
long)(
h->next->Data())));
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)
845 poly
l = (poly)
h->next->next->next->next->Data();
846 poly u = (poly)
h->next->next->next->next->next->Data();
847 poly lTimesU = (poly)
h->next->next->next->next->next->next->Data();
848 matrix bVec = (
matrix)
h->next->next->next->next->next->next->next->Data();
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)
932 v=(int)(
long)
h->next->next->Data();
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)
976 (int)(
long)
h->next->next->next->Data(),
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");
1105 if((
long)(
h->next->Data()) == 0)
1120 if((
long)(
h->next->Data()) == 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);
1167 if(strcmp(sys_cmd,
"pcvLAddL")==0)
1172 if(strcmp(sys_cmd,
"pcvPMulL")==0)
1177 if(strcmp(sys_cmd,
"pcvMinDeg")==0)
1182 if(strcmp(sys_cmd,
"pcvP2CV")==0)
1187 if(strcmp(sys_cmd,
"pcvCV2P")==0)
1192 if(strcmp(sys_cmd,
"pcvDim")==0)
1197 if(strcmp(sys_cmd,
"pcvBasis")==0)
1204 #ifdef HAVE_EIGENVAL
1205 if(strcmp(sys_cmd,
"hessenberg")==0)
1212 #ifdef HAVE_EIGENVAL
1213 if(strcmp(sys_cmd,
"eigenvals")==0)
1220 #ifdef HAVE_EIGENVAL
1221 if(strcmp(sys_cmd,
"rowelim")==0)
1228 #ifdef HAVE_EIGENVAL
1229 if(strcmp(sys_cmd,
"rowcolswap")==0)
1237 if(strcmp(sys_cmd,
"gmsnf")==0)
1244 if(strcmp(sys_cmd,
"contributors") == 0)
1248 "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");
1253 #ifdef HAVE_SPECTRUM
1254 if(strcmp(sys_cmd,
"spectrum") == 0)
1268 if(((
long)
h->next->Data())==1L)
1274 if(strcmp(sys_cmd,
"semic") == 0)
1280 if (
h->next->next==
NULL)
1282 else if (
h->next->next->Typ()==
INT_CMD)
1289 if(strcmp(sys_cmd,
"spadd") == 0)
1300 if(strcmp(sys_cmd,
"spmul") == 0)
1312 #define HAVE_SHEAFCOH_TRICKS 1
1314 #ifdef HAVE_SHEAFCOH_TRICKS
1315 if(strcmp(sys_cmd,
"tensorModuleMult")==0)
1321 int m = (int)( (
long)
h->Data() );
1322 ideal
M = (ideal)
h->next->Data();
1333 if (strcmp(sys_cmd,
"twostd") == 0)
1338 I=(ideal)
h->CopyD();
1352 if (strcmp(sys_cmd,
"bracket") == 0)
1357 poly
p=(poly)
h->CopyD();
1359 poly q=(poly)
h->Data();
1370 if (strcmp(sys_cmd,
"env")==0)
1374 ring r = (ring)
h->Data();
1381 WerrorS(
"`system(\"env\",<ring>)` expected");
1389 if (strcmp(sys_cmd,
"opp")==0)
1393 ring r=(ring)
h->Data();
1400 WerrorS(
"`system(\"opp\",<ring>)` expected");
1408 if (strcmp(sys_cmd,
"oppose")==0)
1411 && (
h->next!=
NULL))
1413 ring Rop = (ring)
h->Data();
1426 WerrorS(
"`system(\"oppose\",<ring>,<poly>)` expected");
1436 if (strcmp(sys_cmd,
"walkNextWeight") == 0)
1443 Werror(
"system(\"walkNextWeight\" ...) intvecs not of length %d\n",
1447 res->data = (
void*) walkNextWeight(((
intvec*)
h->Data()),
1449 (ideal)
h->next->next->Data());
1450 if (
res->data ==
NULL ||
res->data == (
void*) 1L)
1466 if (strcmp(sys_cmd,
"walkInitials") == 0)
1470 WerrorS(
"system(\"walkInitials\", ideal) expected");
1473 res->data = (
void*) walkInitials((ideal)
h->Data());
1483 if (strcmp(sys_cmd,
"walkAddIntVec") == 0)
1489 res->data = (
intvec*) walkAddIntVec(arg1, arg2);
1498 #ifdef MwaklNextWeight
1499 if (strcmp(sys_cmd,
"MwalkNextWeight") == 0)
1506 Werror(
"system(\"MwalkNextWeight\" ...) intvecs not of length %d\n",
1512 ideal arg3 = (ideal)
h->next->next->Data();
1519 #endif //MWalkNextWeight
1523 if(strcmp(sys_cmd,
"Mivdp") == 0)
1527 WerrorS(
"system(\"Mivdp\", int) expected");
1530 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1532 Werror(
"system(\"Mivdp\" ...) intvecs not of length %d\n",
1536 int arg1 = (int) ((
long)(
h->Data()));
1546 if(strcmp(sys_cmd,
"Mivlp") == 0)
1550 WerrorS(
"system(\"Mivlp\", int) expected");
1553 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1555 Werror(
"system(\"Mivlp\" ...) intvecs not of length %d\n",
1559 int arg1 = (int) ((
long)(
h->Data()));
1570 if(strcmp(sys_cmd,
"MpDiv") == 0)
1574 poly arg1 = (poly)
h->Data();
1575 poly arg2 = (poly)
h->next->Data();
1576 poly
result = MpDiv(arg1, arg2);
1587 if(strcmp(sys_cmd,
"MpMult") == 0)
1591 poly arg1 = (poly)
h->Data();
1592 poly arg2 = (poly)
h->next->Data();
1593 poly
result = MpMult(arg1, arg2);
1603 if (strcmp(sys_cmd,
"MivSame") == 0)
1624 res->data = (
void*)(
long)
MivSame(arg1, arg2);
1631 if (strcmp(sys_cmd,
"M3ivSame") == 0)
1654 res->data = (
void*)(
long)
M3ivSame(arg1, arg2, arg3);
1661 if(strcmp(sys_cmd,
"MwalkInitialForm") == 0)
1667 Werror(
"system \"MwalkInitialForm\"...) intvec not of length %d\n",
1671 ideal
id = (ideal)
h->Data();
1683 if(strcmp(sys_cmd,
"MivMatrixOrder") == 0)
1687 WerrorS(
"system(\"MivMatrixOrder\",intvec) expected");
1700 if(strcmp(sys_cmd,
"MivMatrixOrderdp") == 0)
1704 WerrorS(
"system(\"MivMatrixOrderdp\",intvec) expected");
1707 int arg1 = (int) ((
long)(
h->Data()));
1717 if(strcmp(sys_cmd,
"MPertVectors") == 0)
1721 ideal arg1 = (ideal)
h->Data();
1723 int arg3 = (int) ((
long)(
h->next->next->Data()));
1733 if(strcmp(sys_cmd,
"MPertVectorslp") == 0)
1737 ideal arg1 = (ideal)
h->Data();
1739 int arg3 = (int) ((
long)(
h->next->next->Data()));
1749 if(strcmp(sys_cmd,
"Mfpertvector") == 0)
1753 ideal arg1 = (ideal)
h->Data();
1764 if(strcmp(sys_cmd,
"MivUnit") == 0)
1768 int arg1 = (int) ((
long)(
h->Data()));
1778 if(strcmp(sys_cmd,
"MivWeightOrderlp") == 0)
1792 if(strcmp(sys_cmd,
"MivWeightOrderdp") == 0)
1796 WerrorS(
"system(\"MivWeightOrderdp\",intvec) expected");
1810 if(strcmp(sys_cmd,
"MivMatrixOrderlp") == 0)
1814 WerrorS(
"system(\"MivMatrixOrderlp\",int) expected");
1817 int arg1 = (int) ((
long)(
h->Data()));
1827 if (strcmp(sys_cmd,
"MkInterRedNextWeight") == 0)
1834 Werror(
"system(\"MkInterRedNextWeight\" ...) intvecs not of length %d\n",
1840 ideal arg3 = (ideal)
h->next->next->Data();
1850 #ifdef MPertNextWeight
1851 if (strcmp(sys_cmd,
"MPertNextWeight") == 0)
1857 Werror(
"system(\"MPertNextWeight\" ...) intvecs not of length %d\n",
1862 ideal arg2 = (ideal)
h->next->Data();
1863 int arg3 = (int)
h->next->next->Data();
1870 #endif //MPertNextWeight
1874 #ifdef Mivperttarget
1875 if (strcmp(sys_cmd,
"Mivperttarget") == 0)
1879 ideal arg1 = (ideal)
h->Data();
1880 int arg2 = (int)
h->next->Data();
1887 #endif //Mivperttarget
1891 if (strcmp(sys_cmd,
"Mwalk") == 0)
1898 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d\n",
1902 ideal arg1 = (ideal)
h->CopyD();
1905 ring arg4 = (ring)
h->next->next->next->Data();
1906 int arg5 = (int) (
long)
h->next->next->next->next->Data();
1907 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
1908 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3, arg4, arg5, arg6);
1918 if (strcmp(sys_cmd,
"Mwalk") == 0)
1927 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d or %d\n",
1931 ideal arg1 = (ideal)
h->Data();
1934 ring arg4 = (ring)
h->next->next->next->Data();
1935 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3,arg4);
1942 if (strcmp(sys_cmd,
"Mpwalk") == 0)
1949 Werror(
"system(\"Mpwalk\" ...) intvecs not of length %d\n",
currRing->N);
1952 ideal arg1 = (ideal)
h->Data();
1953 int arg2 = (int) (
long)
h->next->Data();
1954 int arg3 = (int) (
long)
h->next->next->Data();
1957 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
1958 int arg7 = (int) (
long)
h->next->next->next->next->next->next->Data();
1959 int arg8 = (int) (
long)
h->next->next->next->next->next->next->next->Data();
1960 ideal
result = (ideal)
Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1970 if (strcmp(sys_cmd,
"Mrwalk") == 0)
1979 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
1983 ideal arg1 = (ideal)
h->Data();
1986 int arg4 = (int)(
long)
h->next->next->next->Data();
1987 int arg5 = (int)(
long)
h->next->next->next->next->Data();
1988 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
1989 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
1990 ideal
result = (ideal)
Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1999 if (strcmp(sys_cmd,
"MAltwalk1") == 0)
2006 Werror(
"system(\"MAltwalk1\" ...) intvecs not of length %d\n",
2010 ideal arg1 = (ideal)
h->Data();
2011 int arg2 = (int) ((
long)(
h->next->Data()));
2012 int arg3 = (int) ((
long)(
h->next->next->Data()));
2025 if (strcmp(sys_cmd,
"Mfwalk_alt") == 0)
2032 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2036 ideal arg1 = (ideal)
h->Data();
2039 int arg4 = (int)
h->next->next->next->Data();
2040 ideal
result = (ideal) Mfwalk_alt(arg1, arg2, arg3, arg4);
2050 if (strcmp(sys_cmd,
"Mfwalk") == 0)
2057 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2061 ideal arg1 = (ideal)
h->Data();
2064 int arg4 = (int)(
long)
h->next->next->next->Data();
2065 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2066 ideal
result = (ideal)
Mfwalk(arg1, arg2, arg3, arg4, arg5);
2075 if (strcmp(sys_cmd,
"Mfrwalk") == 0)
2092 Werror(
"system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n",
2097 ideal arg1 = (ideal)
h->Data();
2100 int arg4 = (int)(
long)
h->next->next->next->Data();
2101 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2102 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2103 ideal
result = (ideal)
Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2110 if (strcmp(sys_cmd,
"Mprwalk") == 0)
2119 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2123 ideal arg1 = (ideal)
h->Data();
2126 int arg4 = (int)(
long)
h->next->next->next->Data();
2127 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2128 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2129 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
2130 int arg8 = (int)(
long)
h->next->next->next->next->next->next->next->Data();
2131 int arg9 = (int)(
long)
h->next->next->next->next->next->next->next->next->Data();
2132 ideal
result = (ideal)
Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
2142 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2149 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2153 ideal arg1 = (ideal)
h->Data();
2166 if (strcmp(sys_cmd,
"MAltwalk2") == 0)
2173 Werror(
"system(\"MAltwalk2\" ...) intvecs not of length %d\n",
2177 ideal arg1 = (ideal)
h->Data();
2189 if (strcmp(sys_cmd,
"TranMImprovwalk") == 0)
2196 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2200 ideal arg1 = (ideal)
h->Data();
2203 int arg4 = (int) ((
long)(
h->next->next->next->Data()));
2214 if (strcmp(sys_cmd,
"TranMrImprovwalk") == 0)
2219 h->next->next->next ==
NULL ||
h->next->next->next->Typ() !=
INT_CMD ||
2220 h->next->next->next ==
NULL ||
h->next->next->next->next->Typ() !=
INT_CMD ||
2221 h->next->next->next ==
NULL ||
h->next->next->next->next->next->Typ() !=
INT_CMD)
2223 WerrorS(
"system(\"TranMrImprovwalk\", ideal, intvec, intvec) expected");
2229 Werror(
"system(\"TranMrImprovwalk\" ...) intvecs not of length %d\n",
currRing->N);
2232 ideal arg1 = (ideal)
h->Data();
2235 int arg4 = (int)(
long)
h->next->next->next->Data();
2236 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2237 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2238 ideal
result = (ideal) TranMrImprovwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2248 #ifndef MAKE_DISTRIBUTION
2259 #ifdef HAVE_EXTENDED_SYSTEM
2263 # include "hc_newton.h"
2274 char *sys_cmd=(
char *)(
h->Data());
2277 if (strcmp(sys_cmd,
"syz") == 0)
2281 const char *
s=(
const char *)
h->Data();
2282 if (strcmp(
s,
"posInT_EcartFDegpLength")==0)
2284 else if (strcmp(
s,
"posInT_FDegpLength")==0)
2286 else if (strcmp(
s,
"posInT_pLength")==0)
2288 else if (strcmp(
s,
"posInT0")==0)
2290 else if (strcmp(
s,
"posInT1")==0)
2292 else if (strcmp(
s,
"posInT2")==0)
2294 else if (strcmp(
s,
"posInT11")==0)
2296 else if (strcmp(
s,
"posInT110")==0)
2298 else if (strcmp(
s,
"posInT13")==0)
2300 else if (strcmp(
s,
"posInT15")==0)
2302 else if (strcmp(
s,
"posInT17")==0)
2304 else if (strcmp(
s,
"posInT17_c")==0)
2306 else if (strcmp(
s,
"posInT19")==0)
2308 else PrintS(
"valid posInT:0,1,2,11,110,13,15,17,17_c,19,_EcartFDegpLength,_FDegpLength,_pLength,_EcartpLength\n");
2320 if(strcmp(sys_cmd,
"locNF")==0)
2325 poly
f=(poly)
h->Data();
2327 ideal
m=(ideal)
h->Data();
2330 int n=(int)((
long)
h->Data());
2395 if(strcmp(sys_cmd,
"p")==0)
2400 WarnS(
"Sorry: not available for release build!");
2406 if(strcmp(sys_cmd,
"setsyzcomp")==0)
2410 int k = (int)(
long)
h->Data();
2418 if(strcmp(sys_cmd,
"r")==0)
2423 WarnS(
"Sorry: not available for release build!");
2435 if(strcmp(sys_cmd,
"changeRing")==0)
2439 for (
int i = 1;
i <= varN;
i++)
2442 sprintf(
h,
"x%d",
i);
2447 res->data = (
void*)0L;
2452 if(strcmp(sys_cmd,
"mtrack")==0)
2463 char *fn=(
char*)
h->Data();
2464 fd = fopen(fn,
"w");
2466 Warn(
"Can not open %s for writing og mtrack. Using stdout",fn);
2470 max = (int)(
long)
h->Data();
2479 WerrorS(
"system(\"mtrack\",..) is not implemented in this version");
2486 if(strcmp(sys_cmd,
"backtrace")==0)
2494 #if !defined(OM_NDEBUG)
2496 if (strcmp(sys_cmd,
"omMemoryTest")==0)
2500 PrintS(
"\n[om_Info]: \n");
2502 #define OM_PRINT(name) Print(" %-22s : %10ld \n", #name, om_Info . name)
2503 OM_PRINT(MaxBytesSystem);
2504 OM_PRINT(CurrentBytesSystem);
2505 OM_PRINT(MaxBytesSbrk);
2506 OM_PRINT(CurrentBytesSbrk);
2507 OM_PRINT(MaxBytesMmap);
2508 OM_PRINT(CurrentBytesMmap);
2509 OM_PRINT(UsedBytes);
2510 OM_PRINT(AvailBytes);
2511 OM_PRINT(UsedBytesMalloc);
2512 OM_PRINT(AvailBytesMalloc);
2513 OM_PRINT(MaxBytesFromMalloc);
2514 OM_PRINT(CurrentBytesFromMalloc);
2515 OM_PRINT(MaxBytesFromValloc);
2516 OM_PRINT(CurrentBytesFromValloc);
2517 OM_PRINT(UsedBytesFromValloc);
2518 OM_PRINT(AvailBytesFromValloc);
2520 OM_PRINT(UsedPages);
2521 OM_PRINT(AvailPages);
2522 OM_PRINT(MaxRegionsAlloc);
2523 OM_PRINT(CurrentRegionsAlloc);
2528 PrintS(
"\n[om_Opts]: \n");
2529 #define OM_PRINT(format, name) Print(" %-22s : %10" format"\n", #name, om_Opts . name)
2530 OM_PRINT(
"d", MinTrack);
2531 OM_PRINT(
"d", MinCheck);
2532 OM_PRINT(
"d", MaxTrack);
2533 OM_PRINT(
"d", MaxCheck);
2534 OM_PRINT(
"d", Keep);
2535 OM_PRINT(
"d", HowToReportErrors);
2536 OM_PRINT(
"d", MarkAsStatic);
2537 OM_PRINT(
"u", PagesPerRegion);
2538 OM_PRINT(
"p", OutOfMemoryFunc);
2539 OM_PRINT(
"p", MemoryLowFunc);
2540 OM_PRINT(
"p", ErrorHook);
2545 Print(
"\n\n[om_ErrorStatus] : '%s' (%s)\n",
2548 Print(
"[om_InternalErrorStatus]: '%s' (%s)\n",
2561 #if defined(PDEBUG) || defined(PDIV_DEBUG)
2562 if(strcmp(sys_cmd,
"pDivStat")==0)
2572 if(strcmp(sys_cmd,
"red")==0)
2587 if(strcmp(sys_cmd,
"fastcomb")==0)
2595 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2600 (ideal)
h->Data(),(poly)
h->next->Data());
2608 if(strcmp(sys_cmd,
"comb")==0)
2616 WarnS(
"Wrong types for poly= comb(ideal,poly)");
2621 (ideal)
h->Data(),(poly)
h->next->Data());
2630 if(strcmp(sys_cmd,
"listall")==0)
2632 void listall(
int showproc);
2634 if ((
h!=
NULL) && (
h->Typ()==
INT_CMD)) showproc=(int)((
long)
h->Data());
2642 if(strcmp(sys_cmd,
"proclist")==0)
2644 void piShowProcList();
2652 if(strcmp(sys_cmd,
"newton")==0)
2656 || (
h->next->next->Typ()!=
INT_CMD))
2658 WerrorS(
"system(\"newton\",<poly>,<int>,<int>) expected");
2661 poly
p=(poly)(
h->Data());
2680 (
int) (
h->next->Data()),
2681 (
int) (
h->next->next->Data())
2694 L->
m[1].
data=(
void *)(
long)r.achse;
2696 L->
m[2].
data=(
void *)(
long)r.deg;
2700 L->
m[3].
data=(
void *)(
long)r.anz_punkte;
2702 int anz = r.anz_punkte;
2705 for (
i=0;
i<anz*
dim;
i++)
2715 (*w)[
i] = r.deg_tab[
i];
2718 while (r.deg_tab[
i-1] != -2);
2729 res->data=(
void *)L;
2752 if (strcmp(sys_cmd,
"minpoly") == 0)
2756 Werror(
"expected exactly one argument: %s",
2757 "a square matrix with number entries");
2767 WerrorS(
"expected exactly one argument: "
2768 "a square matrix with number entries");
2775 res->data = (
void *)theMinPoly;
2776 for (
int i = 0;
i < n;
i++)
delete[] ml[
i];
2778 delete[] polyCoeffs;
2785 if (strcmp(sys_cmd,
"sdb_flags") == 0)
2793 WerrorS(
"system(\"sdb_flags\",`int`) expected");
2802 if (strcmp(sys_cmd,
"sdb_edit") == 0)
2811 WerrorS(
"system(\"sdb_edit\",`proc`) expected");
2819 #if 0 // for testing only
2820 if (strcmp(sys_cmd,
"GF") == 0)
2837 if (strcmp(sys_cmd,
"svd") == 0)
2852 if (strcmp(sys_cmd,
"DLL") == 0)
2854 typedef void (*Void_Func)();
2855 typedef int (*Int_Func)(int);
2865 if (
f!=
NULL) printf(
"%d\n",
f(
i));
2866 else PrintS(
"cannot find PlusDll\n");
2874 else PrintS(
"cannot find TestDll\n");
2881 #ifdef HAVE_RING2TOM
2883 if (strcmp(sys_cmd,
"findZeroPoly")==0)
2886 poly
f = (poly)
h->Data();
2893 #ifdef HAVE_VANIDEAL
2894 if (strcmp(sys_cmd,
"createG0")==0)
2919 if (strcmp(sys_cmd,
"redNF_ring")==0)
2922 poly
f = (poly)
h->Data();
2924 ideal
G = (ideal)
h->Data();
2932 if (strcmp(sys_cmd,
"hilbroune") == 0)
2944 if (strcmp(sys_cmd,
"f5")==0)
2953 ideal
G = (ideal)
h->Data();
2957 opt = (int) (
long)
h->Data();
2965 plus = (int) (
long)
h->Data();
2973 termination = (int) (
long)
h->Data();
2979 res->data=(ideal)
F5main(
G,r,opt,plus,termination);
2986 if (strcmp(sys_cmd,
"NF_ring")==0)
2989 poly
f = (poly)
h->Data();
2991 ideal
G = (ideal)
h->Data();
2997 if (strcmp(sys_cmd,
"spoly")==0)
2999 poly
f =
pCopy((poly)
h->Data());
3001 poly
g =
pCopy((poly)
h->Data());
3008 if (strcmp(sys_cmd,
"testGB")==0)
3010 ideal I = (ideal)
h->Data();
3012 ideal GI = (ideal)
h->Data();
3014 res->data = (
void *)(
long)
testGB(I, GI);
3021 if ( (strcmp(sys_cmd,
"AltVarStart") == 0) || (strcmp(sys_cmd,
"AltVarEnd") == 0) )
3027 WerrorS(
"`system(\"AltVarStart/End\"[,<ring>])` expected");
3035 if(strcmp(sys_cmd,
"AltVarStart") == 0)
3042 WerrorS(
"`system(\"AltVarStart/End\",<ring>) requires a SCA ring");
3048 #ifdef HAVE_RATGRING
3049 if (strcmp(sys_cmd,
"intratNF") == 0)
3064 I=(ideal)
h->CopyD();
3072 is=(int)((
long)(
h->Data()));
3080 for(
k=0;
k < id;
k++)
3084 PrintS(
"starting redRat\n");
3102 if (strcmp(sys_cmd,
"ratNF") == 0)
3121 is=(int)((
long)(
h->Data()));
3136 if (strcmp(sys_cmd,
"ratSpoly") == 0)
3154 is=(int)((
long)(
h->Data()));
3168 #endif // HAVE_RATGRING
3170 if (strcmp(sys_cmd,
"ratVar") == 0)
3187 return (start==0)||(end==0)||(start>end);
3191 if (strcmp(sys_cmd,
"unifastmult")==0)
3193 poly
f = (poly)
h->Data();
3195 poly
g=(poly)
h->Data();
3201 if (strcmp(sys_cmd,
"multifastmult")==0)
3203 poly
f = (poly)
h->Data();
3205 poly
g=(poly)
h->Data();
3211 if (strcmp(sys_cmd,
"mults")==0)
3218 if (strcmp(sys_cmd,
"fastpower")==0)
3221 poly
f = (poly)
h->Data();
3223 int n=(int)((
long)
h->Data());
3229 if (strcmp(sys_cmd,
"normalpower")==0)
3231 poly
f = (poly)
h->Data();
3233 int n=(int)((
long)
h->Data());
3239 if (strcmp(sys_cmd,
"MCpower")==0)
3242 poly
f = (poly)
h->Data();
3244 int n=(int)((
long)
h->Data());
3250 if (strcmp(sys_cmd,
"bit_subst")==0)
3253 poly outer = (poly)
h->Data();
3255 poly inner=(poly)
h->Data();
3262 if (strcmp(sys_cmd,
"gcd") == 0)
3277 int d=(int)(
long)
h->next->Data();
3278 char *
s=(
char *)
h->Data();
3293 if (strcmp(sys_cmd,
"subring") == 0)
3307 if (strcmp(sys_cmd,
"HNF") == 0)
3329 WerrorS(
"expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
3337 if (strcmp (sys_cmd,
"probIrredTest") == 0)
3342 char *
s=(
char *)
h->next->Data();
3354 if(strcmp(sys_cmd,
"GNUmpLoad")==0)
3358 char* filename = (
char*)
h->Data();
3359 FILE*
f = fopen(filename,
"r");
3362 WerrorS(
"invalid file name (in paths use '/')");
3365 mpz_t
m; mpz_init(
m);
3366 mpz_inp_str(
m,
f, 10);
3370 res->data = (
void*)n;
3375 WerrorS(
"expected valid file name as a string");
3387 if(strcmp(sys_cmd,
"intvecMatchingSegments")==0)
3391 (
h->next->next ==
NULL))
3396 int validEntries = 0;
3397 for (
int k = 0;
k <= ivec->
rows() - jvec->
rows();
k++)
3399 if (memcmp(&(*ivec)[
k], &(*jvec)[0],
3400 sizeof(
int) * jvec->
rows()) == 0)
3402 if (validEntries == 0)
3406 r->
resize(validEntries + 1);
3407 (*r)[validEntries] =
k + 1;
3413 res->data = (
void*)r;
3418 WerrorS(
"expected two non-empty intvecs as arguments");
3429 if(strcmp(sys_cmd,
"intvecOverlap")==0)
3433 (
h->next->next ==
NULL))
3437 int ir = ivec->
rows();
int jr = jvec->
rows();
3438 int r = jr;
if (ir < jr) r = ir;
3439 while ((r >= 1) && (memcmp(&(*ivec)[ir - r], &(*jvec)[0],
3440 sizeof(
int) * r) != 0))
3443 res->data = (
void*)(
long)r;
3448 WerrorS(
"expected two non-empty intvecs as arguments");
3454 if(strcmp(sys_cmd,
"henselfactors")==0)
3459 (
h->next->next->next !=
NULL) &&
3460 (
h->next->next->next->Typ() ==
POLY_CMD) &&
3461 (
h->next->next->next->next !=
NULL) &&
3462 (
h->next->next->next->next->Typ() ==
POLY_CMD) &&
3463 (
h->next->next->next->next->next !=
NULL) &&
3464 (
h->next->next->next->next->next->Typ() ==
INT_CMD) &&
3465 (
h->next->next->next->next->next->next ==
NULL))
3467 int xIndex = (int)(
long)
h->Data();
3468 int yIndex = (int)(
long)
h->next->Data();
3469 poly hh = (poly)
h->next->next->Data();
3470 poly f0 = (poly)
h->next->next->next->Data();
3471 poly g0 = (poly)
h->next->next->next->next->Data();
3472 int d = (int)(
long)
h->next->next->next->next->next->Data();
3480 res->data = (
char *)L;
3485 WerrorS(
"expected argument list (int, int, poly, poly, poly, int)");
3492 if (strcmp(sys_cmd,
"astep") == 0)
3497 I=(ideal)
h->CopyD();
3510 if (strcmp(sys_cmd,
"PrintMat") == 0)
3520 a=(int)((
long)(
h->Data()));
3525 b=(int)((
long)(
h->Data()));
3540 metric=(int)((
long)(
h->Data()));
3551 if(strcmp(sys_cmd,
"NCUseExtensions")==0)
3564 if(strcmp(sys_cmd,
"NCGetType")==0)
3570 res->data=(
void *)(-1L);
3577 if(strcmp(sys_cmd,
"ForceSCA")==0)
3584 b = (int)((
long)(
h->Data()));
3590 e = (int)((
long)(
h->Data()));
3601 if(strcmp(sys_cmd,
"ForceNewNCMultiplication")==0)
3613 if(strcmp(sys_cmd,
"ForceNewOldNCMultiplication")==0)
3625 if(strcmp(sys_cmd,
"test64")==0)
3641 Print(
"SIZEOF_LONG=%d\n",SIZEOF_LONG);
3647 if(strcmp(sys_cmd,
"cache_chinrem")==0)
3658 if(strcmp(sys_cmd,
"LU")==0)
3668 res->data=(
char*)bb;
3673 WerrorS(
"system(\"LU\",<cmatrix>) expected");
3680 if(strcmp(sys_cmd,
"sort")==0)
3690 if(strcmp(sys_cmd,
"uniq")==0)
3700 if(strcmp(sys_cmd,
"GF")==0)
3705 int p=(int)(
long)
h->Data();
3706 int n=(int)(
long)
h->next->Data();
3707 char *
v=(
char*)
h->next->next->CopyD();
3723 if(strcmp(sys_cmd,
"power1")==0)
3726 poly
f=(poly)
h->CopyD();
3728 res->data=(
void *)
g;
3732 if(strcmp(sys_cmd,
"power2")==0)
3735 poly
f=(poly)
h->Data();
3737 for(
int i=0;
i<2000;
i++)
3739 res->data=(
void *)
g;
3742 if(strcmp(sys_cmd,
"power3")==0)
3745 poly
f=(poly)
h->Data();
3756 poly p1536=
pMult(p1024,p512);
3757 poly p1792=
pMult(p1536,p256);
3758 poly p1920=
pMult(p1792,p128);
3759 poly p1984=
pMult(p1920,p64);
3760 poly p2000=
pMult(p1984,p16);
3761 res->data=(
void *)p2000;
3786 #endif // HAVE_EXTENDED_SYSTEM
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
BOOLEAN jjUNIQLIST(leftv, leftv arg)
#define pLmDeleteAndNext(p)
like pLmDelete, returns pNext(p)
void error(const char *fmt,...)
BOOLEAN ncInitSpecialPairMultiplication(ring r)
void countedref_shared_load()
static BOOLEAN rField_is_long_R(const ring r)
ideal twostd(ideal I)
Compute two-sided GB:
EXTERN_VAR size_t gmp_output_digits
ideal TranMImprovwalk(ideal G, intvec *curr_weight, intvec *target_tmp, int nP)
poly multifastmult(poly f, poly g, ring r)
ideal Mwalk(ideal Go, intvec *orig_M, intvec *target_M, ring baseRing, int reduction, int printout)
int posInT17_c(const TSet set, const int length, LObject &p)
BOOLEAN spectrumfProc(leftv result, leftv first)
lists gmsNF(ideal p, ideal g, matrix B, int D, int K)
void rDebugPrint(const ring r)
#define MATELEM(mat, i, j)
1-based access to matrix
poly fglmNewLinearCombination(ideal source, poly monset)
poly nc_rat_ReduceSpolyNew(const poly p1, poly p2, int ishift, const ring r)
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys p
static FORCE_INLINE int n_GetChar(const coeffs r)
Return the characteristic of the coeff. domain.
Creation data needed for finite fields.
void p_DebugPrint(poly p, const ring r)
#define pGetExp(p, i)
Exponent.
matrix evRowElim(matrix M, int i, int j, int k)
int posInT_EcartFDegpLength(const TSet set, const int length, LObject &p)
int posInT17(const TSet set, const int length, LObject &p)
#define omPrintUsedTrackAddrs(F, max)
intvec * MwalkNextWeight(intvec *curr_weight, intvec *target_weight, ideal G)
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
static nc_type & ncRingType(nc_struct *p)
int M3ivSame(intvec *temp, intvec *u, intvec *v)
feOptIndex feGetOptIndex(const char *name)
CFList int bool & irred
[in,out] Is A irreducible?
const char * omError2String(omError_t error)
poly pFastPowerMC(poly f, int n, ring r)
int posInT110(const TSet set, const int length, LObject &p)
short * iv2array(intvec *iv, const ring R)
static BOOLEAN length(leftv result, leftv arg)
ideal Mpwalk(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight, int nP, int reduction, int printout)
BOOLEAN spmulProc(leftv result, leftv first, leftv second)
const char * feSetOptValue(feOptIndex opt, char *optarg)
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
coeffs nInitChar(n_coeffType t, void *parameter)
one-time initialisations for new coeffs in case of an error return NULL
void feStringAppendBrowsers(int warn)
BOOLEAN jjSORTLIST(leftv, leftv arg)
BOOLEAN semicProc3(leftv res, leftv u, leftv v, leftv w)
void sdb_edit(procinfo *pi)
int pcvBasis(lists b, int i, poly m, int d, int n)
void printBlackboxTypes()
list all defined type (for debugging)
int setNCExtensions(int iMask)
int posInT_FDegpLength(const TSet set, const int length, LObject &p)
poly kNFBound(ideal F, ideal Q, poly p, int bound, int syzComp, int lazyReduce)
Class used for (list of) interpreter objects.
int testGB(ideal I, ideal GI)
poly pFastPower(poly f, int n, ring r)
static FORCE_INLINE number n_InitMPZ(mpz_t n, const coeffs r)
conversion of a GMP integer to number
STATIC_VAR coordinates * points
matrix evSwap(matrix M, int i, int j)
#define omPrintCurrentBackTrace(fd)
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
int posInT19(const TSet set, const int length, LObject &p)
void factoryseed(int s)
random seed initializer
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
VAR int(* test_PosInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
static unsigned pLength(poly a)
void HilbertSeries_OrbitData(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
static const int SW_USE_EZGCD
set to 1 to use EZGCD over Z
bool sca_Force(ring rGR, int b, int e)
int ssiReservePort(int clients)
ideal MAltwalk2(ideal Go, intvec *curr_weight, intvec *target_weight)
omError_t om_InternalErrorStatus
const char * omError2Serror(omError_t error)
void countedref_reference_load()
Initialize blackbox types 'reference' and 'shared', or both.
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)
number n_convFactoryNSingN(const CanonicalForm n, const coeffs r)
int posInT2(const TSet set, const int length, LObject &p)
void PrintS(const char *s)
lists pcvPMulL(poly p, lists l1)
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...
#define omFreeSize(addr, size)
intvec * Mivperttarget(ideal G, int ndeg)
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 MivSame(intvec *u, intvec *v)
int posInT_pLength(const TSet set, const int length, LObject &p)
matrix mp_Transp(matrix a, const ring R)
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget, int reduction, int printout)
static short scaFirstAltVar(ring r)
static BOOLEAN rField_is_Ring(const ring r)
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,...
ideal RightColonOperation(ideal S, poly w, int lV)
poly pcvCV2P(poly cv, int d0, int d1)
BOOLEAN semicProc(leftv res, leftv u, leftv v)
ideal sm_Flatten(ideal a, const ring R)
static int max(int a, int b)
intvec * MivMatrixOrderdp(int nV)
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
void resize(int new_length)
BOOLEAN spaddProc(leftv result, leftv first, leftv second)
matrix singntl_HNF(matrix m, const ring s)
ideal F5main(ideal id, ring r, int opt, int plus, int termination)
static const int SW_USE_CHINREM_GCD
set to 1 to use modular gcd over Z
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
EXTERN_VAR int singular_homog_flag
intvec * MivMatrixOrder(intvec *iv)
static int rBlocks(ring r)
poly uni_subst_bits(poly outer_uni, poly inner_multi, ring r)
char * omFindExec(const char *name, char *exec)
intvec * MivWeightOrderdp(intvec *ivstart)
matrix mpNew(int r, int c)
create a r x c zero-matrix
CanonicalForm n_convSingNFactoryN(number n, BOOLEAN setChar, const coeffs r)
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether)
ideal MwalkInitialForm(ideal G, intvec *ivw)
int posInT13(const TSet set, const int length, LObject &p)
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
void n_Print(number &a, const coeffs r)
print a number (BEWARE of string buffers!) mostly for debugging
intvec * MPertVectors(ideal G, intvec *ivtarget, int pdeg)
poly plain_spoly(poly f, poly g)
CanonicalForm convSingPFactoryP(poly p, const ring r)
matrix mp_InitI(int r, int c, int v, const ring R)
make it a v * unit matrix
poly nc_rat_CreateSpoly(poly pp1, poly pp2, int ishift, const ring r)
poly ringRedNF(poly f, ideal G, ring r)
ideal MAltwalk1(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight)
intvec * MivMatrixOrderlp(int nV)
void * dynl_open(char *filename)
STATIC_VAR int nfMinPoly[16]
#define IMATELEM(M, I, J)
static char * feResource(feResourceConfig config, int warn)
static poly p_Add_q(poly p, poly q, const ring r)
BOOLEAN newstruct_set_proc(const char *bbname, const char *func, int args, procinfov pr)
bool complexNearZero(gmp_complex *c, int digits)
intvec * MkInterRedNextWeight(intvec *iva, intvec *ivb, ideal G)
int probIrredTest(const CanonicalForm &F, double error)
given some error probIrredTest detects irreducibility or reducibility of F with confidence level 1-er...
int pcvDim(int d0, int d1)
void StringSetS(const char *st)
BOOLEAN spectrumProc(leftv result, leftv first)
void pPrintDivisbleByStat()
ideal Approx_Step(ideal L)
Ann: ???
static const int SW_USE_EZGCD_P
set to 1 to use EZGCD over F_q
static CanonicalForm bound(const CFMatrix &M)
unsigned long * computeMinimalPolynomial(unsigned long **matrix, unsigned n, unsigned long p)
ideal id_Vec2Ideal(poly vec, const ring R)
void omMarkAsStaticAddr(void *addr)
poly pcvP2CV(poly p, int d0, int d1)
void rSetSyzComp(int k, const ring r)
VAR int(* test_PosInT)(const TSet T, const int tl, LObject &h)
void Werror(const char *fmt,...)
ideal idXXX(ideal h1, int k)
static short scaLastAltVar(ring r)
BOOLEAN assumeStdFlag(leftv h)
void * dynl_sym(void *handle, const char *symbol)
void WerrorS(const char *s)
matrix singntl_LLL(matrix m, const ring s)
int posInT1(const TSet set, const int length, LObject &p)
intvec * MPertNextWeight(intvec *iva, ideal G, int deg)
int simpleipc_cmd(char *cmd, int id, int v)
#define BIMATELEM(M, I, J)
lists pcvLAddL(lists l1, lists l2)
lists evEigenvals(matrix M)
ideal Mrwalk(ideal Go, intvec *orig_M, intvec *target_M, int weight_rad, int pert_deg, int reduction, int printout)
const char feNotImplemented[]
EXTERN_VAR struct fe_option feOptSpec[]
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 ....
matrix evHessenberg(matrix M)
static void p_Setm(poly p, const ring r)
const Variable & v
< [in] a sqrfree bivariate poly
matrix nc_PrintMat(int a, int b, ring r, int metric)
returns matrix with the info on noncomm multiplication
INLINE_THIS void Init(int l=0)
intvec * MivWeightOrderlp(intvec *ivstart)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
const CanonicalForm int s
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 (...
intvec * Mfpertvector(ideal G, intvec *ivtarget)
static void * feOptValue(feOptIndex opt)
#define pCopy(p)
return a copy of the poly
poly ringNF(poly f, ideal G, ring r)
static const int SW_USE_QGCD
set to 1 to use Encarnacion GCD over Q(a)
int posInT15(const TSet set, const int length, LObject &p)
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
int posInT0(const TSet, const int length, LObject &)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
poly fglmLinearCombination(ideal source, poly monset)
ideal Mfrwalk(ideal G, intvec *ivstart, intvec *ivtarget, int weight_rad, int reduction, int printout)
static bool rIsSCA(const ring r)
static BOOLEAN rField_is_long_C(const ring r)
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
void newstructShow(newstruct_desc d)
ideal singclap_absFactorize(poly f, ideal &mipos, intvec **exps, int &numFactors, const ring r)
int posInT11(const TSet set, const int length, LObject &p)
poly unifastmult(poly f, poly g, ring r)
ring rSubring(ring org_ring, sleftv *rv)
gmp_complex numbers based on
char * singclap_neworder(ideal I, const ring r)
ideal sm_UnFlatten(ideal a, int col, const ring R)
ideal id_TensorModuleMult(const int m, const ideal M, const ring rRing)
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...