Changeset b849856 in git
- Timestamp:
- Dec 18, 2018, 4:17:32 PM (5 years ago)
- Branches:
- (u'spielwiese', 'd1b01e9d51ade4b46b745d3bada5c5f3696be3a8')
- Children:
- 921f32e8096a04479ffe856dbc19d6e5553acbf6
- Parents:
- c7231560b85e2e1683beb9629db0560ee8ca425518a3dfc149d105d7058f8c06ea4ad50eb59f0c94
- Files:
-
- 2 added
- 8 deleted
- 100 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
Makefile.am
rc723156 rb849856 1 1 ACLOCAL_AMFLAGS = -I m4 2 2 3 if ENABLE_OMALLOC 4 USE_OMALLOC = omalloc 5 else 6 USE_OMALLOC = xalloc 7 endif 8 9 SUBDIRS = resources $(USE_OMALLOC) factory \ 3 SUBDIRS = resources omalloc factory \ 10 4 libpolys gfanlib IntegerProgramming \ 11 5 kernel Singular \ -
Singular/LIB/fpadim.lib
r18a3df rb849856 132 132 "PURPOSE: Checks, if all the Assumptions are holding 133 133 " 134 {if ( attrib(basering,"isLetterplaceRing")==0) {ERROR("Basering is not a Letterplace ring!");}135 if (d > attrib(basering,"uptodeg")) {ERROR("Specified degree bound exceeds ring parameter!");}134 {if (!isFreeAlgebra(basering)) {ERROR("Basering is not a Letterplace ring!");} 135 if (d > lpDegBound(basering)) {ERROR("Specified degree bound exceeds ring parameter!");} 136 136 int i; 137 137 for (i = 1; i <= size(L); i++) 138 {if (entryViolation(L[i], attrib(basering,"isLetterplaceRing")))138 {if (entryViolation(L[i], lpBlockSize(basering))) 139 139 {ERROR("Not allowed monomial/intvec found!");} 140 140 } … … 907 907 // construct the Graph of normal words [Studzinski page 78] 908 908 // construct set of vertices 909 int v = attrib(basering,"isLetterplaceRing"); int d = attrib(basering,"uptodeg");909 int v = lpBlockSize(basering); int d = lpDegBound(basering); 910 910 ideal V; poly p,q,w; 911 911 ideal LG = lead(G); … … 1691 1691 EXAMPLE: example lpDHilbert; shows examples 1692 1692 " 1693 {int degbound = attrib(basering,"uptodeg");int n = attrib(basering, "isLetterplaceRing");1693 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 1694 1694 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1695 1695 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 1733 1733 EXAMPLE: example lpDHilbertSickle; shows examples 1734 1734 " 1735 {int degbound = attrib(basering,"uptodeg");int n = attrib(basering, "isLetterplaceRing");1735 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 1736 1736 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1737 1737 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 1778 1778 SEE ALSO: ncHilb_lib 1779 1779 " 1780 {int degbound = attrib(basering,"uptodeg");int n = attrib(basering, "isLetterplaceRing");1780 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 1781 1781 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1782 1782 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 1809 1809 EXAMPLE: example lpKDimCheck; shows examples 1810 1810 " 1811 {int n = attrib(basering,"isLetterplaceRing");1811 {int n = lpBlockSize(basering); 1812 1812 list L; 1813 1813 ideal R; … … 1844 1844 EXAMPLE: example lpKDim; shows examples 1845 1845 " 1846 {int degbound = attrib(basering, "uptodeg");int n = attrib(basering, "isLetterplaceRing");1846 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 1847 1847 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1848 1848 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 1948 1948 EXAMPLE: example lpSickle; shows examples 1949 1949 " 1950 {int degbound = attrib(basering,"uptodeg"); int n = attrib(basering, "isLetterplaceRing");1950 {int degbound = lpDegBound(basering); int n = lpBlockSize(basering); 1951 1951 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1952 1952 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 1988 1988 EXAMPLE: example lpSickleDim; shows examples 1989 1989 " 1990 {int degbound = attrib(basering,"uptodeg");int n = attrib(basering, "isLetterplaceRing");1990 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 1991 1991 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 1992 1992 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 2028 2028 EXAMPLE: example lpSickleHil; shows examples 2029 2029 " 2030 {int degbound = attrib(basering,"uptodeg");int n = attrib(basering, "isLetterplaceRing");2030 {int degbound = lpDegBound(basering);int n = lpBlockSize(basering); 2031 2031 if (size(#) > 0){if (typeof(#[1])=="int"){if (#[1] >= 0){degbound = #[1];}}} 2032 2032 if (size(#) > 1){if (typeof(#[1])=="int"){if (#[2] > 0){n = #[2];}}} … … 2075 2075 " 2076 2076 {int m,d,h,degbound; 2077 m = 1; d = 0; h = 0; degbound = attrib(basering,"uptodeg");2077 m = 1; d = 0; h = 0; degbound = lpDegBound(basering); 2078 2078 if (size(#) > 0) {if (typeof(#[1])=="int"){if (#[1] < 1) {m = 0;}}} 2079 2079 if (size(#) > 1) {if (typeof(#[1])=="int"){if (#[2] > 0) {d = 1;}}} … … 2082 2082 if (m == 1) 2083 2083 {if (d == 0) 2084 {if (h == 0) {return(lpSickle(G,degbound, attrib(basering,"isLetterplaceRing")));}2085 else {return(lpSickleHil(G,degbound, attrib(basering,"isLetterplaceRing")));}2084 {if (h == 0) {return(lpSickle(G,degbound,lpBlockSize(basering)));} 2085 else {return(lpSickleHil(G,degbound,lpBlockSize(basering)));} 2086 2086 } 2087 2087 else 2088 {if (h == 0) {return(lpSickleDim(G,degbound, attrib(basering,"isLetterplaceRing")));}2089 else {return(lpDHilbertSickle(G,degbound, attrib(basering,"isLetterplaceRing")));}2088 {if (h == 0) {return(lpSickleDim(G,degbound,lpBlockSize(basering)));} 2089 else {return(lpDHilbertSickle(G,degbound,lpBlockSize(basering)));} 2090 2090 } 2091 2091 } … … 2093 2093 {if (d == 0) 2094 2094 {if (h == 0) {ERROR("You request to do nothing, so relax and do so");} 2095 else {return(lpHilbert(G,degbound, attrib(basering,"isLetterplaceRing")));}2095 else {return(lpHilbert(G,degbound,lpBlockSize(basering)));} 2096 2096 } 2097 2097 else 2098 {if (h == 0) {return(lpKDim(G,degbound, attrib(basering,"isLetterplaceRing")));}2099 else {return(lpDHilbert(G,degbound, attrib(basering,"isLetterplaceRing")));}2098 {if (h == 0) {return(lpKDim(G,degbound,lpBlockSize(basering)));} 2099 else {return(lpDHilbert(G,degbound,lpBlockSize(basering)));} 2100 2100 } 2101 2101 } -
Singular/LIB/fpaprops.lib
r18a3df rb849856 91 91 // if longest word has length 1 we handle it as a special case 92 92 if (l == 1) { 93 int n = attrib(basering, "isLetterplaceRing"); // variable count93 int n = lpBlockSize(basering); // variable count 94 94 int k = size(G); 95 95 if (k == n) { // only the field left … … 746 746 ERROR("Ufnarovskij graph not implemented for l = 1"); 747 747 } 748 int lV = attrib(basering, "isLetterplaceRing");748 int lV = lpBlockSize(basering); 749 749 // TODO: what if l <= 0? 750 750 dbprint("computing standard words"); … … 836 836 return (words); // no standard words 837 837 } 838 int lV = attrib(basering, "isLetterplaceRing"); // variable count838 int lV = lpBlockSize(basering); // variable count 839 839 list prevWords = ivStandardWords(G, length - 1); 840 840 list words; … … 907 907 // if longest word has length 1, or G is the zero ideal, we handle it as a special case 908 908 if (l == 1 || size(G) == 0) { 909 int n = attrib(basering, "isLetterplaceRing"); // variable count909 int n = lpBlockSize(basering); // variable count 910 910 int k = size(G); 911 911 if (k == n) { // V = {1} no edges … … 1001 1001 // delete variables in LM(G1) from the ring 1002 1002 def save = basering; 1003 ringR = basering;1003 def R = basering; 1004 1004 if (size(G1) > 0) { 1005 1005 while (size(G1) > 0) { 1006 if (attrib(R, "isLetterplaceRing") > 1) { 1007 ring R = lpDelVar(lp2iv(G1[1])[1]); 1006 if (lpBlockSize(R) > 1) { 1007 def @R = R - string(G1[1]); 1008 R = @R; 1009 kill @R; 1010 setring R; 1011 /* ring R = lpDelVar(lp2iv(G1[1])[1]); // TODO replace with proper method */ 1008 1012 ideal G1 = imap(save,G1); 1009 1013 G1 = simplify(G1, 2); // remove zero generators … … 1067 1071 static proc imHasLoops(intmat A) { 1068 1072 int n = ncols(A); 1069 for (int i = 1; i < n; i++) {1073 for (int i = 1; i <= n; i++) { 1070 1074 if (A[i,i] == 1) { 1071 1075 return (1); … … 1078 1082 { 1079 1083 list LG = lpId2ivLi(lead(G)); 1080 int n = attrib(basering, "isLetterplaceRing");1081 int degbound = attrib(basering, "uptodeg");1084 int n = lpBlockSize(basering); 1085 int degbound = lpDegBound(basering); 1082 1086 1083 1087 list V; … … 1376 1380 } 1377 1381 1378 // TODO: use original ring attrib to create a new letterplace ring 1379 // removes a variable from a letterplace ring (a bit of a hack) 1380 static proc lpDelVar(int index) { 1381 int lV = attrib(basering, "isLetterplaceRing"); // number of variables in the main block 1382 int d = attrib(basering, "uptodeg"); // degree bround 1383 list LR = ringlist(basering); 1384 1385 if (!(index >= 1 && index <= lV)) { return (basering); } // invalid index 1386 1387 // remove frome the variable list 1388 for (int i = (d-1)*lV + index; i >= 1; i = i - lV) { 1389 LR[2] = delete(LR[2], i); 1390 } kill i; 1391 1392 // remove from a ordering 1393 intvec aiv = LR[3][1][2]; 1394 aiv = aiv[1..(d*lV-d)]; 1395 LR[3][1][2] = aiv; 1396 1397 // remove block orderings 1398 int del = (lV - index); 1399 int cnt = -1; 1400 for (int i = size(LR[3]); i >= 2; i--) { 1401 if (LR[3][i][2] != 0) { 1402 for (int j = size(LR[3][i][2]); j >= 1; j--) { 1403 cnt++; // next 1 1404 if (cnt%lV == del) { 1405 // delete 1406 if (size(LR[3][i][2]) > 1) { // if we have more than one element left, delete one 1407 LR[3][i][2] = delete(LR[3][i][2],j); 1408 } else { // otherwise delete the whole block 1409 LR[3] = delete(LR[3], i); 1410 break; 1411 } 1412 } 1413 } kill j; 1414 } 1415 } kill i; 1416 1417 def R = setLetterplaceAttributes(ring(LR),d,lV-1); 1418 return (R); 1419 } 1420 example 1421 { 1422 "EXAMPLE:"; echo = 2; 1423 ring r = 0,(x,y,z),dp; 1424 def A = makeLetterplaceRing(3); 1425 setring A; A; 1426 def R = lpDelVar(2); setring R; R; 1427 } 1382 // no longer working with new interface and new orderings 1383 /* // TODO: use original ring attrib to create a new letterplace ring */ 1384 /* // removes a variable from a letterplace ring (a bit of a hack) */ 1385 /* static proc lpDelVar(int index) { */ 1386 /* int lV = lpBlockSize(basering); // number of variables in the main block */ 1387 /* int d = lpDegBound(basering); // degree bround */ 1388 /* list LR = ringlist(basering); */ 1389 1390 /* if (!(index >= 1 && index <= lV)) { return (basering); } // invalid index */ 1391 1392 /* // remove frome the variable list */ 1393 /* for (int i = (d-1)*lV + index; i >= 1; i = i - lV) { */ 1394 /* LR[2] = delete(LR[2], i); */ 1395 /* } kill i; */ 1396 1397 /* // remove from a ordering */ 1398 /* intvec aiv = LR[3][1][2]; */ 1399 /* aiv = aiv[1..(d*lV-d)]; */ 1400 /* LR[3][1][2] = aiv; */ 1401 1402 /* // remove block orderings */ 1403 /* int del = (lV - index); */ 1404 /* int cnt = -1; */ 1405 /* for (int i = size(LR[3]); i >= 2; i--) { */ 1406 /* if (LR[3][i][2] != 0) { */ 1407 /* for (int j = size(LR[3][i][2]); j >= 1; j--) { */ 1408 /* cnt++; // next 1 */ 1409 /* if (cnt%lV == del) { */ 1410 /* // delete */ 1411 /* if (size(LR[3][i][2]) > 1) { // if we have more than one element left, delete one */ 1412 /* LR[3][i][2] = delete(LR[3][i][2],j); */ 1413 /* } else { // otherwise delete the whole block */ 1414 /* LR[3] = delete(LR[3], i); */ 1415 /* break; */ 1416 /* } */ 1417 /* } */ 1418 /* } kill j; */ 1419 /* } */ 1420 /* } kill i; */ 1421 1422 /* def R = setLetterplaceAttributes(ring(LR),d,lV-1); */ 1423 /* return (R); */ 1424 /* } */ 1425 /* example */ 1426 /* { */ 1427 /* "EXAMPLE:"; echo = 2; */ 1428 /* ring r = 0,(x,y,z),dp; */ 1429 /* def A = makeLetterplaceRing(3); */ 1430 /* setring A; A; */ 1431 /* def R = lpDelVar(2); setring R; R; */ 1432 /* } */ -
Singular/LIB/freegb.lib
rc723156 rb849856 5 5 LIBRARY: freegb.lib Two-sided Groebner bases in free algebras and tools via Letterplace approach 6 6 AUTHORS: Viktor Levandovskyy, viktor.levandovskyy at math.rwth-aachen.de 7 Grischa Studzinski, grischa.studzinski at math.rwth-aachen.de8 Karim Abou Zeid, karim.abou.zeid atrwth-aachen.de7 @* Karim Abou Zeid, karim.abou.zeid at rwth-aachen.de 8 @* Grischa Studzinski, grischa.studzinski at math.rwth-aachen.de 9 9 10 10 OVERVIEW: For the theory, see chapter 'Letterplace' in the Singular Manual. 11 11 12 This library provides access to kernel functions and also contains legacy code (partially as 12 13 static procedures) for compatibility reasons. … … 22 23 23 24 PROCEDURES: 24 freeAlgebra(r, d); creates a ring with d blocks of shifted original variables25 freeAlgebra(r, d); creates a Letterplace ring out of given data 25 26 isFreeAlgebra(r); check whether r is a letterplace ring (free algebra) 26 27 lpDegBound(R); returns the degree bound of a letterplace ring 27 28 lpBlockSize(R); returns the size of the letterplace blocks 28 29 29 letplaceGBasis(I); two-sided Groebner basis of a letterplace ideal I30 letplaceGBasis(I); (deprecated, use twostd) two-sided Groebner basis of a letterplace ideal I 30 31 31 32 lpDivision(f,I); two-sided division with remainder … … 36 37 isVar(p); check whether p is a power of a single variable 37 38 38 lpLmDivides(ideal I, poly p) tests if there is a polynomial q in I withLM(q)|LM(p)39 lpVarAt(poly p, int pos) 40 41 makeLetterplaceRing(d); (deprecated ) creates a ring with d blocks of shifted original variables42 setLetterplaceAttributes(R,d,b); (for testing ) supplies ring R with the letterplace structure39 lpLmDivides(ideal I, poly p); tests whether there exists q in I, such that LM(q)|LM(p) 40 lpVarAt(poly p, int pos); returns the variable (as a poly) at position pos of the poly p 41 42 makeLetterplaceRing(d); (deprecated, use freeAlgebra) creates a Letterplace ring out of given data 43 setLetterplaceAttributes(R,d,b); (for testing purposes) supplies ring R with the letterplace structure 43 44 44 45 SEE ALSO: fpadim_lib, fpaprops_lib, fpalgebras_lib, LETTERPLACE -
Singular/LIB/ncHilb.lib
r18a3df rb849856 69 69 EXAMPLE: example fpahilb; shows an example " 70 70 { 71 if ( attrib(basering, "isLetterplaceRing")==0)71 if (!isFreeAlgebra(basering)) 72 72 { 73 73 ERROR("Basering should be Letterplace ring"); … … 75 75 def save = basering; 76 76 int sz=size(#); 77 int lV= attrib(save,"isLetterplaceRing"); // nvars(orig comm ring)77 int lV=lpBlockSize(save); // nvars(orig comm ring) 78 78 int ig=0; 79 79 int mgrad=0; … … 137 137 } 138 138 // new: truncation should be < than degbound/2 139 int degbnd = attrib(save,"uptodeg");139 int degbnd = lpDegBound(save); 140 140 if (tdeg == 0) 141 141 { … … 403 403 EXAMPLE: example rcolon; shows an example" 404 404 { 405 int lV = attrib(R,"isLetterplaceRing"); //nvars(save);405 int lV = lpBlockSize(R); //nvars(save); 406 406 if (lV == 0) 407 407 { … … 419 419 } 420 420 } 421 int degbnd = attrib(R,"uptodeg");421 int degbnd = lpDegBound(R); 422 422 if ( 2*maxdegI != degbnd) 423 423 { -
Singular/attrib.h
rc723156 rb849856 8 8 */ 9 9 #include "kernel/structs.h" 10 #include "omalloc/omalloc.h" 10 11 #ifdef HAVE_OMALLOC 11 #include "omalloc/omalloc.h"12 12 #include "omalloc/omallocClass.h" 13 #else14 #include "xalloc/omalloc.h"15 13 #endif 16 14 -
Singular/countedref.h
rc723156 rb849856 21 21 #define SINGULAR_COUNTEDREF_H_ 22 22 23 #ifdef HAVE_OMALLOC24 23 #include "omalloc/omalloc.h" 25 #else26 #include "xalloc/omalloc.h"27 #endif28 29 24 #include "kernel/structs.h" 30 25 #include "Singular/subexpr.h" -
Singular/dyn_modules/bigintm/bigintm.cc
rc723156 rb849856 1 1 #include "kernel/mod2.h" 2 2 3 #ifdef HAVE_OMALLOC4 3 #include "omalloc/omalloc.h" 5 #else6 #include "xalloc/omalloc.h"7 #endif8 9 4 #include "coeffs/coeffs.h" 10 11 5 #include "Singular/ipid.h" 12 6 #include "Singular/subexpr.h" -
Singular/dyn_modules/pyobject/pyobject.cc
rc723156 rb849856 16 16 #ifdef HAVE_PYTHON 17 17 18 #ifdef HAVE_OMALLOC19 18 #include "omalloc/omalloc.h" 20 #else21 #include "xalloc/omalloc.h"22 #endif23 24 19 #include "misc/intvec.h" 25 20 -
Singular/dyn_modules/python/python_module.cc
rc723156 rb849856 17 17 #include "Singular/locals.h" 18 18 19 #ifdef HAVE_OMALLOC20 19 #include "omalloc/omalloc.h" 21 #else22 #include "xalloc/omalloc.h"23 #endif24 25 20 26 21 #include <stdio.h> -
Singular/emacs.cc
rc723156 rb849856 10 10 11 11 #include "kernel/mod2.h" 12 13 #ifdef HAVE_OMALLOC14 12 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 19 13 #include "resources/feResource.h" 20 14 #include "Singular/feOpt.h" -
Singular/extra.cc
r18a3df rb849856 1243 1243 else 1244 1244 #endif 1245 /*==================== freeAlgebra for freeGB ==================*/ 1246 #ifdef HAVE_SHIFTBBA 1247 if (strcmp(sys_cmd, "freeAlgebra") == 0) 1248 { 1249 // copied from freegb.cc 1250 const short t[]={2,RING_CMD,INT_CMD}; 1251 if (iiCheckTypes(h,t,1)) 1252 { 1253 ring r=(ring)h->Data(); 1254 int d=(int)((long)h->next->Data()); 1255 if (d<2) 1256 { 1257 WerrorS("degree must be >=2"); 1258 return TRUE; 1259 } 1260 int i=0; 1261 while(r->order[i]!=0) 1262 { 1263 if ((r->order[i]==ringorder_c) ||(r->order[i]==ringorder_C)) i++; 1264 else if ((r->block0[i]==1)&&(r->block1[i]==r->N)) i++; 1265 else 1266 { 1267 WerrorS("only for rings with a global ordering of one block"); 1268 return TRUE; 1269 } 1270 } 1271 if ((r->order[i]!=0) 1272 || (rHasLocalOrMixedOrdering(r))) 1273 { 1274 //WerrorS("only for rings with a global ordering of one block"); 1275 Werror("only for rings with a global ordering of one block,i=%d, o=%d",i,r->order[i]); 1276 return TRUE; 1277 } 1278 ring R=freeAlgebra(r,d); 1279 res->rtyp=RING_CMD; 1280 res->data=R; 1281 return R==NULL; 1282 } 1283 else return TRUE; 1284 } 1285 else 1286 #endif 1245 1287 /*==================== pcv ==================================*/ 1246 1288 #ifdef HAVE_PCV -
Singular/feOpt.cc
rc723156 rb849856 136 136 #if !defined(ESINGULAR) && !defined(TSINGULAR) 137 137 138 #ifdef HAVE_OMALLOC139 138 #include "omalloc/omalloc.h" 140 #else141 #include "xalloc/omalloc.h"142 #endif143 144 139 #include "resources/feResource.h" 145 140 #include "kernel/oswrapper/feread.h" -
Singular/febase.cc
rc723156 rb849856 10 10 #ifndef STANDALONE_PARSER 11 11 12 #ifdef HAVE_OMALLOC13 12 #include "omalloc/omalloc.h" 14 #else15 #include "xalloc/omalloc.h"16 #endif17 18 13 #include "reporter/reporter.h" 19 14 #include "misc/options.h" -
Singular/fehelp.cc
rc723156 rb849856 7 7 8 8 #include "kernel/mod2.h" 9 10 #ifdef HAVE_OMALLOC11 9 #include "omalloc/omalloc.h" 12 #else13 #include "xalloc/omalloc.h"14 #endif15 16 10 #include "misc/mylimits.h" 17 18 11 #include "resources/feResource.h" 19 12 #include "reporter/reporter.h" 20 21 13 #include "resources/omFindExec.h" 22 23 14 #include "reporter/si_signals.h" 24 15 -
Singular/fevoices.cc
rc723156 rb849856 9 9 /* I need myfread in standalone_parser */ 10 10 #ifndef STANDALONE_PARSER 11 12 #ifdef HAVE_OMALLOC13 11 #include "omalloc/omalloc.h" 14 #else15 #include "xalloc/omalloc.h"16 #endif17 18 12 #include "misc/options.h" 19 13 #include "reporter/reporter.h" -
Singular/grammar.cc
rc723156 rb849856 81 81 82 82 #include "misc/mylimits.h" 83 #ifdef HAVE_OMALLOC84 83 #include "omalloc/omalloc.h" 85 #else86 #include "xalloc/omalloc.h"87 #endif88 84 #include "Singular/tok.h" 89 85 #include "misc/options.h" -
Singular/grammar.y
rc723156 rb849856 17 17 18 18 #include "misc/mylimits.h" 19 #ifdef HAVE_OMALLOC20 19 #include "omalloc/omalloc.h" 21 #else22 #include "xalloc/omalloc.h"23 #endif24 20 #include "Singular/tok.h" 25 21 #include "misc/options.h" -
Singular/iparith.cc
rc723156 rb849856 5102 5102 static BOOLEAN jjTWOSTD(leftv res, leftv a) 5103 5103 { 5104 if (rIsPluralRing(currRing)) res->data=(ideal)twostd((ideal)a->Data()); 5105 else res->data=(ideal)a->CopyD(); 5104 ideal result; 5105 if (rIsPluralRing(currRing)) 5106 result=(ideal)twostd((ideal)a->Data()); 5107 else /*commutative or shiftalgebra*/ 5108 { 5109 result=kStd(v_id,currRing->qideal,hom,&w); 5110 idSkipZeroes(result); 5111 } 5112 res->data = (char *)result; 5106 5113 setFlag(res,FLAG_STD); 5107 5114 setFlag(res,FLAG_TWOSTD); -
Singular/libparse.cc
rc723156 rb849856 1070 1070 #include "Singular/tok.h" 1071 1071 #include "misc/options.h" 1072 #ifdef HAVE_OMALLOC1073 1072 #include "omalloc/omalloc.h" 1074 #else1075 #include "xalloc/omalloc.h"1076 #endif1077 1073 #endif 1078 1074 #include "Singular/libparse.h" -
Singular/libparse.ll
rc723156 rb849856 21 21 #include "Singular/tok.h" 22 22 #include "misc/options.h" 23 #ifdef HAVE_OMALLOC24 23 #include "omalloc/omalloc.h" 25 #else26 #include "xalloc/omalloc.h"27 #endif28 24 #endif 29 25 #include "Singular/libparse.h" -
Singular/libsingular.h
rc723156 rb849856 9 9 #include "kernel/oswrapper/feread.h" 10 10 #include "polys/monomials/ring.h" 11 #ifdef HAVE_OMALLOC12 11 #include "omalloc/omalloc.h" 13 #else14 #include "xalloc/omalloc.h"15 #endif16 12 #include "polys/clapsing.h" 17 13 #include "polys/monomials/maps.h" -
Singular/links/silink.h
rc723156 rb849856 9 9 10 10 #include "singularconfig.h" 11 #include "omalloc/omalloc.h" 11 12 #include "kernel/structs.h" 12 13 … … 97 98 } 98 99 99 #ifdef HAVE_OMALLOC100 #include "omalloc/omalloc.h"101 #else102 #include "xalloc/omalloc.h"103 #endif104 100 105 101 static inline char* slString(si_link l) -
Singular/lists.h
rc723156 rb849856 7 7 * ABSTRACT: handling of the list type 8 8 */ 9 #ifdef HAVE_OMALLOC10 9 #include "omalloc/omalloc.h" 11 #else12 #include "xalloc/omalloc.h"13 #endif14 10 15 11 #include "kernel/structs.h" -
Singular/misc_ip.cc
rc723156 rb849856 16 16 #include "kernel/mod2.h" 17 17 #include "misc/sirandom.h" 18 19 #ifdef HAVE_OMALLOC20 18 #include "omalloc/omalloc.h" 21 #else22 #include "xalloc/omalloc.h"23 #endif24 25 19 #include "misc/mylimits.h" 26 27 20 #include "reporter/si_signals.h" 28 29 21 #include "factory/factory.h" 30 31 22 #include "coeffs/si_gmp.h" 32 23 #include "coeffs/coeffs.h" … … 37 28 #include "coeffs/flintcf_Zn.h" 38 29 #include "coeffs/rmodulon.h" 39 40 30 #include "polys/ext_fields/algext.h" 41 31 #include "polys/ext_fields/transext.h" -
Singular/mmstd.c
rc723156 rb849856 11 11 12 12 #include "kernel/mod2.h" 13 14 #ifdef HAVE_OMALLOC15 13 #include "omalloc/omalloc.h" 16 #else17 #include "xalloc/omalloc.h"18 #endif19 14 20 15 /* we provide these functions, so that the settings of OM_CHECK -
Singular/number2.h
rc723156 rb849856 3 3 4 4 #include "kernel/mod2.h" 5 6 #ifdef HAVE_OMALLOC7 5 #include "omalloc/omalloc.h" 8 #else9 #include "xalloc/omalloc.h"10 #endif11 12 6 #include "coeffs/coeffs.h" 13 7 #include "kernel/structs.h" -
Singular/scanner.cc
rc723156 rb849856 568 568 569 569 #include "kernel/mod2.h" 570 #ifdef HAVE_OMALLOC571 570 #include "omalloc/omalloc.h" 572 #else573 #include "xalloc/omalloc.h"574 #endif575 571 #include "Singular/tok.h" 576 572 #include "Singular/stype.h" -
Singular/scanner.ll
rc723156 rb849856 9 9 10 10 #include "kernel/mod2.h" 11 #ifdef HAVE_OMALLOC12 11 #include "omalloc/omalloc.h" 13 #else14 #include "xalloc/omalloc.h"15 #endif16 12 #include "Singular/tok.h" 17 13 #include "Singular/stype.h" -
Singular/sdb.cc
rc723156 rb849856 7 7 8 8 #include "kernel/mod2.h" 9 #ifdef HAVE_OMALLOC10 9 #include "omalloc/omalloc.h" 11 #else12 #include "xalloc/omalloc.h"13 #endif14 10 #include "misc/options.h" 15 11 #include "reporter/si_signals.h" 16 17 12 #include "Singular/tok.h" 18 13 #include "Singular/ipshell.h" -
Singular/subexpr.cc
rc723156 rb849856 7 7 8 8 #include "kernel/mod2.h" 9 10 #ifdef HAVE_OMALLOC11 9 #include "omalloc/omalloc.h" 12 #else13 #include "xalloc/omalloc.h"14 #endif15 16 10 #include "misc/intvec.h" 17 11 #include "misc/options.h" 18 19 12 #include "coeffs/numbers.h" 20 13 #include "coeffs/bigintmat.h" 21 22 14 #include "coeffs/ffields.h" // nfShowMipo // minpoly printing... 23 24 15 #include "polys/monomials/maps.h" 25 16 #include "polys/matpol.h" … … 33 24 #include "kernel/GBEngine/syz.h" 34 25 #include "kernel/oswrapper/timer.h" 35 36 26 #include "Singular/tok.h" 37 27 #include "Singular/ipid.h" -
Singular/svd/libs/amp.h
rc723156 rb849856 1 1 #ifndef _AMP_R_H 2 2 #define _AMP_R_H 3 4 #ifdef HAVE_OMALLOC5 #include "omalloc/omalloc.h"6 #else7 #include "xalloc/omalloc.h"8 #endif9 3 10 4 #include <gmp.h> -
Singular/svd_si.h
rc723156 rb849856 1015 1015 /* stuff included from libs/amp.h */ 1016 1016 1017 #ifdef HAVE_OMALLOC1018 1017 #include "omalloc/omalloc.h" 1019 #else1020 #include "xalloc/omalloc.h"1021 #endif1022 1018 1023 1019 #include <gmp.h> -
Singular/table.h
rc723156 rb849856 279 279 ,{D(jjENVELOPE), ENVELOPE_CMD, RING_CMD, RING_CMD , ALLOW_PLURAL |NO_RING} 280 280 ,{D(jjOPPOSITE), OPPOSITE_CMD, RING_CMD, RING_CMD , ALLOW_PLURAL |NO_RING} 281 ,{D(jjTWOSTD), TWOSTD_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_ PLURAL|NO_RING}281 ,{D(jjTWOSTD), TWOSTD_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_NC |NO_RING} 282 282 #endif 283 283 //,{ jjWRONG , TRACE_CMD, 0, INTVEC_CMD , ALLOW_NC |ALLOW_RING} -
Singular/test.cc
rc723156 rb849856 1 1 #include "kernel/mod2.h" 2 2 3 #ifdef HAVE_OMALLOC4 3 #include "omalloc/omalloc.h" 5 #else6 #include "xalloc/omalloc.h"7 #endif8 4 9 5 #include "factory/factory.h" // :( 10 11 6 12 7 #include "misc/intvec.h" -
Singular/tesths.cc
rc723156 rb849856 8 8 9 9 10 11 12 10 #include "kernel/mod2.h" 13 14 #ifdef HAVE_OMALLOC15 11 #include "omalloc/omalloc.h" 16 #else17 #include "xalloc/omalloc.h"18 #endif19 20 12 #include "misc/options.h" 21 22 13 #include "factory/factory.h" 23 24 14 #include "kernel/oswrapper/feread.h" 25 15 #include "Singular/fevoices.h" -
Singular/walk.cc
rc723156 rb849856 37 37 #include "Singular/cntrlc.h" 38 38 #include "misc/options.h" 39 #ifdef HAVE_OMALLOC40 39 #include "omalloc/omalloc.h" 41 #else42 #include "xalloc/omalloc.h"43 #endif44 40 #include "Singular/ipshell.h" 45 41 #include "Singular/ipconv.h" -
Singular/walk_ip.cc
rc723156 rb849856 11 11 #include "Singular/ipid.h" 12 12 #include "misc/intvec.h" 13 #ifdef HAVE_OMALLOC14 13 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 14 #include "kernel/polys.h" 19 15 #include "kernel/ideals.h" -
Tst/Manual/Example_of_use_of_@sc{Letterplace}.res.gz.uu
r18a3df rb849856 1 1 begin 644 Example_of_use_of_@sc{Letterplace}.res.gz 2 M'XL(" %;?V5L"`T5X86UP;&5?;V9?=7-E7V]F7T!S8WM,971T97)P;&%C97TN3 M<F5S`&U2R VZ#,!"\\Q6KJ`<(Y$'>%<*JHO9`%/5`<JNBB,1.A$H`@:,:JOY[4 M %_-P#CE@[\[,SBR2=_MW[Q,`;`);;PT]GO-A%)YZ#F!U#..0ZX:C53<0`A\B5 M N*41.R:7XSV7UUM^_MTRSEF61L&9_0UC]C/,><"U7>,\:9PO&6/74VW>D5,"6 M 61A?(0,7QI8NK,(J#8NF2C$C$,8<*+@S!T8CH.R*1G!*[C'M1'."^`5\=+D%7 M W^QA(1_==6HHOP6!G'$9ZBMTB2F4!1%X:"'Z!9A0]$L+2X%E!0P0$/(LU-B*8 M 0)+R,(GUC-'=VG`>VGT01@^YKVW"!A-R3G5/D?:8P,;1-E_VP<4L$Z.QF52-9 M &!3R*P8U.#VXV,@6@4I94Y*<U:0P%2G,EIQ79-G,EIV@FY>B12NJYY2H\9&B10 G 91U3MEL\=5JUHF:;)T[MW^/;JQY;]6KNN6X;SHOV#^"H^[67`@``2 M'XL("'$H$5P"`T5X86UP;&5?;V9?=7-E7V]F7T!S8WM,971T97)P;&%C97TN 3 M<F5S`&U2RXZ"0!"\\Q4=LP<0?.![0YALC'O`F#VHMXTQ**.9+`*!,3NPV7^W 4 M9WAY\,!,=U5U59/,;K_RO@#`)K#QEM#A&>^'[-1Q`*LCBQC7#4>3-Q`"G\*_ 5 M)2$]QI?C/5/71W;^VU#.:9J$_IG^]R/ZV\^XS[5=Y3RJG"\II==3:=Z08P(I 6 MBZZ0@@M#2Q=6;A6&M4I:Q80`BS@$X$X<&`P@H%<T@E-\CX)&-"6(7V"++C?_ 7 MASXMM$5W/3!:OQF!C'(5NFW1.:8$U`_!0PO1S<&$O%M86`HL)=!#0*@S;\<6 8 M!.*$LSC24QKLEH;SU.Y]%C[EOM<):TS(>*![+6D/":P=;?UM'US,,C$:FY%L 9 M1"]77]XKP?'!Q4:U"$AE22ER4I+";$EAUN14DD4U6S2"9EZ)9K6HG&M%E8\2 10 GS<N8HM[BI=.B%E7;O'"J_Q[?GGQL\M7<,]TVG#?M`6PS(8B7`@`` 11 11 ` 12 12 end -
Tst/Manual/Example_of_use_of_@sc{Letterplace}.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 154 1005142:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:7244642 1 >> tst_memory_1 :: 154 1005142:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:20971683 1 >> tst_memory_2 :: 154 1005142:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:21218724 1 >> tst_timer_1 :: 154 1005142:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:691 1 >> tst_memory_0 :: 1544628337:4113, 64 bit:4.1.1:x86_64-Linux:megrez:312368 2 1 >> tst_memory_1 :: 1544628337:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 3 1 >> tst_memory_2 :: 1544628337:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 4 1 >> tst_timer_1 :: 1544628337:4113, 64 bit:4.1.1:x86_64-Linux:megrez:8 -
Tst/Manual/Example_of_use_of_@sc{Letterplace}.tst
r18a3df rb849856 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB "freegb.lib"; 3 ring r = 0,(x,y,z), dp;3 ring r = 0,(x,y,z),Dp; 4 4 int d =4; // degree bound 5 5 def R = makeLetterplaceRing(d); -
Tst/Manual/letterplace_reduce.res.gz.uu
r18a3df rb849856 1 1 begin 644 letterplace_reduce.res.gz 2 M'XL("( I=]%L"`VQE='1E<G!L86-E7W)E9'5C92YR97,`=5)+CX(P$+[S*R9F3 M#U"K @NXS9'O8[`5C]J![-RBC(<MBA9J%_OH=*@AH3`\ST_D>,TU7WY_!%P!X4 M` A;!!PQ4KL9)O!GX0-DZ3F-E.[Y511`"$E0*,YF$6UQG&)VV.$[Q;YRK4%FK5 M 6FEJE`:[#'&_.6M=>C,!69SN(8-W<+E=\))KAT>R13P*B'`'2P+\AC^X:`V76 M 1+0]U_$A1V54EBWM24`<89A`0,22%:R$$6A6,LV!"E:8DC)N@J:2>JRHNG1@7 M 2"4=BIJN-<6*I5N#Y\9@3@:YBNS`:9LO`N0A*4$VYJ11UA:Z5NVIO=:$(Q',8 M /%6[F:D/?:,G,R]M2R;YG-:?3"`]I!JS@V5X9W:3C6YO6E0=A]?UE4ZOOM$<9 M ]=2[V&9HS^T.37OU-FB6,!NX%XYWX1S9\0YFVL'(.YA9%T/>\JX:_;7JDU>_10 0]Y3;GN,_6/_CGQMQ#P,`````2 M'XL("(LH$5P"`VQE='1E<G!L86-E7W)E9'5C92YR97,`=5)+CX(P$+[S*R9F 3 M#U"KPKK/D.UAXP5C]J![-RBC(<MBA9J%_OH=*@AH3`\ST_D>,TU7W[/@"P`\ 4 M`8O@$P8J5^,DW@Q\H&P=I[&R'=^J(@@!"2J%F4S"+:XSC$Y;'*?X-\Y5J*Q5 5 MK?1HE`:[#'&_.6M=>E,!69SN(8,/<+E=\))KA\]DBW@2$.$.E@3X#7]PT1HN 6 MB6A[KN-#CLJH+%O:LX`XPC"!@(@E*U@)(]"L9)H#%:PP)67<!$TE]5A1=>G` 7 MD$HZ%#5=:XH52[<&+XW!G`QR%=F!TS9?!<A#4H)LS$FCK"UTK=I3>ZL)1R*8 8 M>:IV,U,?^DY/9E[:EDSR.:T_F4!Z2#5F!\OPSNPF&]W>M*@Z#J_K*YU>?:,Y 9 MZJEWL<W0GML=FO;J;=`L839P+QSOPCFRXQW,8P<C[V"F70QYR[MJ]->J3U[] 10 1WE-N>X[_8/T#<'*Z+`\#```` 11 11 ` 12 12 end -
Tst/Manual/letterplace_reduce.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 154 2741386:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:200122802 1 >> tst_memory_1 :: 154 2741386:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:230686723 1 >> tst_memory_2 :: 154 2741386:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:230949764 1 >> tst_timer_1 :: 154 2741386:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:6101 1 >> tst_memory_0 :: 1544628363:4113, 64 bit:4.1.1:x86_64-Linux:megrez:30936576 2 1 >> tst_memory_1 :: 1544628363:4113, 64 bit:4.1.1:x86_64-Linux:megrez:33767424 3 1 >> tst_memory_2 :: 1544628363:4113, 64 bit:4.1.1:x86_64-Linux:megrez:33828864 4 1 >> tst_timer_1 :: 1544628363:4113, 64 bit:4.1.1:x86_64-Linux:megrez:19 -
Tst/Manual/letterplace_reduce.tst
r18a3df rb849856 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB"freegb.lib"; 3 ring r = 0,(x,y,z), dp;3 ring r = 0,(x,y,z),Dp; 4 4 def R = makeLetterplaceRing(10); setring R; 5 5 ideal I = y*x*y - z*y*z, x*y*x - z*x*y, z*x*z - y*z*x, x*x*x + y*y*y + z*z*z + x*y*z; -
Tst/Manual/letterplace_std.res.gz.uu
r18a3df rb849856 1 1 begin 644 letterplace_std.res.gz 2 M'XL(" *;?V5L"`VQE='1E<G!L86-E7W-T9"YR97,`39++;H,P%$3W?,55U`4X3 M @#"$/(3PHNH&%'619%>AB!0G0J4T`D<U_?I>&Q)GP<-S9\X`9G]XR]X!@#+84 M 9J\P$[WPF_HT2P#OCG5;"]M)+'4%QJ#A0O#NVI2?_-B+RF_YK]^+4EC["1-.5 M F'/'^>4TDA[#B$%7MQ?H((7`M:4[N'^.:U=7FSHNGD/',>8%@[H54/$+HHZG6 M GUM;82PVAICA\`P[5+_++[XUC[;#$CM^8BT9]%SH[IU15]A0\;*!#!&>)(.W7 M (@,9YA&11+J``I$>'F0PF?4]DV,&OX"=/=5L&.2)E7_0(M4,PT0Q+-(P5##48 M (J*Q7DC5DLBY-FE;-&95]=T^O]L\8ULHVCJ(1@$)=!,%TU@;XB)%:9Q+Q5C%9 CU)B7],FZ+-+AL9S>A09,_P!J<V\][D_R8OT#2W36,BL"````2 M'XL("!(J$5P"`VQE='1E<G!L86-E7W-T9"YR97,`39%!;X(P%,?O?(H7LP-4 3 M,!1$-(0>%B\8LX/NMA"#HQHRQ@S4K.S3[[6`]=#0_M_O_1Y-C^_;[`T`*(-] 4 M]@HST8E%79UG">#N5#65L)W$4E]@#&HN!&]O=?')3YTH%PW_772B$-9QU`2C 5 MYM)R?CT/ID<Q9-!6S15:2,%W;>GV[I_C;F^&6#*H&@$EOV+_Z?QS;TID(P-$ 6 M#(L7.&#Z77SQO?F?`YKMR#'HBD''A1YX,&F,$TI>U)"API.D]V+2DWX>$DFD 7 M"Q@0Z>$BO>E93ST[[,%KV]G3F`V#76+M/FB>:H=Q8ACD:1`H&68AT5HOH.I( 8 MY%Q#&@N'7C5ZPN<3YAELJ6QK/QP"--!-Z(]E#41YBM%0E\H11]3`*_J$KO*T 9 :?QS'NU"?Z5=7+WKO;.HD+]8_KM^\/"`"```` 10 10 ` 11 11 end -
Tst/Manual/letterplace_std.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 154 1005222:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:7416402 1 >> tst_memory_1 :: 154 1005222:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:20971683 1 >> tst_memory_2 :: 154 1005222:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:21218724 1 >> tst_timer_1 :: 154 1005222:4113, 64 bit:4.1.1:x86_64-Darwin:161-029.eduroam.rwth-aachen.de:711 1 >> tst_memory_0 :: 1544628754:4113, 64 bit:4.1.1:x86_64-Linux:megrez:331512 2 1 >> tst_memory_1 :: 1544628754:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 3 1 >> tst_memory_2 :: 1544628754:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 4 1 >> tst_timer_1 :: 1544628754:4113, 64 bit:4.1.1:x86_64-Linux:megrez:7 -
Tst/Manual/letterplace_std.tst
r18a3df rb849856 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB "freegb.lib"; 3 ring r = 0,(x,y,z), (dp(1),dp(2));3 ring r = 0,(x,y,z),Dp; 4 4 int degree_bound = 5; 5 5 def R = makeLetterplaceRing(5); -
Tst/Manual/lpMonomialBasis.res.gz.uu
r18a3df rb849856 1 1 begin 644 lpMonomialBasis.res.gz 2 M'XL(" )E5]%L"`VQP36]N;VUI86Q"87-I<RYR97,`G9-?:X,P%,7?_127L8=83 M ;#%J_R'-0QF,2K>'MF]EE&RF(\RJ:,;TVR\FVKC:I[WHS3TWYW<2R/[PM'D%4 M` $Q@NUG#@RC%).'O#R'(ZL13+I`=6LT?"($D?\G2[,)ILJ8E+R<I^YF4@@IK5 M W]IXK<TYIS&_:*>KZ!,H>/H)!:S`=5#EU+83YT8/",3L##LI7^@7VS(A6)$G6 M ](/MY#8TMT,HF5`6.[-K2H#'C"80R7W5J!Y5,`;Y'=5F9D8@RP7/4E2P>+^67 M 1F9YH#RQS>B<**.$"45^5@=%46]B(2="*SKBMY7"C15,-CS=4$O=;&HI^)UP8 M (RDQ,.)`E@,==3FX?>0YV%%'1ZXM\YUTHDH6,DFM"DV61=!TZLX-N_?<W($;9 MUEZ M4^NC$=,.,>L0\[\(/$3X,G#42]K+VJ755]9QE*\FJ7+6WM65UN-Y]WBN10 M X?WG+*?CP@1=FJ#8-4DQ-E&Q9[)BWX3%P6U:^1::!]8\GN\283M\M'X!]54A11 % VXL#````2 M'XL("+,H$5P"`VQP36]N;VUI86Q"87-I<RYR97,`G9-?;X(P%,7?^10W9@_% 3 MH*&(_T+L@S%9)&X/ZIM93#?JT@R!0)?!MU]IP3+Q:2]P>\_M^9TVZ>&XV;X" 4 M`":PVZYA(`HQCOG[(`!9G7G"!;(#J_X#(1!G+VF27CF-U[3@Q3AA/^-"4&$= 5 M&ANOL;ED-.)7[703)P1RGGQ"#BMP'50ZE>UL,J/[!")V@;V4K_2+[9@0+,]B 6 M^L'V<AN:VP$43"B+O=DU)<`C1F,(Y;YR6`U+&('\#BLS,R.09H*G"<I9=%A+ 7 M([,\4A[;9G1.E%',A"(_JX.BL#.QD!.!%9[PVTKA1@HF&YYNJ*5NUK44)JUP 8 M)RG1-V)/E@,M==F[?>0YV%%'1ZXM\YUUHE(6,DFE"DV6A5]WJM8-NX_<W)X; 9 MUEZ-4^.C$=,6,6L1\[\(W$=,9."PD[23M4VKKZSE*%]-4N6LN:L;K</S'O%< 10 MP_O/6<ZGA0FZ-$&Q:Y)B;*)BSV3%$Q,6^_=IY5NH'UC]>+X+A.W@R?H%=J9X 11 %38L#```` 12 12 ` 13 13 end -
Tst/Manual/lpMonomialBasis.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 154 2739353:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:7202082 1 >> tst_memory_1 :: 154 2739353:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:20971683 1 >> tst_memory_2 :: 154 2739353:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:21218724 1 >> tst_timer_1 :: 154 2739353:4113, 64 bit:4.1.1:x86_64-Darwin:Karims-MacBook-Pro.local:901 1 >> tst_memory_0 :: 1544628403:4113, 64 bit:4.1.1:x86_64-Linux:megrez:318584 2 1 >> tst_memory_1 :: 1544628403:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 3 1 >> tst_memory_2 :: 1544628403:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 4 1 >> tst_timer_1 :: 1544628403:4113, 64 bit:4.1.1:x86_64-Linux:megrez:5 -
Tst/Manual/lpMonomialBasis.tst
r18a3df rb849856 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB "fpadim.lib"; 3 ring r = 0,(x,y), dp;3 ring r = 0,(x,y),Dp; 4 4 def R = makeLetterplaceRing(7); setring R; 5 5 ideal J = x*y*x - y*x*y; -
Tst/Manual/makeLetterplaceRing.res.gz.uu
r18a3df rb849856 1 begin 64 0makeLetterplaceRing.res.gz2 M'XL(") ^SP%L"`VUA:V5,971T97)P;&%C95)I;F<N<F5S`*U4VVK"0!!]SU<,3 M TH<$@II$;9O0@*DO@A1:2U]++A.[F!N[FU;]^LX:FXA8A-:%;(;)F3.7D]WE4 M ZVS^!`"6#XMY`#TI9#]C4<\#LMY9P:1N>)IZ@^]#'JYQ@5(BK[(PQA=6K/H%5 M ?O6%#*6V/%#9!ZJ4(ZZBAJW]Z/C`*0HX/,#0U#?FUMP9IIY4NF68M-N&T8%'6 M /B28PI2P9S(3MH..?1`H]]13#^C1!@.(2TQ3%C,LI'#A^5GYBCJ/D$.9PF?(7 M !;@P4=[#BK(R7JMID+_D">[Y9M41HELN%&&.0ID;V,*NV<^0V<=DCPJ0=8TT8 M T]`;K&`[!,=HFYKX$$IJ*M*G9H^)D_Y[U+[38F^/L74ERP05`H#RD4E:0%369 M 1:+9;<C=<4CVIM"G`V)AE%&/K`#Y@20"&?M2M9;DOAL\]_9R!;_)95I-!EF210 M ,GD5<G1_:*QA1Q-0T<$5]<LNZW=)M>0BQ7GIG?_7,;I&'>.__H(6W0OJ(E`'11 0O!9T1KT;[1NUSY!H,P0`````1 begin 644 makeLetterplaceRing.res.gz 2 M'XL(")XK$5P"`VUA:V5,971T97)P;&%C95)I;F<N<F5S`*U4:TO#,!3]WE]Q 3 M$#^T4*;MYFO%PNH0!!'F_"[M>EO#NK8DF8_]>F_:V:I,!FJ@3;@Y.?=Q;C)_ 4 MF-[<`?!"W-Y$.-!*#PJ1'`3@U:,HA;:=P#(SPA"K>$FWI#7)NH@7="_*?%#2 5 MRT#I6%OS+96_I<HD49ZT;-WF,(3D4Y"XQ+%KO[IO[L9QIW6/&(5(*<.$`3O< 6 MV;[30T]"*-(-WR0`?];1$18599E8""JU&F,V,[9RO4I(HLKP'$N%,4Z-=3N2 7 MHEHL30G87LF4&KYI_0G1CS'*>$7*+%_QADW[WT'F?R:[,H"B3Z0M@=UBE=@0 8 MADZ7U&D(H:ZY=I,BIT3&]H0S]KKMLQ!%/:4\JM9E:O8`)D\IYQ-(C-'R._"Y 9 M`4?&S9R]-.COU1!Q4G!"HH1^(JXX+YJXK&''<O&AF?]%-#NM;<]QP9/O]*IX 10 MQ[TJT@\:,:.?Q'2]-B1=L6ZK.I8T[GB\GB?B+*-_5+?8K^X^3=.]%+L;8_CW 11 @.$;_$<?);QO4X_MMW@9SY]>*.R`XM-X!A7"/B$8$```` 12 12 ` 13 13 end -
Tst/Manual/makeLetterplaceRing.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 15 25958650:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:2951922 1 >> tst_memory_1 :: 15 25958650:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:22159363 1 >> tst_memory_2 :: 15 25958650:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:22159364 1 >> tst_timer_1 :: 15 25958650:4112, 64 bit:4.1.1:x86_64-Linux:nepomuck:51 1 >> tst_memory_0 :: 1544629151:4113, 64 bit:4.1.1:x86_64-Linux:megrez:300232 2 1 >> tst_memory_1 :: 1544629151:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 3 1 >> tst_memory_2 :: 1544629151:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 4 1 >> tst_timer_1 :: 1544629151:4113, 64 bit:4.1.1:x86_64-Linux:megrez:7 -
Tst/Manual/makeLetterplaceRing.tst
r18a3df rb849856 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB "freegb.lib"; 3 ring r = 0,(x,y,z), (dp(1),dp(2));3 ring r = 0,(x,y,z),Dp; 4 4 def A = makeLetterplaceRing(2); 5 5 setring A; A; 6 attrib(A,"isLetterplaceRing"); 7 attrib(A,"uptodeg"); // degree bound 8 attrib(A,"lV"); // number of variables in the main block 9 setring r; def B = makeLetterplaceRing(2,1); // to compare: 6 isFreeAlgebra(A); 7 lpDegBound(A); // degree bound 8 lpBlockSize(A); // number of variables in the main block 9 ring r2 = 0,(x,y,z),(dp(1), dp(2)); 10 setring r2; def B = makeLetterplaceRing(2,1); // to compare: 10 11 setring B; B; 11 12 tst_status(1);$ -
Tst/Manual/serreRelations.res.gz.uu
r18a3df rb849856 1 begin 64 0serreRelations.res.gz2 M'XL(" .U<NUL"`W-E<G)E4F5L871I;VYS+G)E<P!54MUKPC`0?^]?<<@>VO5#3 MDZAS%`MN @U&0/=2]B9.X)A)6:TDCV_[[79NN50C<Y??5ZY'-^TOZ!@`D@77Z4 M !"-3FZA0AU$,V.U5J8SKQ4Y3(4F@%EJ+3!3<J'-91Z7XCFK#C;/I4FB7(K405 M QX,-ZDF6@"K-B1M8;=D.#RQ[;AH!#2`D`4R"'IQ%+=(0;$#G$6HL$<-X#*\?6 M 9$_AF6O#2\!TK7YZ[4,"6I5'T+!$DRM)(&D@F1?DU3#7HIT++I4YY^*(RMG`7 M /2:0"PD9HB?^)=;"&*&K@G^*#'/=SN/U!C)IEF3:CV8#BMM5N>`%I!ATNT1W8 M %1`OMH0Z5862OVX:$)_ZBZM87&P:.^F6[):2W$N*)Z1M;6Z^['I44*M@H6069 M 8!8@G<6ZB=]Y&\44%7AC_0FG;1TP?_[?TAO%@/E7=D0P=693&[(;E;6C6@/M10 8 ?PV?1?/4FG=TJ5W<Q9WS!_\$9/B5`@``1 begin 644 serreRelations.res.gz 2 M'XL("-`H$5P"`W-E<G)E4F5L871I;VYS+G)E<P!54E]KPC`0?^^G.,8>ZII6 3 MDZAS%`MNPBC('NK>Q$F<B8356MK(MF^_2].U"H&[_/[U>F3]ODS?`(`FL$J? 4 MX<[4)LKU_BX&[':ZT,8?Q)ZMD"10RZJ2F<R%T>>BC@KY'=5&&&_=IK`V1552 5 M'O<NJ"-Y`KHP)V%@L>%;/##ON'$$C$!("8Q(!TZB!K$$[]%IA!I'Q#`<PNL' 6 MW3%X$941!6!ZI7\Z[6,"E2Z.4,$<3;ZB1#&B^(`LRWZN63,77$IS/L@C*B<] 7 M]Y3`02K($#V)+[F2QLBJS,6GS##7;SV#SD!'=DFF^6C6H[A=?9`BAQ2#;I?H 8 M+P@=Q([0IS+7ZM=/"0U8,+N*Q<6FL9=NZ':NZ(-B>$+65'L+5-NC@CD%#Q5W 9 M`'<`;2W.38/6:Q5C5."-=R<<-[7'@NE_RVX4/19<V1'!U(E+M60[*F]&=0;6 10 8_1H^"_O4[#NZU#[NXM[[`Q7*N7*5`@`` 11 11 ` 12 12 end -
Tst/Manual/serreRelations.stat
r18a3df rb849856 1 1 >> tst_memory_0 :: 1 316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:3083522 1 >> tst_memory_1 :: 1 316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:6696283 1 >> tst_memory_2 :: 1 316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:7526444 1 >> tst_timer_1 :: 1 316104113:3132- exportiert :3-1-3:ix86-Linux:mamawutz:151 1 >> tst_memory_0 :: 1544628432:4113, 64 bit:4.1.1:x86_64-Linux:megrez:299832 2 1 >> tst_memory_1 :: 1544628432:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 3 1 >> tst_memory_2 :: 1544628432:4113, 64 bit:4.1.1:x86_64-Linux:megrez:2215936 4 1 >> tst_timer_1 :: 1544628432:4113, 64 bit:4.1.1:x86_64-Linux:megrez:5 -
Tst/Manual/serreRelations.tst
r18a3df rb849856 5 5 -1, 2, -3, 6 6 0, -1, 2; // G^1_2 Cartan matrix 7 ring r = 0,(f1,f2,f3), dp;7 ring r = 0,(f1,f2,f3),Dp; 8 8 int uptodeg = 5; 9 9 def R = makeLetterplaceRing(uptodeg); -
Tst/Manual/setLetterplaceAttributes.tst
r18a3df rb849856 3 3 ring r = 0,(x(1),y(1),x(2),y(2),x(3),y(3),x(4),y(4)),dp; 4 4 def R = setLetterplaceAttributes(r, 4, 2); setring R; 5 attrib(R,"isLetterplaceRing"); 5 isFreeAlgebra(R); 6 lpDegBound(R); 7 lpBlockSize(R); 6 8 lieBracket(x(1),y(1),2); 7 9 tst_status(1);$ -
configure.ac
rc723156 rb849856 216 216 AC_CONFIG_SUBDIRS([resources]) 217 217 AC_CONFIG_SUBDIRS([omalloc]) 218 AC_CONFIG_SUBDIRS([xalloc])219 218 220 219 if test "x$ENABLE_FACTORY" = xyes; then -
doc/NEWS.texi
rc723156 rb849856 40 40 Changes in the kernel/build system: 41 41 @itemize 42 @item integrated xalloc into omalloc: (@code{./configure --disable-omalloc}) 42 43 @item improved heuristic for @code{det} (@nref{det}) 43 44 @item improved reading of long polynomials -
kernel/GBEngine/kInline.h
rc723156 rb849856 18 18 */ 19 19 20 #ifdef HAVE_OMALLOC21 20 #include "omalloc/omalloc.h" 22 #else23 #include "xalloc/omalloc.h"24 #endif25 26 21 #include "misc/options.h" 27 28 22 #include "polys/monomials/p_polys.h" 29 23 #include "polys/kbuckets.h" -
kernel/GBEngine/kspoly.cc
r18a3df rb849856 140 140 #ifdef HAVE_SHIFTBBA 141 141 poly lmRight; 142 if (tailRing->isLPring) { 142 if (tailRing->isLPring) 143 { 144 assume(PR->shift == 0); 145 assume(PW->shift == si_max(p_mFirstVblock(PW->p, tailRing) - 1, 0)); 143 146 k_SplitFrame(lm, lmRight, PW->shift + 1, tailRing); 144 147 } … … 271 274 if (tailRing->isLPring) 272 275 { 276 assume(PR->shift == 0); 277 assume(PW->shift == si_max(p_mFirstVblock(PW->p, tailRing) - 1, 0)); 273 278 k_SplitFrame(lm, lmRight, PW->shift + 1, tailRing); 274 279 } … … 623 628 #ifdef HAVE_SHIFTBBA 624 629 poly lmRight; 625 if (tailRing->isLPring) { 630 if (tailRing->isLPring) 631 { 632 assume(PR->shift == 0); 633 assume(PW->shift == si_max(p_mFirstVblock(PW->p, tailRing) - 1, 0)); 626 634 k_SplitFrame(lm, lmRight, PW->shift + 1, tailRing); 627 635 } … … 834 842 #ifdef HAVE_SHIFTBBA 835 843 poly lmRight; 836 if (tailRing->isLPring) { 844 if (tailRing->isLPring) 845 { 846 assume(PR->shift == 0); 847 assume(PW->shift == si_max(p_mFirstVblock(PW->p, tailRing) - 1, 0)); 837 848 k_SplitFrame(lm, lmRight, PW->shift + 1, tailRing); 838 849 } … … 1078 1089 #ifdef HAVE_SHIFTBBA 1079 1090 poly lmRight; 1080 if (tailRing->isLPring) { 1091 if (tailRing->isLPring) 1092 { 1093 assume(PR->shift == 0); 1094 assume(PW->shift == si_max(p_mFirstVblock(PW->p, tailRing) - 1, 0)); 1081 1095 k_SplitFrame(lm, lmRight, PW->shift + 1, tailRing); 1082 1096 } … … 1192 1206 if (tailRing->isLPring) 1193 1207 { 1194 // note: because of the crits, p2 is never shifted 1208 assume(si_max(p_mFirstVblock(p2, tailRing) - 1, 0) == 0); 1209 // note: because of how the pairs are created, p2 should never be shifted 1195 1210 int split = p_mFirstVblock(p1, tailRing); 1196 1211 k_SplitFrame(m1, m12, split, tailRing); … … 1269 1284 if (tailRing->isLPring) 1270 1285 { 1286 // just to be sure, check that the shift is correct 1287 assume(Pair->shift == 0); 1288 assume(si_max(p_mFirstVblock(Pair->p, tailRing) - 1, 0) == Pair->shift); // == 0 1289 1271 1290 p_LmDelete(m12, tailRing); 1272 1291 p_LmDelete(m22, tailRing); -
kernel/GBEngine/kstd1.cc
r18a3df rb849856 2568 2568 #ifdef HAVE_SHIFTBBA 2569 2569 ideal kStdShift(ideal F, ideal Q, tHomog h,intvec ** w, intvec *hilb,int syzComp, 2570 int newIdeal, intvec *vw )2570 int newIdeal, intvec *vw, BOOLEAN rightGB) 2571 2571 { 2572 2572 ideal r; … … 2575 2575 kStrategy strat=new skStrategy; 2576 2576 intvec* temp_w=NULL; 2577 2578 strat->rightGB = rightGB; 2577 2579 2578 2580 if(!TEST_OPT_RETURN_SB) -
kernel/GBEngine/kstd1.h
r18a3df rb849856 39 39 int syzComp=0,int newIdeal=0, intvec *vw=NULL, s_poly_proc_t sp=NULL); 40 40 41 ideal kStdShift(ideal F, ideal Q, tHomog h,intvec ** w, intvec *hilb,int syzComp,42 int newIdeal, intvec *vw);41 ideal kStdShift(ideal F, ideal Q, tHomog h,intvec ** mw, intvec *hilb=NULL, 42 int syzComp=0, int newIdeal=0, intvec *vw=NULL, BOOLEAN rightGB=FALSE); 43 43 44 44 /* the following global data are defined in kutil.cc */ -
kernel/GBEngine/kstd2.cc
r18a3df rb849856 4178 4178 initBbaShift(strat); /* DONE */ 4179 4179 /*set enterS, spSpolyShort, reduce, red, initEcart, initEcartPair*/ 4180 /*Shdl=*/initBuchMoraShift(F, Q,strat); /* updateS with no toT, i.e. no init for T */ 4181 updateSShift(strat); /* initializes T */ 4180 /*Shdl=*/initBuchMora(F, Q,strat); 4182 4181 if (strat->minim>0) strat->M=idInit(IDELEMS(F),F->rank); 4183 4182 reduc = olddeg = 0; … … 4352 4351 // posInS only depends on the leading term 4353 4352 strat->enterS(strat->P, pos, strat, strat->tl); 4354 enterTShift(strat->P, strat); 4353 if (!strat->rightGB) 4354 enterTShift(strat->P, strat); 4355 4355 } 4356 4356 … … 4369 4369 // and add pairs 4370 4370 int pos=posInS(strat,strat->sl,strat->P.p,strat->P.ecart); 4371 int atR=strat->tl+1; // enterTShift introduces P.p=T[tl+1], T[tl+2]... 4372 enterTShift(strat->P,strat,-1); 4373 enterpairsShift(strat->P.p,strat->sl,strat->P.ecart,pos,strat, atR); 4374 strat->enterS(strat->P, pos, strat, atR); 4371 enterT(strat->P, strat); 4372 enterpairsShift(strat->P.p,strat->sl,strat->P.ecart,pos,strat, strat->tl); 4373 strat->enterS(strat->P, pos, strat, strat->tl); 4374 if (!strat->rightGB) 4375 enterTShift(strat->P,strat); 4375 4376 } 4376 4377 } … … 4393 4394 for (int k = 0; k <= strat->sl; ++k) 4394 4395 { 4396 if ((strat->fromQ!=NULL) && (strat->fromQ[k])) continue; // do not reduce Q_k 4395 4397 for (int j = 0; j<=strat->tl; ++j) 4396 4398 { … … 4457 4459 4458 4460 4459 ideal freegb(ideal I)4461 ideal freegb(ideal F) 4460 4462 { 4461 4463 assume(rIsLPRing(currRing)); 4462 assume(idIsInV(I)); 4463 ideal RS = kStdShift(I,NULL, testHomog, NULL,NULL,0,0,NULL); 4464 assume(idIsInV(F)); 4465 ideal RS = kStdShift(F, NULL, testHomog, NULL); 4466 idSkipZeroes(RS); // is this even necessary? 4467 assume(idIsInV(RS)); 4468 return(RS); 4469 } 4470 4471 ideal rightgb(ideal F, ideal Q) 4472 { 4473 assume(rIsLPRing(currRing)); 4474 assume(idIsInV(F)); 4475 ideal RS = kStdShift(F, Q, testHomog, NULL, NULL, 0, 0, NULL, TRUE); 4464 4476 idSkipZeroes(RS); // is this even necessary? 4465 4477 assume(idIsInV(RS)); -
kernel/GBEngine/kutil.cc
r18a3df rb849856 8035 8035 Print("\n %d:",i); 8036 8036 p_wrp(strat->S[i], currRing, strat->tailRing); 8037 if (strat->fromQ!=NULL && strat->fromQ[i]) 8038 Print(" (from Q)"); 8037 8039 } 8038 8040 strat->news = FALSE; … … 9151 9153 enterT(h,strat); 9152 9154 strat->S_2_R[i] = strat->tl; 9155 #ifdef HAVE_SHIFTBBA 9156 if (currRing->isLPring) 9157 enterTShift(h, strat); 9158 #endif 9153 9159 } 9154 9160 } … … 9247 9253 enterT(h,strat); 9248 9254 strat->S_2_R[i] = strat->tl; 9255 #ifdef HAVE_SHIFTBBA 9256 if (currRing->isLPring) 9257 enterTShift(h, strat); 9258 #endif 9249 9259 } 9250 9260 if (suc!= -1) updateS(toT,strat); … … 9361 9371 void enterSBbaShift (LObject &p,int atS,kStrategy strat, int atR) 9362 9372 { 9363 int toInsert = itoInsert(p.p, strat->tailRing);9364 for (int i = toInsert; i > 0; i--)9373 int maxPossibleShift = p_mLPmaxPossibleShift(p.p, strat->tailRing); 9374 for (int i = maxPossibleShift; i > 0; i--) 9365 9375 { 9366 9376 LObject qq; … … 10204 10214 strat->cp = 0; 10205 10215 strat->c3 = 0; 10216 #ifdef HAVE_SHIFTBBA 10217 strat->cv = 0; 10218 #endif 10206 10219 strat->tail = pInit(); 10207 10220 /*- set s -*/ … … 10267 10280 updateS(TRUE,strat); 10268 10281 } 10269 if (strat->fromQ!=NULL) omFreeSize(strat->fromQ,IDELEMS(strat->Shdl)*sizeof(int)); 10270 strat->fromQ=NULL; 10282 #ifdef HAVE_SHIFTBBA 10283 if (!(rIsLPRing(currRing) && strat->rightGB)) // for right GB, we need to check later whether a poly is from Q 10284 #endif 10285 { 10286 if (strat->fromQ!=NULL) omFreeSize(strat->fromQ,IDELEMS(strat->Shdl)*sizeof(int)); 10287 strat->fromQ=NULL; 10288 } 10271 10289 assume(kTest_TS(strat)); 10272 10290 } … … 10288 10306 pLmFree(&strat->tail); 10289 10307 strat->syzComp=0; 10308 10309 #ifdef HAVE_SHIFTBBA 10310 if (rIsLPRing(currRing) && strat->rightGB) 10311 { 10312 if (strat->fromQ!=NULL) omFreeSize(strat->fromQ,IDELEMS(strat->Shdl)*sizeof(int)); 10313 strat->fromQ=NULL; 10314 } 10315 #endif 10290 10316 } 10291 10317 … … 12180 12206 12181 12207 #ifdef HAVE_SHIFTBBA 12182 /* including the self pairs */ 12183 void updateSShift(kStrategy strat) 12184 { 12185 /* to use after updateS(toT=FALSE,strat) */ 12186 /* fills T with shifted elt's of S */ 12187 int i; 12188 LObject h; 12189 int atT = -1; // or figure out smth better 12190 strat->tl = -1; // init 12191 for (i=0; i<=strat->sl; i++) 12192 { 12193 memset(&h,0,sizeof(h)); 12194 h.p = strat->S[i]; 12195 strat->initEcart(&h); 12196 h.sev = strat->sevS[i]; 12197 h.t_p = NULL; 12198 h.GetTP(); // creates correct t_p 12199 /*puts the elements of S with their shifts to T*/ 12200 // int atT, int uptodeg, int lV) 12201 strat->S_2_R[i] = strat->tl + 1; // the el't with shift 0 will be inserted first 12202 // need a small check for above; we insert >=1 elements 12203 // insert this check into kTest_TS ? 12204 enterTShift(h,strat,atT); 12205 } 12206 /* what about setting strat->tl? */ 12208 // creates if possible (q,p), (shifts(q),p) 12209 static void enterOnePairWithShifts (int q_inS /*also i*/, poly q, poly p, int ecartp, int p_isFromQ, kStrategy strat, int atR, int p_lastVblock, int q_lastVblock) 12210 { 12211 // note: ecart and isFromQ is for p 12212 assume(q_inS < 0 || strat->S[q_inS] == q); // if q is from S, q_inS should be the index of q in S 12213 assume(pmFirstVblock(p) == 1); 12214 assume(pmFirstVblock(q) == 1); 12215 assume(p_lastVblock == pmLastVblock(p)); 12216 assume(q_lastVblock == pmLastVblock(q)); 12217 12218 // TODO: is ecartq = 0 still ok? 12219 int ecartq = 0; //Hans says it's ok; we're in the homog case, no ecart 12220 12221 int q_isFromQ = 0; 12222 if (strat->fromQ != NULL && q_inS >= 0) 12223 q_isFromQ = strat->fromQ[q_inS]; 12224 12225 int degbound = currRing->N/currRing->isLPring; 12226 int neededShift = p_lastVblock - 1; 12227 int maxPossibleShift = degbound - q_lastVblock; 12228 int maxShift = si_min(neededShift, maxPossibleShift); 12229 int firstShift = (q == p ? 1 : 0); // do not add (q,p) if q=p 12230 for (int j = firstShift; j <= maxShift; j++) 12231 { 12232 poly qq = pLPCopyAndShiftLM(q, j); 12233 enterOnePairShift(qq, p, ecartp, p_isFromQ, strat, -1, ecartq, q_isFromQ, j, q_inS); 12234 } 12207 12235 } 12208 12236 #endif 12209 12237 12210 12238 #ifdef HAVE_SHIFTBBA 12211 void initBuchMoraShift (ideal F,ideal Q,kStrategy strat) 12212 { 12213 strat->interpt = BTEST1(OPT_INTERRUPT); 12214 strat->kHEdge=NULL; 12215 if (rHasGlobalOrdering(currRing)) strat->kHEdgeFound=FALSE; 12216 /*- creating temp data structures------------------- -*/ 12217 strat->cp = 0; 12218 strat->c3 = 0; 12219 strat->cv = 0; 12220 strat->tail = pInit(); 12221 /*- set s -*/ 12222 strat->sl = -1; 12223 /*- set L -*/ 12224 strat->Lmax = setmaxL; 12225 strat->Ll = -1; 12226 strat->L = initL(); 12227 /*- set B -*/ 12228 strat->Bmax = setmaxL; 12229 strat->Bl = -1; 12230 strat->B = initL(); 12231 /*- set T -*/ 12232 strat->tl = -1; 12233 strat->tmax = setmaxT; 12234 strat->T = initT(); 12235 strat->R = initR(); 12236 strat->sevT = initsevT(); 12237 /*- init local data struct.---------------------------------------- -*/ 12238 strat->P.ecart=0; 12239 strat->P.length=0; 12240 if (rHasLocalOrMixedOrdering(currRing)) 12241 { 12242 if (strat->kHEdge!=NULL) pSetComp(strat->kHEdge, strat->ak); 12243 if (strat->kNoether!=NULL) pSetComp(strat->kNoetherTail(), strat->ak); 12244 } 12245 if(rField_is_Ring(currRing)) 12246 { 12247 /*Shdl=*/initSL(F, Q,strat); /*sets also S, ecartS, fromQ */ 12248 } 12249 { 12250 if(TEST_OPT_SB_1) 12251 { 12252 int i; 12253 ideal P=idInit(IDELEMS(F)-strat->newIdeal,F->rank); 12254 for (i=strat->newIdeal;i<IDELEMS(F);i++) 12255 { 12256 P->m[i-strat->newIdeal] = F->m[i]; 12257 F->m[i] = NULL; 12258 } 12259 initSSpecial(F,Q,P,strat); 12260 for (i=strat->newIdeal;i<IDELEMS(F);i++) 12261 { 12262 F->m[i] = P->m[i-strat->newIdeal]; 12263 P->m[i-strat->newIdeal] = NULL; 12264 } 12265 idDelete(&P); 12266 } 12267 else 12268 { 12269 /*Shdl=*/initSL(F, Q,strat); /*sets also S, ecartS, fromQ */ 12270 // /*Shdl=*/initS(F, Q,strat); /*sets also S, ecartS, fromQ */ 12271 } 12272 } 12273 strat->fromT = FALSE; 12274 if (!TEST_OPT_SB_1) 12275 { 12276 /* the only change: we do not fill the set T*/ 12277 if(!rField_is_Ring(currRing)) updateS(FALSE,strat); 12278 } 12279 if (strat->fromQ!=NULL) omFreeSize(strat->fromQ,IDELEMS(strat->Shdl)*sizeof(int)); 12280 strat->fromQ=NULL; 12281 /* more changes: fill the set T with all the shifts of elts of S*/ 12282 /* is done by other procedure */ 12239 // creates if possible (q,p), use it when q is already shifted 12240 static void enterOnePairWithoutShifts (int p_inS /*also i*/, poly q, poly p, int ecartq, int q_isFromQ, kStrategy strat, int atR, int p_lastVblock, int q_shift) 12241 { 12242 // note: ecart and isFromQ is for p 12243 assume(p_inS < 0 || strat->S[p_inS] == p); // if p is from S, p_inS should be the index of p in S 12244 assume(pmFirstVblock(p) == 1); 12245 assume(p_lastVblock == pmLastVblock(p)); 12246 assume(q_shift == pmFirstVblock(q) - 1); 12247 12248 // TODO: is ecartp = 0 still ok? 12249 int ecartp = 0; //Hans says it's ok; we're in the homog e:, no ecart 12250 12251 int p_isFromQ = 0; 12252 if (strat->fromQ != NULL && p_inS >= 0) 12253 p_isFromQ = strat->fromQ[p_inS]; 12254 12255 int maxNeededShift = p_lastVblock - 1; 12256 if (q_shift <= maxNeededShift) 12257 enterOnePairShift(q, p, ecartp, p_isFromQ, strat, -1, ecartq, q_isFromQ, q_shift, -1); 12283 12258 } 12284 12259 #endif 12285 12260 12286 12261 #ifdef HAVE_SHIFTBBA 12287 /*1 12288 * put the pairs (sh \dot s[i],p) into the set B, ecart=ecart(p) 12289 */ 12290 static void enterOnePairManyShifts (int i, poly p, int ecart, int isFromQ, kStrategy strat, int atR) 12291 { 12292 poly s = strat->S[i]; 12293 assume(i<=strat->sl); // from OnePair 12294 12295 /* cycles through all shifts of s[i] until uptodeg - lastVblock(s[i]) */ 12296 /* that is create the pairs (f, s \dot g) */ 12297 12298 // poly q = pCopy(pHead(strat->S[i])); // lm in currRing 12299 // pNext(q) = prCopyR(pNext(strat->S[i]),strat->tailRing,currRing); // zero shift 12300 12301 /* determine how many elements we have to insert for a given s[i] */ 12302 /* x(0)y(1)z(2) : lastVblock-1=2, to add until lastVblock=uptodeg-1 */ 12303 /* hence, a total number of elt's to add is: */ 12304 /* int toInsert = 1 + (uptodeg-1) - (pLastVblock(p.p, lV) -1); */ 12305 int toInsert = itoInsert(s, currRing); 12306 12307 12308 /* these vars hold for all shifts of s[i] */ 12309 int ecartq = 0; //Hans says it's ok; we're in the homog case, no ecart 12310 12311 int qfromQ; 12312 if (strat->fromQ != NULL) 12313 { 12314 qfromQ = strat->fromQ[i]; 12315 } 12316 else 12317 { 12318 qfromQ = -1; 12319 } 12320 12321 // for the 0th shift: insert the orig. pair 12322 enterOnePairShift(s, p, ecart, isFromQ, strat, -1, ecartq, qfromQ, 0, i); 12323 12324 for (int j = 1; j <= toInsert; j++) 12325 { 12326 poly q = pLPCopyAndShiftLM(s, j); 12327 enterOnePairShift(q, p, ecart, isFromQ, strat, -1, ecartq, qfromQ, j, i); 12328 } 12329 } 12330 #endif 12331 12332 #ifdef HAVE_SHIFTBBA 12333 /*1 12334 * put the pairs (sh \dot qq,p) into the set B, ecart=ecart(p) 12335 * despite the name, not only self shifts 12336 */ 12337 void enterOnePairSelfShifts (poly qq, poly p, int ecart, int isFromQ, kStrategy strat, int /*atR*/) 12338 { 12339 /* should cycle through all shifts of q until uptodeg - lastVblock(q) */ 12340 /* that is create the pairs (f, s \dot g) */ 12341 12342 int toInsert = itoInsert(qq, currRing); 12343 12344 /* these vars hold for all shifts of s[i] */ 12345 int ecartq = 0; //Hans says it's ok; we're in the homog case, no ecart 12346 int qfromQ = 0; // strat->fromQ[i]; 12347 12348 /* since this proc is applied twice for (h, s*g) and (g,s*h), init j with 1 */ 12349 for (int j = 1; j<= toInsert; j++) 12350 { 12351 poly q = pLPCopyAndShiftLM(qq, j); 12352 enterOnePairShift(q, p, ecart, isFromQ, strat, -1, ecartq, qfromQ, j, -1); 12353 } 12354 } 12355 #endif 12356 12357 #ifdef HAVE_SHIFTBBA 12262 12263 #ifdef KDEBUG 12264 // enable to print which pairs are considered or discarded and why 12265 /* #define CRITERION_DEBUG */ 12266 #endif 12358 12267 /*2 12359 12268 * put the pair (q,p) into the set B, ecart=ecart(p), q is the shift of some s[i] … … 12361 12270 void enterOnePairShift (poly q, poly p, int ecart, int isFromQ, kStrategy strat, int atR, int ecartq, int qisFromQ, int shiftcount, int ifromS) 12362 12271 { 12272 #ifdef CRITERION_DEBUG 12273 if (TEST_OPT_DEBUG) 12274 { 12275 PrintS("Consider pair ("); wrp(q); PrintS(", "); wrp(p); PrintS(")"); PrintLn(); 12276 // also write the LMs in separate lines: 12277 poly lmq = pHead(q); 12278 poly lmp = pHead(p); 12279 pSetCoeff(lmq, n_Init(1, currRing->cf)); 12280 pSetCoeff(lmp, n_Init(1, currRing->cf)); 12281 Print(" %s\n", pString(lmq)); 12282 Print(" %s\n", pString(lmp)); 12283 pLmDelete(lmq); 12284 pLmDelete(lmp); 12285 } 12286 #endif 12363 12287 12364 12288 /* Format: q and p are like strat->P.p, so lm in CR, tail in TR */ … … 12370 12294 assume(p_CheckIsFromRing(pNext(p),strat->tailRing)); 12371 12295 12372 #ifdef KDEBUG12373 // if (TEST_OPT_DEBUG)12374 // {12375 // PrintS("enterOnePairShift(q,p) invoked with q = ");12376 // wrp(q); // wrp(pHead(q));12377 // PrintS(", p = ");12378 // wrp(p); //wrp(pHead(p));12379 // PrintLn();12380 // }12381 #endif12382 12383 12296 /* poly q stays for s[i], ecartq = ecart(q), qisFromQ = applies to q */ 12384 12297 … … 12397 12310 Lp.lcm = p_Lcm(p,q, currRing); // q is what was strat->S[i], so a poly in LM/TR presentation 12398 12311 12399 /* apply the V criterion */ 12400 if (!pIsInV(Lp.lcm)) 12401 { 12402 #ifdef KDEBUG 12403 if (TEST_OPT_DEBUG) 12404 { 12405 PrintS("V crit applied to q = "); 12406 wrp(q); // wrp(pHead(q)); 12407 PrintS(", p = "); 12408 wrp(p); //wrp(pHead(p)); 12409 PrintLn(); 12410 } 12411 #endif 12312 /* the V criterion */ 12313 if (!pmIsInV(Lp.lcm)) 12314 { 12315 strat->cv++; // counter for applying the V criterion 12412 12316 pLmFree(Lp.lcm); 12413 /* + counter for applying the V criterion */ 12414 strat->cv++; 12317 #ifdef CRITERION_DEBUG 12318 if (TEST_OPT_DEBUG) PrintS("--- V crit\n"); 12319 #endif 12415 12320 return; 12416 12321 } … … 12437 12342 strat->cp++; 12438 12343 pLmFree(Lp.lcm); 12344 #ifdef CRITERION_DEBUG 12345 if (TEST_OPT_DEBUG) PrintS("--- prod crit\n"); 12346 #endif 12439 12347 return; 12440 12348 } … … 12444 12352 { 12445 12353 pLmFree(Lp.lcm); 12354 #ifdef CRITERION_DEBUG 12355 if (TEST_OPT_DEBUG) PrintS("--- ecartq > ecart\n"); 12356 #endif 12446 12357 return; 12447 12358 /*the pair is (s[i],t[.]), discard it if the ecart is too big*/ … … 12466 12377 { 12467 12378 pLmFree(Lp.lcm); 12379 #ifdef CRITERION_DEBUG 12380 if (TEST_OPT_DEBUG) Print("--- divided by B[%d]\n", j); 12381 #endif 12468 12382 return; 12469 12383 } … … 12475 12389 { 12476 12390 deleteInL(strat->B,&strat->Bl,j,strat); 12391 #ifdef CRITERION_DEBUG 12392 if (TEST_OPT_DEBUG) Print("divides B[%d] -> delete B[%d]\n", j, j); 12393 #endif 12477 12394 strat->c3++; 12478 12395 } … … 12504 12421 strat->cp++; 12505 12422 pLmFree(Lp.lcm); 12423 #ifdef CRITERION_DEBUG 12424 if (TEST_OPT_DEBUG) PrintS("--- prod crit\n"); 12425 #endif 12506 12426 return; 12507 12427 } … … 12509 12429 { 12510 12430 pLmFree(Lp.lcm); 12431 #ifdef CRITERION_DEBUG 12432 if (TEST_OPT_DEBUG) PrintS("--- ecartq > ecart\n"); 12433 #endif 12511 12434 return; 12512 12435 /*the pair is (s[i],t[.]), discard it if the ecart is too big*/ … … 12527 12450 { 12528 12451 pLmFree(Lp.lcm); 12452 #ifdef CRITERION_DEBUG 12453 if (TEST_OPT_DEBUG) Print("--- divided by B[%d]\n", j); 12454 #endif 12529 12455 return; 12530 12456 } … … 12535 12461 { 12536 12462 deleteInL(strat->B,&strat->Bl,j,strat); 12463 #ifdef CRITERION_DEBUG 12464 if (TEST_OPT_DEBUG) Print("divides B[%d] -> delete B[%d]\n", j, j); 12465 #endif 12537 12466 strat->c3++; 12538 12467 } … … 12547 12476 pNorm(p); 12548 12477 if ((q==NULL) || (p==NULL)) 12478 { 12479 #ifdef CRITERION_DEBUG 12480 if (TEST_OPT_DEBUG) PrintS("--- q == NULL || p == NULL\n"); 12481 #endif 12549 12482 return; 12483 } 12550 12484 if ((strat->fromQ!=NULL) && (isFromQ!=0) && (qfromQ!=0)) 12485 { 12551 12486 Lp.p=NULL; 12487 #ifdef CRITERION_DEBUG 12488 if (TEST_OPT_DEBUG) PrintS("--- pair from Q\n"); 12489 #endif 12490 } 12552 12491 else 12553 12492 { … … 12607 12546 */ 12608 12547 if (Lp.lcm!=NULL) pLmFree(Lp.lcm); 12548 #ifdef CRITERION_DEBUG 12549 if (TEST_OPT_DEBUG) PrintS("--- S-poly = 0\n"); 12550 #endif 12609 12551 } 12610 12552 else … … 12643 12585 l = strat->posInL(strat->B,strat->Bl,&Lp,strat); 12644 12586 enterL(&strat->B,&strat->Bl,&strat->Bmax,Lp,l); 12587 #ifdef CRITERION_DEBUG 12588 if (TEST_OPT_DEBUG) PrintS("+++ Entered pair\n"); 12589 #endif 12645 12590 } 12646 12591 } … … 12655 12600 void initenterpairsShift (poly h,int k,int ecart,int isFromQ, kStrategy strat, int atR) 12656 12601 { 12602 int h_lastVblock = pmLastVblock(h); 12603 assume(h_lastVblock != 0 || pLmIsConstantComp(h)); 12604 // TODO: is it allowed to skip pairs with constants? also with constants from other components? 12605 if (h_lastVblock == 0) return; 12606 assume(pmFirstVblock(h) == 1); 12657 12607 /* h comes from strat->P.p, that is LObject with LM in currRing and Tail in tailRing */ 12658 12608 // atR = -1; … … 12660 12610 || (pGetComp(h)<=strat->syzComp)) 12661 12611 { 12662 int j;12612 int i,j; 12663 12613 BOOLEAN new_pair=FALSE; 12664 12614 12615 int degbound = currRing->N/currRing->isLPring; 12616 int maxShift = degbound - h_lastVblock; 12617 12665 12618 if (pGetComp(h)==0) 12666 12619 { 12620 if (strat->rightGB) 12621 { 12622 if (isFromQ) 12623 { 12624 // pairs (shifts(h),s[1..k]), (h, s[1..k]) 12625 for (i=0; i<=maxShift; i++) 12626 { 12627 poly hh = pLPCopyAndShiftLM(h, i); 12628 for (j=0; j<=k; j++) 12629 { 12630 if (strat->fromQ == NULL || !strat->fromQ[j]) 12631 { 12632 new_pair=TRUE; 12633 poly s = strat->S[j]; 12634 enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, pmLastVblock(s), i); 12635 } 12636 } 12637 } 12638 } 12639 else 12640 { 12641 new_pair=TRUE; 12642 for (j=0; j<=k; j++) 12643 { 12644 poly s = strat->S[j]; 12645 if (strat->fromQ != NULL && strat->fromQ[j]) 12646 { 12647 // pairs (shifts(s[j]),h), (s[j],h) 12648 enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s)); 12649 } 12650 else 12651 { 12652 // pair (h, s[j]) 12653 enterOnePairWithoutShifts(j, h, s, ecart, isFromQ, strat, atR, pmLastVblock(s), 0); 12654 } 12655 } 12656 } 12657 } 12667 12658 /* for Q!=NULL: build pairs (f,q),(f1,f2), but not (q1,q2)*/ 12668 if ((isFromQ)&&(strat->fromQ!=NULL))12669 { 12670 for (j=0; j<=k; j++)12671 {12659 else if ((isFromQ)&&(strat->fromQ!=NULL)) 12660 { 12661 // pairs (shifts(s[1..k]),h), (s[1..k],h) 12662 for (j=0; j<=k; j++) { 12672 12663 if (!strat->fromQ[j]) 12673 12664 { 12674 12665 new_pair=TRUE; 12675 enterOnePairManyShifts(j,h,ecart,isFromQ,strat, atR); 12676 // other side pairs: 12677 enterOnePairSelfShifts(h,strat->S[j],ecart,isFromQ,strat, atR); 12678 //Print("j:%d, Ll:%d\n",j,strat->Ll); 12666 poly s = strat->S[j]; 12667 enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s)); 12679 12668 } 12680 12669 } 12670 // pairs (shifts(h),s[1..k]) 12671 if (new_pair) 12672 { 12673 for (i=1; i<=maxShift; i++) 12674 { 12675 poly hh = pLPCopyAndShiftLM(h, i); 12676 for (j=0; j<=k; j++) 12677 { 12678 if (!strat->fromQ[j]) 12679 { 12680 poly s = strat->S[j]; 12681 enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, pmLastVblock(s), i); 12682 } 12683 } 12684 } 12685 } 12681 12686 } 12682 12687 else 12683 12688 { 12684 12689 new_pair=TRUE; 12690 // pairs (shifts(s[1..k]),h), (s[1..k],h) 12691 for (j=0; j<=k; j++) { 12692 poly s = strat->S[j]; 12693 // TODO: cache lastVblock of s[1..k] for later use 12694 enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s)); 12695 } 12696 // pairs (shifts(h),s[1..k]), (shifts(h), h) 12697 for (i=1; i<=maxShift; i++) 12698 { 12699 poly hh = pLPCopyAndShiftLM(h, i); 12700 for (j=0; j<=k; j++) 12701 { 12702 poly s = strat->S[j]; 12703 enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, pmLastVblock(s), i); 12704 } 12705 enterOnePairWithoutShifts(-1, hh, h, ecart, isFromQ, strat, atR, h_lastVblock, i); 12706 } 12707 } 12708 } 12709 else 12710 { 12711 new_pair=TRUE; 12712 if (strat->rightGB) 12713 { 12685 12714 for (j=0; j<=k; j++) 12686 12715 { 12687 enterOnePairManyShifts(j,h,ecart,isFromQ,strat, atR); 12688 // other side pairs 12689 enterOnePairSelfShifts(h,strat->S[j],ecart,isFromQ,strat, atR); 12690 } 12691 /* HERE we put (h, s*h) pairs */ 12692 /* enterOnePairSelfShifts (poly qq, poly p, int ecart, int isFromQ, kStrategy strat, int atR, int uptodeg, int lV); */ 12693 enterOnePairSelfShifts (h, h, ecart, isFromQ, strat, atR); 12694 } 12695 } 12696 else 12697 { 12698 for (j=0; j<=k; j++) 12699 { 12700 if ((pGetComp(h)==pGetComp(strat->S[j])) 12701 || (pGetComp(strat->S[j])==0)) 12702 { 12703 new_pair=TRUE; 12704 enterOnePairManyShifts(j,h,ecart,isFromQ,strat, atR); 12705 // other side pairs 12706 enterOnePairSelfShifts(h,strat->S[j],ecart,isFromQ,strat, atR); 12707 //Print("j:%d, Ll:%d\n",j,strat->Ll); 12708 } 12709 } 12710 /* HERE we put (h, s*h) pairs */ 12711 enterOnePairSelfShifts (h, h, ecart, isFromQ, strat, atR); 12716 if ((pGetComp(h)==pGetComp(strat->S[j])) 12717 || (pGetComp(strat->S[j])==0)) 12718 { 12719 assume(isFromQ == 0); // this case is not handeled here and should also never happen 12720 poly s = strat->S[j]; 12721 if (strat->fromQ != NULL && strat->fromQ[j]) 12722 { 12723 // pairs (shifts(s[j]),h), (s[j],h) 12724 enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s)); 12725 } 12726 else 12727 { 12728 // pair (h, s[j]) 12729 enterOnePairWithoutShifts(j, h, s, ecart, isFromQ, strat, atR, pmLastVblock(s), 0); 12730 } 12731 } 12732 } 12733 } 12734 else 12735 { 12736 // pairs (shifts(s[1..k]),h), (s[1..k],h) 12737 for (j=0; j<=k; j++) { 12738 if ((pGetComp(h)==pGetComp(strat->S[j])) 12739 || (pGetComp(strat->S[j])==0)) 12740 { 12741 poly s = strat->S[j]; 12742 enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s)); 12743 } 12744 } 12745 // pairs (shifts(h),s[1..k]), (shifts(h), h) 12746 for (i=1; i<=maxShift; i++) 12747 { 12748 poly hh = pLPCopyAndShiftLM(h, i); 12749 for (j=0; j<=k; j++) 12750 { 12751 if ((pGetComp(h)==pGetComp(strat->S[j])) 12752 || (pGetComp(strat->S[j])==0)) 12753 { 12754 poly s = strat->S[j]; 12755 enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, pmLastVblock(s), i); 12756 } 12757 } 12758 enterOnePairWithoutShifts(-1, hh, h, ecart, isFromQ, strat, atR, h_lastVblock, i); 12759 } 12760 } 12712 12761 } 12713 12762 … … 12738 12787 ||(pGetComp(h)<=strat->syzComp))) 12739 12788 { 12740 //Print("start clearS k=%d, pos=%d, sl=%d\n",k,pos,strat->sl);12741 12789 unsigned long h_sev = pGetShortExpVector(h); 12742 12790 loop 12743 12791 { 12744 12792 if (j > k) break; 12745 clearS(h,h_sev, &j,&k,strat); 12793 // TODO this currently doesn't clear all possible elements because of commutative division 12794 if (!(strat->rightGB && strat->fromQ != NULL && strat->fromQ[j])) 12795 clearS(h,h_sev, &j,&k,strat); 12746 12796 j++; 12747 12797 } 12748 //Print("end clearS sl=%d\n",strat->sl); 12749 } 12750 // PrintS("end enterpairs\n"); 12798 } 12751 12799 } 12752 12800 #endif … … 12765 12813 pAssume(p.p != NULL); 12766 12814 12767 int toInsert = itoInsert(p.p, strat->tailRing);12768 12769 for (int i = 1; i <= toInsert; i++)12815 int maxPossibleShift = p_mLPmaxPossibleShift(p.p, strat->tailRing); 12816 12817 for (int i = 1; i <= maxPossibleShift; i++) 12770 12818 { 12771 12819 LObject qq; -
kernel/GBEngine/kutil.h
rc723156 rb849856 11 11 #include <string.h> 12 12 13 #include "omalloc/omalloc.h" 13 14 #ifdef HAVE_OMALLOC 14 #include "omalloc/omalloc.h"15 15 #include "omalloc/omallocClass.h" 16 #else17 #include "xalloc/omalloc.h"18 16 #endif 19 17 -
kernel/GBEngine/shiftgb.cc
r18a3df rb849856 43 43 } 44 44 45 /* for poly in lmCR/tailTR presentation */ 46 int itoInsert(poly p, const ring r) 45 int p_mLPmaxPossibleShift(poly p, const ring r) 47 46 { 48 /* the below situation (commented out) might happen! */ 49 // if (r == currRing) 50 // { 51 // "Current ring is not expected in toInsert"; 52 // return(0); 53 // } 54 /* compute the number of insertions */ 55 int i = p_mLastVblock(p, currRing); 56 if (pNext(p) != NULL) 57 { 58 i = si_max(i, p_LastVblock(pNext(p), r) ); 59 } 60 // i = uptodeg - i +1; 47 int lastBlock = p_mLastVblock(p, r); 48 if (lastBlock == 0) return 0; 61 49 int uptodeg = r->N/r->isLPring; 62 // p_wrp(p,currRing,r); Print("----i:%d",i); PrintLn(); 63 return uptodeg - i; 50 return uptodeg - lastBlock; 64 51 } 65 52 -
kernel/GBEngine/shiftgb.h
r18a3df rb849856 15 15 #define pLPCopyAndShiftLM(p, sh) p_LPCopyAndShiftLM(p, sh, currRing) 16 16 17 int itoInsert(poly p, const ring r); 17 int p_mLPmaxPossibleShift(poly p, const ring r); 18 #define pmLPmaxPossibleShift(p) p_mLPmaxPossibleShift(p, currRing) 18 19 19 20 #endif -
kernel/GBEngine/tgb_internal.h
rc723156 rb849856 10 10 #define USE_NORO 1 11 11 12 #ifdef HAVE_OMALLOC13 12 #include "omalloc/omalloc.h" 14 #else15 #include "xalloc/omalloc.h"16 #endif17 13 18 14 //#define TGB_DEBUG -
kernel/GBEngine/tgbgauss.h
rc723156 rb849856 9 9 #include "coeffs/numbers.h" 10 10 #include "polys/monomials/p_polys.h" 11 #include "omalloc/omalloc.h" 11 12 #ifdef HAVE_OMALLOC 12 #include "omalloc/omalloc.h"13 13 #include "omalloc/omallocClass.h" 14 #else15 #include "xalloc/omalloc.h"16 14 #endif 17 15 -
kernel/oswrapper/feread.cc
rc723156 rb849856 18 18 #define READLINE_STATIC 19 19 #endif 20 #ifdef HAVE_OMALLOC21 20 #include "omalloc/omalloc.h" 22 #else23 #include "xalloc/omalloc.h"24 #endif25 21 #include "misc/options.h" 26 22 -
kernel/oswrapper/fereadl.c
rc723156 rb849856 11 11 12 12 #include "kernel/mod2.h" 13 #ifdef HAVE_OMALLOC14 13 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 14 19 15 #ifdef HAVE_FEREAD -
kernel/spectrum/GMPrat.cc
rc723156 rb849856 20 20 #endif 21 21 22 #ifdef HAVE_OMALLOC23 22 #include "omalloc/omalloc.h" 24 #else25 #include "xalloc/omalloc.h"26 #endif27 28 23 #include "kernel/spectrum/GMPrat.h" 29 24 -
kernel/structs.h
rc723156 rb849856 11 11 12 12 /* for omBin */ 13 #ifdef HAVE_OMALLOC14 13 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 14 19 15 #ifdef HAVE_RINGS -
libpolys/coeffs/coeffs.h
rc723156 rb849856 11 11 12 12 #include "misc/auxiliary.h" 13 #ifdef HAVE_OMALLOC14 13 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 14 19 15 #include "misc/sirandom.h" -
libpolys/coeffs/shortfl.h
rc723156 rb849856 8 8 */ 9 9 #include "misc/auxiliary.h" 10 #ifdef HAVE_OMALLOC11 10 #include "omalloc/omalloc.h" 12 #else13 #include "xalloc/omalloc.h"14 #endif15 11 16 12 #if SIZEOF_DOUBLE == SIZEOF_LONG -
libpolys/misc/int64vec.h
rc723156 rb849856 11 11 12 12 #include "misc/auxiliary.h" 13 #include "omalloc/omalloc.h" 13 14 #ifdef HAVE_OMALLOC 14 #include "omalloc/omalloc.h"15 15 #include "omalloc/omallocClass.h" 16 #else17 #include "xalloc/omalloc.h"18 16 #endif 19 17 -
libpolys/misc/intvec.cc
rc723156 rb849856 12 12 #include "misc/intvec.h" 13 13 #include "misc/options.h" 14 #ifdef HAVE_OMALLOC15 14 #include "omalloc/omalloc.h" 16 #else17 #include "xalloc/omalloc.h"18 #endif19 20 15 21 16 #pragma GCC push_options -
libpolys/misc/intvec.h
rc723156 rb849856 9 9 #include <string.h> 10 10 #include "misc/auxiliary.h" 11 #include "omalloc/omalloc.h" 11 12 #ifdef HAVE_OMALLOC 12 #include "omalloc/omalloc.h"13 13 #include "omalloc/omallocClass.h" 14 #else15 #include "xalloc/omalloc.h"16 14 #endif 17 15 -
libpolys/polys/mod_raw.cc
rc723156 rb849856 19 19 #include <unistd.h> 20 20 21 22 23 24 25 21 #include "misc/auxiliary.h" 26 27 22 #include "reporter/reporter.h" 28 29 23 #include "resources/feResource.h" 30 31 #ifdef HAVE_OMALLOC32 24 #include "omalloc/omalloc.h" 33 #else34 #include "xalloc/omalloc.h"35 #endif36 37 25 #include "mod_raw.h" 38 26 -
libpolys/polys/shiftop.cc
r18a3df rb849856 368 368 p_GetExpV(m,e,ri); 369 369 370 if (p_mLastVblock(m, e, ri) + sh > ri->N/lV) 371 { 372 Werror("letterplace degree bound is %d, but at least %d is needed for this shift", ri->N/lV, p_mLastVblock(m, e, ri) + sh); 373 } 370 374 for (int i = ri->N - sh*lV; i > 0; i--) 371 375 { … … 506 510 PrintLn(); WriteLPExpV(m2ExpV, ri); 507 511 #endif 508 if (m1Length + m2Length > ri->N) 509 { 510 WarnS("letterplace degree bound too low for this multiplication"); 511 } 512 for (int i = 1 + m1Length; i < 1 + m1Length + m2Length; ++i) 512 int last = m1Length + m2Length; 513 if (last > ri->N) 514 { 515 Werror("letterplace degree bound is %d, but at least %d is needed for this multiplication", ri->N/ri->isLPring, last/ri->isLPring); 516 last = ri->N; 517 } 518 for (int i = 1 + m1Length; i < 1 + last; ++i) 513 519 { 514 520 assume(m2ExpV[i - m1Length] <= 1); … … 531 537 PrintLn(); WriteLPExpV(m2ExpV, ri); 532 538 #endif 533 if (m1Length + m2Length > ri->N) 534 { 535 WarnS("letterplace degree bound too low for this multiplication"); 539 int last = m1Length + m2Length; 540 if (last > ri->N) 541 { 542 Werror("letterplace degree bound is %d, but at least %d is needed for this multiplication", ri->N/ri->isLPring, last/ri->isLPring); 543 last = ri->N; 536 544 } 537 545 538 546 // shift m1 by m2Length 539 for (int i = m2Length + m1Length; i >= 1 + m2Length; --i)547 for (int i = last; i >= 1 + m2Length; --i) 540 548 { 541 549 m1ExpV[i] = m1ExpV[i - m2Length]; -
libpolys/polys/weight0.c
rc723156 rb849856 8 8 9 9 #include "misc/auxiliary.h" 10 11 #ifdef HAVE_OMALLOC12 10 #include "omalloc/omalloc.h" 13 #else14 #include "xalloc/omalloc.h"15 #endif16 11 17 12 #include <math.h> -
libpolys/reporter/reporter.cc
rc723156 rb849856 13 13 #include "resources/feFopen.h" 14 14 //#include "options.h" 15 #ifdef HAVE_OMALLOC16 15 #include "omalloc/omalloc.h" 17 #else18 #include "xalloc/omalloc.h"19 #endif20 16 21 17 #include <stdlib.h> -
libpolys/reporter/s_buff.cc
rc723156 rb849856 11 11 12 12 #include "misc/auxiliary.h" 13 #ifdef HAVE_OMALLOC14 13 #include "omalloc/omalloc.h" 15 #else16 #include "xalloc/omalloc.h"17 #endif18 14 19 15 #include "reporter/s_buff.h" -
m4/options.m4
rc723156 rb849856 106 106 AC_MSG_RESULT(${OMALLOC_LIBS:-unset}) 107 107 fi 108 109 AM_CONDITIONAL([ENABLE_OMALLOC],[test "x$ENABLE_OMALLOC" = xyes])110 108 ]) 111 109 … … 148 146 else 149 147 OMALLOC_INCLUDES="-I$ac_abs_top_srcdir" 150 OMALLOC_LIBS="$ac_abs_top_builddir/ xalloc/libomalloc.la"148 OMALLOC_LIBS="$ac_abs_top_builddir/omalloc/libomalloc.la" 151 149 AC_SUBST(OMALLOC_INCLUDES) 152 150 AC_SUBST(OMALLOC_LIBS) … … 154 152 fi 155 153 156 157 AM_CONDITIONAL([ENABLE_OMALLOC],[test "x$ENABLE_OMALLOC" = xyes])158 154 ]) 159 155 -
omalloc/configure.ac
rc723156 rb849856 95 95 debug, 96 96 [ --enable-debug include backtrace stuff]) 97 98 AC_ARG_ENABLE(omalloc, 99 [AS_HELP_STRING([--disable-omalloc], [do NOT use omalloc but xalloc])], 100 [if test "x$enableval" = "xyes"; then 101 ENABLE_OMALLOC=yes 102 AH_TEMPLATE([HAVE_OMALLOC], [define if build with OMALLOC]) 103 AC_DEFINE([HAVE_OMALLOC],[1]) 104 else 105 ENABLE_OMALLOC=no 106 fi], 107 [ENABLE_OMALLOC=yes 108 AH_TEMPLATE([HAVE_OMALLOC], [define if build with OMALLOC]) 109 AC_DEFINE([HAVE_OMALLOC],[1]) 110 ]) 97 111 dnl lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll 98 112 dnl compiler/make config -
omalloc/omAllocFunc.c
rc723156 rb849856 7 7 * Created: 11/99 8 8 *******************************************************************/ 9 #include "omalloc/omConfig.h" 9 10 11 #ifdef HAVE_OMALLOC 10 12 #define malloc omMallocFunc 11 13 #define calloc omCallocFunc … … 20 22 #define OMALLOC_FUNC 21 23 #include <omalloc/omalloc.c> 24 #endif -
omalloc/omAllocSystem.c
rc723156 rb849856 13 13 14 14 #include "omConfig.h" 15 16 #ifdef HAVE_OMALLOC 15 17 #include "omDefaultConfig.h" 16 18 #include "omMalloc.h" … … 364 366 } 365 367 368 #endif /*HAVE_OMALLOC*/ 366 369 #endif /* OM_ALLOC_SYSTEM_C */ -
omalloc/omBin.c
rc723156 rb849856 8 8 #include "omalloc.h" 9 9 /* this should go away */ 10 11 #ifdef HAVE_OMALLOC 10 12 11 13 #ifdef OM_INTERNAL_DEBUG … … 796 798 return used; 797 799 } 800 #endif -
omalloc/omBinPage.c
rc723156 rb849856 7 7 #include <limits.h> 8 8 #include "omalloc.h" 9 10 #ifdef HAVE_OMALLOC 9 11 #include "omDefaultConfig.h" 10 12 … … 611 613 612 614 #endif /* ! OM_NDEBUG */ 615 #endif /* HAVE_OMALLOC*/ -
omalloc/omDebugTrack.c
rc723156 rb849856 8 8 #include <string.h> 9 9 #include "omConfig.h" 10 11 #ifdef HAVE_OMALLOC 10 12 #include "omDerivedConfig.h" 11 13 … … 767 769 } 768 770 #endif /*!OM_NDEBUG*/ 771 #endif -
omalloc/omError.c
rc723156 rb849856 8 8 #include <stdarg.h> 9 9 #include "omalloc.h" 10 11 #ifdef HAVE_OMALLOC 10 12 11 13 omError_t om_ErrorStatus = omError_NoError; … … 135 137 extern void omErrorBreak() 136 138 {} 139 #endif -
omalloc/omGetBackTrace.c
rc723156 rb849856 5 5 * Created: 11/99 6 6 *******************************************************************/ 7 #include "omalloc/omConfig.h" 8 9 #ifdef HAVE_OMALLOC 7 10 #ifndef OM_NDEBUG 8 11 … … 79 82 80 83 #endif /* ! OM_NDEBUG */ 84 #endif -
omalloc/omList.c
rc723156 rb849856 6 6 *******************************************************************/ 7 7 #include "omConfig.h" 8 9 #ifdef HAVE_OMALLOC 8 10 9 11 #ifndef NULL … … 258 260 } 259 261 #endif 262 #endif -
omalloc/omOpts.c
rc723156 rb849856 8 8 #include "omalloc.h" 9 9 #include "omDefaultConfig.h" 10 11 #ifdef HAVE_OMALLOC 10 12 11 13 omOpts_t om_Opts = … … 23 25 OM_DEFAULT_ERROR_HOOK 24 26 }; 27 #endif -
omalloc/omStats.c
rc723156 rb849856 7 7 #include <unistd.h> 8 8 #include "omConfig.h" 9 10 #ifdef HAVE_OMALLOC 9 11 #include "omDefaultConfig.h" 10 12 #include "omMalloc.h" 11 13 #include "omalloc.h" 14 12 15 13 16 omInfo_t om_Info = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; … … 144 147 fprintf(fd, "Pages: %8ld %8ld\n", om_Info.UsedPages, om_Info.AvailPages); 145 148 } 149 #else 150 #include "omalloc/xalloc.h" 151 int om_sing_opt_show_mem; /* dummy */ 152 struct omInfo_s om_Info; /* dummy */ 153 struct omOpts_s om_Opts; /* dummy */ 154 #endif -
omalloc/om_Alloc.c
rc723156 rb849856 9 9 10 10 #include "omalloc.h" 11 12 #ifdef HAVE_OMALLOC 11 13 /******************************************************************* 12 14 * … … 262 264 } 263 265 } 266 #endif 264 267 #endif /* OM_ALLOC_C */ -
omalloc/omalloc.h
rc723156 rb849856 11 11 #include <stdio.h> 12 12 #include <string.h> 13 14 #include "omalloc/omConfig.h" 15 #ifndef HAVE_OMALLOC 16 #include "omalloc/xalloc.h" 17 #else 13 18 14 19 #ifdef __cplusplus … … 26 31 #endif 27 32 28 #include "omalloc/omConfig.h"29 33 30 34 #if defined(OM_NDEBUG) && !defined(OM_ALLOC_INTERNAL) … … 62 66 #endif 63 67 68 #endif /* HAVE_OMALLOC */ 64 69 #endif /* OM_ALLOC_H */ -
omalloc/omallocClass.cc
rc723156 rb849856 11 11 #include <stdlib.h> 12 12 #include "omalloc/omallocClass.h" 13 14 13 // The C++ standard has ratified a change to the new operator. 15 14 //
Note: See TracChangeset
for help on using the changeset viewer.