230{
232 {
233 const char *sys_cmd=(
char *)(args->
Data());
235
236
237
238 if (strcmp(sys_cmd, "nblocks") == 0)
239 {
240 ring r;
242 {
244 {
246 }
247 else
248 {
251 }
252 }
253 else
254 {
256 {
259 }
260 r = (ring)
h->Data();
261 }
265 }
266
267 if(strcmp(sys_cmd,"version")==0)
268 {
272 }
273 else
274
275 if(strcmp(sys_cmd,"alarm")==0)
276 {
278 {
279
280
281
282 struct itimerval t,o;
283 memset(&t,0,sizeof(t));
284 t.it_value.tv_sec =(unsigned)((
unsigned long)
h->Data());
285 setitimer(ITIMER_VIRTUAL,&t,&o);
287 }
288 else
290 }
291 else
292
293 if(strcmp(sys_cmd,"content")==0)
294 {
296 {
298 poly
p=(poly)
h->CopyD();
300 {
303 }
307 }
309 }
310 else
311
312 if(strcmp(sys_cmd,"cpu")==0)
313 {
314 long cpu=1;
315 #ifdef _SC_NPROCESSORS_ONLN
316 cpu=sysconf(_SC_NPROCESSORS_ONLN);
317 #elif defined(_SC_NPROCESSORS_CONF)
318 cpu=sysconf(_SC_NPROCESSORS_CONF);
319 #endif
320 res->data=(
void *)cpu;
323 }
324 else
325
326 if(strcmp(sys_cmd,"executable")==0)
327 {
329 {
336 }
338 }
339 else
340
341 if(strcmp(sys_cmd,"flatten")==0)
342 {
344 {
348 }
349 else
351 }
352 else
353
354 if(strcmp(sys_cmd,"unflatten")==0)
355 {
358 {
362 }
364 }
365 else
366
367 if(strcmp(sys_cmd,"neworder")==0)
368 {
370 {
374 }
375 else
377 }
378 else
379
380
381 if(strcmp(sys_cmd,"nc_hilb") == 0)
382 {
387 int trunDegHs=0;
389 i = (ideal)
h->Data();
390 else
391 {
392 WerrorS(
"nc_Hilb:ideal expected");
394 }
397 lV = (int)(
long)
h->Data();
398 else
399 {
400 WerrorS(
"nc_Hilb:int expected");
402 }
405 {
406 if((
int)(
long)
h->Data() == 1)
408 else if((
int)(
long)
h->Data() == 2)
413 trunDegHs = (int)(
long)
h->Data();
415 }
417 {
418 WerrorS(
"nc_Hilb:int 1,2, total degree for the truncation, and a string for printing the details are expected");
420 }
421
424 }
425 else
426
427 if(strcmp(sys_cmd,"verifyGB")==0)
428 {
430 {
431 WerrorS(
"system(\"verifyGB\",<ideal>,..) expects a commutative ring");
433 }
435 {
436 WerrorS(
"expected system(\"verifyGB\",<ideal>,..)");
438 }
439 ideal F=(ideal)
h->Data();
441 {
442 #ifdef HAVE_VSPACE
444 if (cpus>1)
446 else
447 #endif
449 }
453 }
454 else
455
456 if(strcmp(sys_cmd,"rcolon") == 0)
457 {
460 {
461 ideal
i = (ideal)
h->Data();
463 poly
w=(poly)
h->Data();
465 int lV = (int)(
long)
h->Data();
469 }
470 else
472 }
473 else
474
475
476 if(strcmp(sys_cmd,"sh")==0)
477 {
479 {
480 WerrorS(
"shell execution is disallowed in restricted mode");
482 }
486 res->data = (
void*)(
long)
system((
char*)(
h->Data()));
487 else
490 }
491 else
492
493 if(strcmp(sys_cmd,"reduce_bound")==0)
494 {
502 {
503 p = (poly)
h->CopyD();
504 }
506 {
507 pid = (ideal)
h->CopyD();
508 }
510
512 ideal q = (ideal)
h->next->CopyD();
513 int bound = (int)(
long)
h->next->next->Data();
516 else
519 }
520 else
521
522 if(strcmp(sys_cmd,"uname")==0)
523 {
527 }
528 else
529
530 if(strcmp(sys_cmd,"with")==0)
531 {
533 {
537 }
539 {
540 #define TEST_FOR(A) if(strcmp(s,A)==0) res->data=(void *)1; else
541 char *
s=(
char *)
h->Data();
543 #ifdef HAVE_DBM
545 #endif
546 #ifdef HAVE_DLD
548 #endif
549
550
551 #ifdef HAVE_READLINE
553 #endif
554 #ifdef TEST_MAC_ORDER
556 #endif
557
559 #ifdef HAVE_DYNAMIC_LOADING
561 #endif
562 #ifdef HAVE_EIGENVAL
564 #endif
565 #ifdef HAVE_GMS
567 #endif
568 #ifdef OM_NDEBUG
570 #endif
571 #ifdef SING_NDEBUG
573 #endif
574 {};
576 #undef TEST_FOR
577 }
579 }
580 else
581
582 if (strcmp(sys_cmd,"browsers")==0)
583 {
589 }
590 else
591
592 if (strcmp(sys_cmd,"pid")==0)
593 {
595 res->data=(
void *)(
long) getpid();
597 }
598 else
599
600 if (strcmp(sys_cmd,"getenv")==0)
601 {
603 {
605 const char *r=
getenv((
char *)
h->Data());
609 }
610 else
611 {
614 }
615 }
616 else
617
618 if (strcmp(sys_cmd,"setenv")==0)
619 {
620 #ifdef HAVE_SETENV
623 {
625 setenv((
char *)
h->Data(), (
char *)
h->next->Data(), 1);
629 }
630 else
631 {
633 }
634 #else
635 WerrorS(
"setenv not supported on this platform");
637 #endif
638 }
639 else
640
641 if (strcmp(sys_cmd, "Singular") == 0)
642 {
648 }
649 else
650 if (strcmp(sys_cmd, "SingularLib") == 0)
651 {
657 }
658 else
659 if (strcmp(sys_cmd, "SingularBin") == 0)
660 {
663 if (r ==
NULL) r=
"/usr/local";
665
666 #define SINGULAR_PROCS_DIR "/libexec/singular/MOD"
669 if ((strstr(r,
".libs/..")==
NULL)
670 &&(strstr(r,
"Singular/..")==
NULL))
671 {
674 if (access(
s,X_OK)==0)
675 {
677 }
678 else
679 {
680
681 strcpy(
s,LIBEXEC_DIR);
682 if (access(
s,X_OK)==0)
683 {
685 }
686 else
687 {
689 }
690 }
691 }
692 else
693 {
696 {
698 }
699 else
700 {
703 }
704 }
705 res->data = (
void*)
s;
707 }
708 else
709
710 if (strstr(sys_cmd, "--") == sys_cmd)
711 {
712 if (strcmp(sys_cmd, "--") == 0)
713 {
716 }
719 {
720 Werror(
"Unknown option %s", sys_cmd);
721 WerrorS(
"Use 'system(\"--\");' for listing of available options");
723 }
724
725
727 {
730 }
732 {
734 {
736 const char *r=(
const char*)
feOptSpec[opt].value;
739 }
740 else
741 {
744 }
746 }
749 {
750 WerrorS(
"Need string or int argument to set option value");
752 }
753 const char* errormsg;
755 {
757 {
758 Werror(
"Need string argument to set value of option %s", sys_cmd);
760 }
762 if (errormsg !=
NULL)
763 Werror(
"Option '--%s=%d' %s", sys_cmd, (
int) ((
long)
h->Data()), errormsg);
764 }
765 else
766 {
768 if (errormsg !=
NULL)
769 Werror(
"Option '--%s=%s' %s", sys_cmd, (
char*)
h->Data(), errormsg);
770 }
773 }
774 else
775
776 if (strcmp(sys_cmd,"HC")==0)
777 {
781 }
782 else
783
784 if(strcmp(sys_cmd,"random")==0)
785 {
788 {
790 {
795 }
796 else
797 {
799 }
800 }
804 }
805 else
806
807 if (strcmp(sys_cmd,"denom_list")==0)
808 {
813 }
814 else
815
816 if(strcmp(sys_cmd,"complexNearZero")==0)
817 {
820 {
822 {
823 WerrorS(
"unsupported ground field!");
825 }
826 else
827 {
830 (int)((
long)(
h->next->Data())));
832 }
833 }
834 else
835 {
837 }
838 }
839 else
840
841 if(strcmp(sys_cmd,"getPrecDigits")==0)
842 {
845 {
846 WerrorS(
"unsupported ground field!");
848 }
851
852
854 }
855 else
856
857 if(strcmp(sys_cmd, "lduDecomp")==0)
858 {
861 {
864 poly
l; poly u; poly prodLU;
865 lduDecomp(aMat, pMat, lMat, dMat, uMat,
l, u, prodLU);
876 res->data = (
char *)L;
878 }
879 else
880 {
882 }
883 }
884 else
885
886 if(strcmp(sys_cmd, "lduSolve")==0)
887 {
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
908 {
910 }
912 {
915 }
920 poly
l = (poly)
h->next->next->next->next->Data();
921 poly u = (poly)
h->next->next->next->next->next->Data();
922 poly lTimesU = (poly)
h->next->next->next->next->next->next->Data();
923 matrix bVec = (
matrix)
h->next->next->next->next->next->next->next->Data();
926 {
927 Werror(
"first matrix (%d x %d) is not quadratic",
930 }
932 {
933 Werror(
"second matrix (%d x %d) is not quadratic",
936 }
938 {
939 Werror(
"third matrix (%d x %d) is not quadratic",
942 }
944 {
945 Werror(
"third matrix (%d x %d) and fourth matrix (%d x %d) %s",
947 "do not t");
949 }
951 {
952 Werror(
"fourth matrix (%d x %d) and vector (%d x 1) do not fit",
955 }
957 bVec, xVec, homogSolSpace);
958
959
960
962 if (solvable)
963 {
968 }
969 else
970 {
973 }
977 }
978 else
979
980 if (strcmp(sys_cmd, "shared") == 0)
981 {
982 #ifndef SI_COUNTEDREF_AUTOLOAD
985 #endif
988 }
989 else if (strcmp(sys_cmd, "reference") == 0)
990 {
991 #ifndef SI_COUNTEDREF_AUTOLOAD
994 #endif
997 }
998 else
999
1000#ifdef HAVE_SIMPLEIPC
1001 if (strcmp(sys_cmd,"semaphore")==0)
1002 {
1004 {
1006 if ((
h->next->next!=
NULL)&& (
h->next->next->Typ()==
INT_CMD))
1007 v=(int)(
long)
h->next->next->Data();
1011 }
1012 else
1013 {
1014 WerrorS(
"Usage: system(\"semaphore\",<cmd>,int)");
1016 }
1017 }
1018 else
1019#endif
1020
1021 if (strcmp(sys_cmd,"reserve")==0)
1022 {
1026 {
1029 res->data=(
void*)(
long)
p;
1031 }
1033 }
1034 else
1035
1036 if (strcmp(sys_cmd,"reservedLink")==0)
1037 {
1042 }
1043 else
1044
1045 if (strcmp(sys_cmd,"install")==0)
1046 {
1049 {
1051 (
int)(
long)
h->next->next->next->Data(),
1053 }
1055 }
1056 else
1057
1058 if (strcmp(sys_cmd,"newstruct")==0)
1059 {
1062 {
1063 int id=0;
1064 char *n=(
char*)
h->Data();
1066 if (id>0)
1067 {
1070 {
1071 newstruct_desc desc=(newstruct_desc)bb->data;
1074 }
1075 else Werror(
"'%s' is not a newstruct",n);
1076 }
1077 else Werror(
"'%s' is not a blackbox object",n);
1078 }
1080 }
1081 else
1082
1083 if (strcmp(sys_cmd,"blackbox")==0)
1084 {
1087 }
1088 else
1089
1090 #if defined(HAVE_FLINT) || defined(HAVE_NTL)
1091 if (strcmp(sys_cmd, "absFact") == 0)
1092 {
1097 {
1101 int n= 0;
1108 l->m[0].data=(
void *)
f;
1110 l->m[1].data=(
void *)
v;
1112 l->m[2].data=(
void*) mipos;
1114 l->m[3].data=(
void*) (
long) n;
1115 res->data=(
void *)
l;
1117 }
1119 }
1120 else
1121 #endif
1122
1123 #ifdef HAVE_NTL
1124 if (strcmp(sys_cmd, "LLL") == 0)
1125 {
1127 {
1130 {
1133 }
1135 {
1138 }
1140 }
1142 }
1143 else
1144 #endif
1145
1146 #ifdef HAVE_FLINT
1147 #if __FLINT_RELEASE >= 20500
1148 if (strcmp(sys_cmd, "LLL_Flint") == 0)
1149 {
1151 {
1153 {
1156 {
1159 }
1161 {
1164 }
1166 }
1168 {
1169 WerrorS(
"matrix,int or bigint,int expected");
1171 }
1173 {
1174 if(((
int)((
long)(
h->next->Data())) != 0) && (
int)((
long)(
h->next->Data()) != 1))
1175 {
1176 WerrorS(
"int is different from 0, 1");
1178 }
1180 if((
long)(
h->next->Data()) == 0)
1181 {
1183 {
1186 }
1188 {
1191 }
1193 }
1194
1195 if((
long)(
h->next->Data()) == 1)
1196 {
1198 {
1201 for(
int i = 1;
i<=
m->rows();
i++)
1202 {
1205 }
1214 }
1216 {
1219 for(
int i = 1;
i<=
m->rows();
i++)
1229 }
1231 }
1232 }
1233
1234 }
1236 }
1237 else
1238 #endif
1239 #endif
1240
1241 #ifdef HAVE_FLINT
1242 if(strcmp(sys_cmd,"rref")==0)
1243 {
1246 {
1251 }
1252 else
1253 {
1254 WerrorS(
"expected system(\"rref\",<matrix>)");
1256 }
1257 }
1258 else
1259 #endif
1260
1261 #ifdef HAVE_PCV
1262 if(strcmp(sys_cmd,"pcvLAddL")==0)
1263 {
1265 }
1266 else
1267 if(strcmp(sys_cmd,"pcvPMulL")==0)
1268 {
1270 }
1271 else
1272 if(strcmp(sys_cmd,"pcvMinDeg")==0)
1273 {
1275 }
1276 else
1277 if(strcmp(sys_cmd,"pcvP2CV")==0)
1278 {
1280 }
1281 else
1282 if(strcmp(sys_cmd,"pcvCV2P")==0)
1283 {
1285 }
1286 else
1287 if(strcmp(sys_cmd,"pcvDim")==0)
1288 {
1290 }
1291 else
1292 if(strcmp(sys_cmd,"pcvBasis")==0)
1293 {
1295 }
1296 else
1297 #endif
1298
1299 #ifdef HAVE_EIGENVAL
1300 if(strcmp(sys_cmd,"hessenberg")==0)
1301 {
1303 }
1304 else
1305 #endif
1306
1307 #ifdef HAVE_EIGENVAL
1308 if(strcmp(sys_cmd,"eigenvals")==0)
1309 {
1311 }
1312 else
1313 #endif
1314
1315 #ifdef HAVE_EIGENVAL
1316 if(strcmp(sys_cmd,"rowelim")==0)
1317 {
1319 }
1320 else
1321 #endif
1322
1323 #ifdef HAVE_EIGENVAL
1324 if(strcmp(sys_cmd,"rowcolswap")==0)
1325 {
1327 }
1328 else
1329 #endif
1330
1331 #ifdef HAVE_GMS
1332 if(strcmp(sys_cmd,"gmsnf")==0)
1333 {
1335 }
1336 else
1337 #endif
1338
1339 if(strcmp(sys_cmd,"contributors") == 0)
1340 {
1343 "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");
1345 }
1346 else
1347
1348 #ifdef HAVE_SPECTRUM
1349 if(strcmp(sys_cmd,"spectrum") == 0)
1350 {
1352 {
1355 }
1359 {
1362 }
1363 if(((
long)
h->next->Data())==1L)
1366 }
1367 else
1368
1369 if(strcmp(sys_cmd,"semic") == 0)
1370 {
1374 {
1375 if (
h->next->next==
NULL)
1377 else if (
h->next->next->Typ()==
INT_CMD)
1379 }
1381 }
1382 else
1383
1384 if(strcmp(sys_cmd,"spadd") == 0)
1385 {
1388 {
1390 }
1392 }
1393 else
1394
1395 if(strcmp(sys_cmd,"spmul") == 0)
1396 {
1399 {
1401 }
1403 }
1404 else
1405 #endif
1406
1407 #define HAVE_SHEAFCOH_TRICKS 1
1408
1409 #ifdef HAVE_SHEAFCOH_TRICKS
1410 if(strcmp(sys_cmd,"tensorModuleMult")==0)
1411 {
1413
1415 {
1416 int m = (int)( (
long)
h->Data() );
1417 ideal
M = (ideal)
h->next->Data();
1421 }
1423 }
1424 else
1425 #endif
1426
1427 #ifdef HAVE_PLURAL
1428 if (strcmp(sys_cmd, "twostd") == 0)
1429 {
1430 ideal I;
1432 {
1433 I=(ideal)
h->CopyD();
1439 }
1442 }
1443 else
1444 #endif
1445
1446 #ifdef HAVE_PLURAL
1447 if (strcmp(sys_cmd, "bracket") == 0)
1448 {
1451 {
1452 poly
p=(poly)
h->CopyD();
1454 poly q=(poly)
h->Data();
1458 }
1460 }
1461 else
1462 #endif
1463
1464 #ifdef HAVE_PLURAL
1465 if (strcmp(sys_cmd, "env")==0)
1466 {
1468 {
1469 ring r = (ring)
h->Data();
1473 }
1474 else
1475 {
1476 WerrorS(
"`system(\"env\",<ring>)` expected");
1478 }
1479 }
1480 else
1481 #endif
1482
1483 #ifdef HAVE_PLURAL
1484 if (strcmp(sys_cmd, "opp")==0)
1485 {
1487 {
1488 ring r=(ring)
h->Data();
1492 }
1493 else
1494 {
1495 WerrorS(
"`system(\"opp\",<ring>)` expected");
1497 }
1498 }
1499 else
1500 #endif
1501
1502 #ifdef HAVE_PLURAL
1503 if (strcmp(sys_cmd, "oppose")==0)
1504 {
1506 && (
h->next!=
NULL))
1507 {
1508 ring Rop = (ring)
h->Data();
1512 {
1517 }
1518 }
1519 else
1520 {
1521 WerrorS(
"`system(\"oppose\",<ring>,<poly>)` expected");
1523 }
1524 }
1525 else
1526 #endif
1527
1528
1529 #ifdef HAVE_WALK
1530 #ifdef OWNW
1531 if (strcmp(sys_cmd, "walkNextWeight") == 0)
1532 {
1537 {
1538 Werror(
"system(\"walkNextWeight\" ...) intvecs not of length %d\n",
1541 }
1542 res->data = (
void*) walkNextWeight(((
intvec*)
h->Data()),
1544 (ideal)
h->next->next->Data());
1545 if (
res->data ==
NULL ||
res->data == (
void*) 1L)
1546 {
1548 }
1549 else
1550 {
1552 }
1554 }
1555 else
1556 #endif
1557 #endif
1558
1559 #ifdef HAVE_WALK
1560 #ifdef OWNW
1561 if (strcmp(sys_cmd, "walkInitials") == 0)
1562 {
1564 {
1565 WerrorS(
"system(\"walkInitials\", ideal) expected");
1567 }
1568 res->data = (
void*) walkInitials((ideal)
h->Data());
1571 }
1572 else
1573 #endif
1574 #endif
1575
1576 #ifdef HAVE_WALK
1577 #ifdef WAIV
1578 if (strcmp(sys_cmd, "walkAddIntVec") == 0)
1579 {
1584 res->data = (
intvec*) walkAddIntVec(arg1, arg2);
1587 }
1588 else
1589 #endif
1590 #endif
1591
1592 #ifdef HAVE_WALK
1593 #ifdef MwaklNextWeight
1594 if (strcmp(sys_cmd, "MwalkNextWeight") == 0)
1595 {
1600 {
1601 Werror(
"system(\"MwalkNextWeight\" ...) intvecs not of length %d\n",
1604 }
1607 ideal arg3 = (ideal)
h->next->next->Data();
1612 }
1613 else
1614 #endif
1615 #endif
1616
1617 #ifdef HAVE_WALK
1618 if(strcmp(sys_cmd, "Mivdp") == 0)
1619 {
1621 {
1622 WerrorS(
"system(\"Mivdp\", int) expected");
1624 }
1625 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1626 {
1627 Werror(
"system(\"Mivdp\" ...) intvecs not of length %d\n",
1630 }
1631 int arg1 = (int) ((
long)(
h->Data()));
1636 }
1637 else
1638 #endif
1639
1640 #ifdef HAVE_WALK
1641 if(strcmp(sys_cmd, "Mivlp") == 0)
1642 {
1644 {
1645 WerrorS(
"system(\"Mivlp\", int) expected");
1647 }
1648 if ((
int) ((
long)(
h->Data())) !=
currRing->N)
1649 {
1650 Werror(
"system(\"Mivlp\" ...) intvecs not of length %d\n",
1653 }
1654 int arg1 = (int) ((
long)(
h->Data()));
1659 }
1660 else
1661 #endif
1662
1663 #ifdef HAVE_WALK
1664 #ifdef MpDiv
1665 if(strcmp(sys_cmd, "MpDiv") == 0)
1666 {
1669 poly arg1 = (poly)
h->Data();
1670 poly arg2 = (poly)
h->next->Data();
1671 poly
result = MpDiv(arg1, arg2);
1675 }
1676 else
1677 #endif
1678 #endif
1679
1680 #ifdef HAVE_WALK
1681 #ifdef MpMult
1682 if(strcmp(sys_cmd, "MpMult") == 0)
1683 {
1686 poly arg1 = (poly)
h->Data();
1687 poly arg2 = (poly)
h->next->Data();
1688 poly
result = MpMult(arg1, arg2);
1692 }
1693 else
1694 #endif
1695 #endif
1696
1697 #ifdef HAVE_WALK
1698 if (strcmp(sys_cmd, "MivSame") == 0)
1699 {
1702
1703
1704
1705
1706
1707
1708
1709
1710
1713
1714
1715
1716
1717
1719 res->data = (
void*)(
long)
MivSame(arg1, arg2);
1721 }
1722 else
1723 #endif
1724
1725 #ifdef HAVE_WALK
1726 if (strcmp(sys_cmd, "M3ivSame") == 0)
1727 {
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1743
1744
1745
1746
1747
1749 res->data = (
void*)(
long)
M3ivSame(arg1, arg2, arg3);
1751 }
1752 else
1753 #endif
1754
1755 #ifdef HAVE_WALK
1756 if(strcmp(sys_cmd, "MwalkInitialForm") == 0)
1757 {
1761 {
1762 Werror(
"system \"MwalkInitialForm\"...) intvec not of length %d\n",
1765 }
1766 ideal
id = (ideal)
h->Data();
1772 }
1773 else
1774 #endif
1775
1776 #ifdef HAVE_WALK
1777
1778 if(strcmp(sys_cmd, "MivMatrixOrder") == 0)
1779 {
1781 {
1782 WerrorS(
"system(\"MivMatrixOrder\",intvec) expected");
1784 }
1790 }
1791 else
1792 #endif
1793
1794 #ifdef HAVE_WALK
1795 if(strcmp(sys_cmd, "MivMatrixOrderdp") == 0)
1796 {
1798 {
1799 WerrorS(
"system(\"MivMatrixOrderdp\",intvec) expected");
1801 }
1802 int arg1 = (int) ((
long)(
h->Data()));
1807 }
1808 else
1809 #endif
1810
1811 #ifdef HAVE_WALK
1812 if(strcmp(sys_cmd, "MPertVectors") == 0)
1813 {
1816 ideal arg1 = (ideal)
h->Data();
1818 int arg3 = (int) ((
long)(
h->next->next->Data()));
1823 }
1824 else
1825 #endif
1826
1827 #ifdef HAVE_WALK
1828 if(strcmp(sys_cmd, "MPertVectorslp") == 0)
1829 {
1832 ideal arg1 = (ideal)
h->Data();
1834 int arg3 = (int) ((
long)(
h->next->next->Data()));
1839 }
1840 else
1841 #endif
1842
1843 #ifdef HAVE_WALK
1844 if(strcmp(sys_cmd, "Mfpertvector") == 0)
1845 {
1848 ideal arg1 = (ideal)
h->Data();
1854 }
1855 else
1856 #endif
1857
1858 #ifdef HAVE_WALK
1859 if(strcmp(sys_cmd, "MivUnit") == 0)
1860 {
1863 int arg1 = (int) ((
long)(
h->Data()));
1868 }
1869 else
1870 #endif
1871
1872 #ifdef HAVE_WALK
1873 if(strcmp(sys_cmd, "MivWeightOrderlp") == 0)
1874 {
1882 }
1883 else
1884 #endif
1885
1886 #ifdef HAVE_WALK
1887 if(strcmp(sys_cmd, "MivWeightOrderdp") == 0)
1888 {
1890 {
1891 WerrorS(
"system(\"MivWeightOrderdp\",intvec) expected");
1893 }
1895
1900 }
1901 else
1902 #endif
1903
1904 #ifdef HAVE_WALK
1905 if(strcmp(sys_cmd, "MivMatrixOrderlp") == 0)
1906 {
1908 {
1909 WerrorS(
"system(\"MivMatrixOrderlp\",int) expected");
1911 }
1912 int arg1 = (int) ((
long)(
h->Data()));
1917 }
1918 else
1919 #endif
1920
1921 #ifdef HAVE_WALK
1922 if (strcmp(sys_cmd, "MkInterRedNextWeight") == 0)
1923 {
1928 {
1929 Werror(
"system(\"MkInterRedNextWeight\" ...) intvecs not of length %d\n",
1932 }
1935 ideal arg3 = (ideal)
h->next->next->Data();
1940 }
1941 else
1942 #endif
1943
1944 #ifdef HAVE_WALK
1945 #ifdef MPertNextWeight
1946 if (strcmp(sys_cmd, "MPertNextWeight") == 0)
1947 {
1951 {
1952 Werror(
"system(\"MPertNextWeight\" ...) intvecs not of length %d\n",
1955 }
1957 ideal arg2 = (ideal)
h->next->Data();
1958 int arg3 = (int)
h->next->next->Data();
1963 }
1964 else
1965 #endif
1966 #endif
1967
1968 #ifdef HAVE_WALK
1969 #ifdef Mivperttarget
1970 if (strcmp(sys_cmd, "Mivperttarget") == 0)
1971 {
1974 ideal arg1 = (ideal)
h->Data();
1975 int arg2 = (int)
h->next->Data();
1980 }
1981 else
1982 #endif
1983 #endif
1984
1985 #ifdef HAVE_WALK
1986 if (strcmp(sys_cmd, "Mwalk") == 0)
1987 {
1992 {
1993 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d\n",
1996 }
1997 ideal arg1 = (ideal)
h->CopyD();
2000 ring arg4 = (ring)
h->next->next->next->Data();
2001 int arg5 = (int) (
long)
h->next->next->next->next->Data();
2002 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
2003 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2007 }
2008 else
2009 #endif
2010
2011 #ifdef HAVE_WALK
2012 #ifdef MPWALK_ORIG
2013 if (strcmp(sys_cmd, "Mwalk") == 0)
2014 {
2021 {
2022 Werror(
"system(\"Mwalk\" ...) intvecs not of length %d or %d\n",
2025 }
2026 ideal arg1 = (ideal)
h->Data();
2029 ring arg4 = (ring)
h->next->next->next->Data();
2030 ideal
result = (ideal)
Mwalk(arg1, arg2, arg3,arg4);
2034 }
2035 else
2036 #else
2037 if (strcmp(sys_cmd, "Mpwalk") == 0)
2038 {
2043 {
2044 Werror(
"system(\"Mpwalk\" ...) intvecs not of length %d\n",
currRing->N);
2046 }
2047 ideal arg1 = (ideal)
h->Data();
2048 int arg2 = (int) (
long)
h->next->Data();
2049 int arg3 = (int) (
long)
h->next->next->Data();
2052 int arg6 = (int) (
long)
h->next->next->next->next->next->Data();
2053 int arg7 = (int) (
long)
h->next->next->next->next->next->next->Data();
2054 int arg8 = (int) (
long)
h->next->next->next->next->next->next->next->Data();
2055 ideal
result = (ideal)
Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
2059 }
2060 else
2061 #endif
2062 #endif
2063
2064 #ifdef HAVE_WALK
2065 if (strcmp(sys_cmd, "Mrwalk") == 0)
2066 {
2073 {
2074 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2077 }
2078 ideal arg1 = (ideal)
h->Data();
2081 int arg4 = (int)(
long)
h->next->next->next->Data();
2082 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2083 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2084 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
2085 ideal
result = (ideal)
Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
2089 }
2090 else
2091 #endif
2092
2093 #ifdef HAVE_WALK
2094 if (strcmp(sys_cmd, "MAltwalk1") == 0)
2095 {
2100 {
2101 Werror(
"system(\"MAltwalk1\" ...) intvecs not of length %d\n",
2104 }
2105 ideal arg1 = (ideal)
h->Data();
2106 int arg2 = (int) ((
long)(
h->next->Data()));
2107 int arg3 = (int) ((
long)(
h->next->next->Data()));
2114 }
2115 else
2116 #endif
2117
2118 #ifdef HAVE_WALK
2119 #ifdef MFWALK_ALT
2120 if (strcmp(sys_cmd, "Mfwalk_alt") == 0)
2121 {
2126 {
2127 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2130 }
2131 ideal arg1 = (ideal)
h->Data();
2134 int arg4 = (int)
h->next->next->next->Data();
2135 ideal
result = (ideal) Mfwalk_alt(arg1, arg2, arg3, arg4);
2139 }
2140 else
2141 #endif
2142 #endif
2143
2144 #ifdef HAVE_WALK
2145 if (strcmp(sys_cmd, "Mfwalk") == 0)
2146 {
2151 {
2152 Werror(
"system(\"Mfwalk\" ...) intvecs not of length %d\n",
2155 }
2156 ideal arg1 = (ideal)
h->Data();
2159 int arg4 = (int)(
long)
h->next->next->next->Data();
2160 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2161 ideal
result = (ideal)
Mfwalk(arg1, arg2, arg3, arg4, arg5);
2165 }
2166 else
2167 #endif
2168
2169 #ifdef HAVE_WALK
2170 if (strcmp(sys_cmd, "Mfrwalk") == 0)
2171 {
2174
2175
2176
2177
2178
2179
2180
2181
2186 {
2187 Werror(
"system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n",
2190 }
2191
2192 ideal arg1 = (ideal)
h->Data();
2195 int arg4 = (int)(
long)
h->next->next->next->Data();
2196 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2197 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2198 ideal
result = (ideal)
Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2202 }
2203 else
2204
2205 if (strcmp(sys_cmd, "Mprwalk") == 0)
2206 {
2213 {
2214 Werror(
"system(\"Mrwalk\" ...) intvecs not of length %d or %d\n",
2217 }
2218 ideal arg1 = (ideal)
h->Data();
2221 int arg4 = (int)(
long)
h->next->next->next->Data();
2222 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2223 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2224 int arg7 = (int)(
long)
h->next->next->next->next->next->next->Data();
2225 int arg8 = (int)(
long)
h->next->next->next->next->next->next->next->Data();
2226 int arg9 = (int)(
long)
h->next->next->next->next->next->next->next->next->Data();
2227 ideal
result = (ideal)
Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
2231 }
2232 else
2233 #endif
2234
2235 #ifdef HAVE_WALK
2236 #ifdef TRAN_Orig
2237 if (strcmp(sys_cmd, "TranMImprovwalk") == 0)
2238 {
2243 {
2244 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2247 }
2248 ideal arg1 = (ideal)
h->Data();
2255 }
2256 else
2257 #endif
2258 #endif
2259
2260 #ifdef HAVE_WALK
2261 if (strcmp(sys_cmd, "MAltwalk2") == 0)
2262 {
2267 {
2268 Werror(
"system(\"MAltwalk2\" ...) intvecs not of length %d\n",
2271 }
2272 ideal arg1 = (ideal)
h->Data();
2279 }
2280 else
2281 #endif
2282
2283 #ifdef HAVE_WALK
2284 if (strcmp(sys_cmd, "TranMImprovwalk") == 0)
2285 {
2290 {
2291 Werror(
"system(\"TranMImprovwalk\" ...) intvecs not of length %d\n",
2294 }
2295 ideal arg1 = (ideal)
h->Data();
2298 int arg4 = (int) ((
long)(
h->next->next->next->Data()));
2303 }
2304 else
2305 #endif
2306
2307 #if 0
2308 #ifdef HAVE_WALK
2309 if (strcmp(sys_cmd, "TranMrImprovwalk") == 0)
2310 {
2314 h->next->next->next ==
NULL ||
h->next->next->next->Typ() !=
INT_CMD ||
2315 h->next->next->next ==
NULL ||
h->next->next->next->next->Typ() !=
INT_CMD ||
2316 h->next->next->next ==
NULL ||
h->next->next->next->next->next->Typ() !=
INT_CMD)
2317 {
2318 WerrorS(
"system(\"TranMrImprovwalk\", ideal, intvec, intvec) expected");
2320 }
2323 {
2324 Werror(
"system(\"TranMrImprovwalk\" ...) intvecs not of length %d\n",
currRing->N);
2326 }
2327 ideal arg1 = (ideal)
h->Data();
2330 int arg4 = (int)(
long)
h->next->next->next->Data();
2331 int arg5 = (int)(
long)
h->next->next->next->next->Data();
2332 int arg6 = (int)(
long)
h->next->next->next->next->next->Data();
2333 ideal
result = (ideal) TranMrImprovwalk(arg1, arg2, arg3, arg4, arg5, arg6);
2337 }
2338 else
2339 #endif
2340 #endif
2341
2342 {
2343 #ifndef MAKE_DISTRIBUTION
2345 #else
2347 #endif
2348 }
2349 }
2351}
static int si_max(const int a, const int b)
#define BIMATELEM(M, I, J)
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
void printBlackboxTypes()
list all defined type (for debugging)
static CanonicalForm bound(const CFMatrix &M)
void factoryseed(int s)
random seed initializer
matrix singntl_LLL(matrix m, const ring s)
ideal singclap_absFactorize(poly f, ideal &mipos, intvec **exps, int &numFactors, const ring r)
char * singclap_neworder(ideal I, const ring r)
gmp_complex numbers based on
@ n_transExt
used for all transcendental extensions, i.e., the top-most extension in an extension tower is transce...
static FORCE_INLINE BOOLEAN nCoeff_is_Ring(const coeffs r)
static FORCE_INLINE n_coeffType getCoeffType(const coeffs r)
Returns the type of coeffs domain.
void countedref_reference_load()
Initialize blackbox types 'reference' and 'shared', or both.
void countedref_shared_load()
matrix evRowElim(matrix M, int i, int j, int k)
matrix evHessenberg(matrix M)
matrix evSwap(matrix M, int i, int j)
lists evEigenvals(matrix M)
feOptIndex feGetOptIndex(const char *name)
const char * feSetOptValue(feOptIndex opt, char *optarg)
EXTERN_VAR struct fe_option feOptSpec[]
static char * feResource(feResourceConfig config, int warn)
void feStringAppendBrowsers(int warn)
matrix singflint_rref(matrix m, const ring R)
bigintmat * singflint_LLL(bigintmat *A, bigintmat *T)
lists gmsNF(ideal p, ideal g, matrix B, int D, int K)
void HilbertSeries_OrbitData(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
ideal RightColonOperation(ideal S, poly w, int lV)
ideal id_TensorModuleMult(const int m, const ideal M, const ring rRing)
static BOOLEAN length(leftv result, leftv arg)
#define IMATELEM(M, I, J)
BOOLEAN spaddProc(leftv result, leftv first, leftv second)
BOOLEAN semicProc3(leftv res, leftv u, leftv v, leftv w)
BOOLEAN spectrumfProc(leftv result, leftv first)
BOOLEAN spmulProc(leftv result, leftv first, leftv second)
BOOLEAN spectrumProc(leftv result, leftv first)
BOOLEAN semicProc(leftv res, leftv u, leftv v)
poly kNFBound(ideal F, ideal Q, poly p, int bound, int syzComp, int lazyReduce)
BOOLEAN kVerify2(ideal F, ideal Q)
BOOLEAN kVerify1(ideal F, ideal Q)
poly pOppose(ring Rop_src, poly p, const ring Rop_dst)
opposes a vector p from Rop to currRing (dst!)
poly nc_p_Bracket_qq(poly p, const poly q, const ring r)
returns [p,q], destroys p
bool luSolveViaLDUDecomp(const matrix pMat, const matrix lMat, const matrix dMat, const matrix uMat, const poly l, const poly u, const poly lTimesU, const matrix bVec, matrix &xVec, matrix &H)
Solves the linear system A * x = b, where A is an (m x n)-matrix which is given by its LDU-decomposit...
void 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...
ideal sm_UnFlatten(ideal a, int col, const ring R)
ideal sm_Flatten(ideal a, const ring R)
EXTERN_VAR size_t gmp_output_digits
bool complexNearZero(gmp_complex *c, int digits)
ideal twostd(ideal I)
Compute two-sided GB:
void newstructShow(newstruct_desc d)
BOOLEAN newstruct_set_proc(const char *bbname, const char *func, int args, procinfov pr)
char * omFindExec(const char *name, char *exec)
void p_Content(poly ph, const ring r)
poly p_Cleardenom(poly p, const ring r)
poly pcvP2CV(poly p, int d0, int d1)
int pcvBasis(lists b, int i, poly m, int d, int n)
int pcvDim(int d0, int d1)
lists pcvPMulL(poly p, lists l1)
poly pcvCV2P(poly cv, int d0, int d1)
lists pcvLAddL(lists l1, lists l2)
void StringSetS(const char *st)
static int rBlocks(ring r)
static BOOLEAN rField_is_long_C(const ring r)
static BOOLEAN rIsNCRing(const ring r)
#define rField_is_Ring(R)
int simpleipc_cmd(char *cmd, int id, int v)
int ssiReservePort(int clients)
int M3ivSame(intvec *temp, intvec *u, intvec *v)
intvec * MivWeightOrderdp(intvec *ivstart)
ideal TranMImprovwalk(ideal G, intvec *curr_weight, intvec *target_tmp, int nP)
intvec * MivMatrixOrderdp(int nV)
ideal Mfwalk(ideal G, intvec *ivstart, intvec *ivtarget, int reduction, int printout)
intvec * MPertVectors(ideal G, intvec *ivtarget, int pdeg)
intvec * MivWeightOrderlp(intvec *ivstart)
ideal Mprwalk(ideal Go, intvec *orig_M, intvec *target_M, int weight_rad, int op_deg, int tp_deg, int nP, int reduction, int printout)
intvec * MivMatrixOrder(intvec *iv)
ideal MAltwalk2(ideal Go, intvec *curr_weight, intvec *target_weight)
ideal MAltwalk1(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight)
ideal Mrwalk(ideal Go, intvec *orig_M, intvec *target_M, int weight_rad, int pert_deg, int reduction, int printout)
ideal Mfrwalk(ideal G, intvec *ivstart, intvec *ivtarget, int weight_rad, int reduction, int printout)
ideal Mwalk(ideal Go, intvec *orig_M, intvec *target_M, ring baseRing, int reduction, int printout)
ideal Mpwalk(ideal Go, int op_deg, int tp_deg, intvec *curr_weight, intvec *target_weight, int nP, int reduction, int printout)
int MivSame(intvec *u, intvec *v)
ideal MwalkInitialForm(ideal G, intvec *ivw)
intvec * MivMatrixOrderlp(int nV)
intvec * Mfpertvector(ideal G, intvec *ivtarget)
intvec * MPertVectorslp(ideal G, intvec *ivtarget, int pdeg)
intvec * MkInterRedNextWeight(intvec *iva, intvec *ivb, ideal G)
intvec * MwalkNextWeight(intvec *curr_weight, intvec *target_weight, ideal G)
intvec * Mivperttarget(ideal G, int ndeg)
intvec * MPertNextWeight(intvec *iva, ideal G, int deg)