Changeset 565e866 in git for Singular/LIB/dmod.lib
- Timestamp:
- Dec 23, 2008, 10:39:31 PM (15 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- 199ae72040d35b09813089e33464df761b5aad78
- Parents:
- 6045c31371ebacbf1acfc2f082225f05016f06b2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/dmod.lib
r6045c3 r565e866 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="$Id: dmod.lib,v 1.3 2 2008-12-09 16:50:21 levandov Exp $";2 version="$Id: dmod.lib,v 1.33 2008-12-23 21:39:31 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 27 27 @* OT) the classical Ann F^s algorithm from Oaku and Takayama (J. Pure 28 28 Applied Math., 1999), 29 @* LOT) Levandovskyy's modification of the Oaku-Takayama algorithm ( unpublished)29 @* LOT) Levandovskyy's modification of the Oaku-Takayama algorithm (ISSAC 2007) 30 30 @* BM) the Ann F^s algorithm by Briancon and Maisonobe (Remarques sur 31 31 l'ideal de Bernstein associe a des polynomes, preprint, 2002) 32 32 33 33 GUIDE: 34 @* - Ann F^s = I = I(F^s) = LD in D(R)[s] can be computed by SannfsBM SannfsOT, SannfsLOT34 @* - Ann F^s = I = I(F^s) = LD in D(R)[s] can be computed by SannfsBM, SannfsOT, SannfsLOT 35 35 @* - Ann^(1) F^s in D(R)[s] can be computed by Sannfslog 36 36 @* - global Bernstein polynomial bs resp. BS in K[s] can be computed by bernsteinBM 37 @* - Ann F^s0 = I(F^s0) = LD0 in D(R) can be computed by annfs0, annfsBM, annfsOT, annfsLOT 37 @* - Ann F^s0 = I(F^s0) = LD0 in D(R) can be computed by annfs0, annfsBM, annfsOT, annfsLOT, annfs2 38 38 @* - all the relevant data (LD, LD0, bs, PS) are computed by operatorBM 39 39 … … 49 49 annfsBMI(F[,eng]); compute Ann F^s and Bernstein ideal for a poly F=f1*..*fP (multivariate algorithm of Briancon-Maisonobe) 50 50 checkRoot(F,a[,S,eng]); check if a given rational is a root of the global Bernstein polynomial of F and compute its multiplicity 51 52 SECONDARY PROCEDURES FOR D-MODULES:53 54 51 annfsBM(F[,eng]); compute Ann F^s0 in D and Bernstein poly for a poly F (algorithm of Briancon-Maisonobe) 55 52 annfsLOT(F[,eng]); compute Ann F^s0 in D and Bernstein poly for a poly F (Levandovskyy modification of the Oaku-Takayama algorithm) 56 53 annfsOT(F[,eng]); compute Ann F^s0 in D and Bernstein poly for a poly F (algorithm of Oaku-Takayama) 57 54 SannfsBM(F[,eng]); compute Ann F^s in D[s] for a poly F (algorithm of Briancon-Maisonobe) 58 SannfsBFCT(F[,eng]); compute Ann F^s in D[s] for a poly F (algorithm of Briancon-Maisonobe )55 SannfsBFCT(F[,eng]); compute Ann F^s in D[s] for a poly F (algorithm of Briancon-Maisonobe, other output ordering) 59 56 SannfsLOT(F[,eng]); compute Ann F^s in D[s] for a poly F (Levandovskyy modification of the Oaku-Takayama algorithm) 60 57 SannfsOT(F[,eng]); compute Ann F^s in D[s] for a poly F (algorithm of Oaku-Takayama) 61 annfs0(I,F [,eng]); compute Ann F^s0 in D and Bernstein poly from the known Ann F^s in D[s] 58 annfs0(I,F [,eng]); compute Ann F^s0 in D and Bernstein poly from the known Ann F^s in D[s] 59 annfs2(I,F [,eng]); compute Ann F^s0 in D and Bernstein poly from the known Ann F^s in D[s] by using a trick of Noro 60 annfsRB(I,F [,eng]); compute Ann F^s0 in D and Bernstein poly from the known Ann F^s in D[s] by reduceB strategy of Macaulay 62 61 checkRoot1(I,F,a[,eng]); check whether a rational is a root of the global Bernstein polynomial of F from the known Ann F^s in D[s] 63 62 checkRoot2(I,F,a[,eng]); check whether a rational is a root of the global Bernstein polynomial of F and compute its multiplicity from the known Ann F^s in D[s] 64 checkFactor(I,F,q s[,eng]); check whether a polynomial qsin K[s] is a factor of the global Bernstein polynomial of F from the known Ann F^s in D[s]63 checkFactor(I,F,q[,eng]); check whether a polynomial q in K[s] is a factor of the global Bernstein polynomial of F from the known Ann F^s in D[s] 65 64 66 65 AUXILIARY PROCEDURES: … … 72 71 minIntRoot(P,fact); minimal integer root among the roots of a maximal ideal P 73 72 varnum(s); the number of the variable with the name s 73 74 74 75 75 SEE ALSO: gmssing_lib, bfct_lib, dmodapp_lib … … 92 92 "MAIN PROCEDURES:"; 93 93 example annfs; 94 example annfs0;95 94 example Sannfs; 96 95 example Sannfslog; … … 101 100 example annfsBMI; 102 101 example checkRoot; 102 example annfs0; 103 example annfs2; 104 example annfsRB; 105 example annfs2; 103 106 "SECONDARY D-MOD PROCEDURES:"; 104 107 example annfsBM; … … 108 111 example SannfsLOT; 109 112 example SannfsOT; 113 example SannfsBFCT; 110 114 example checkRoot1; 111 115 example checkRoot2; … … 130 134 @* - the ideal LD (which is a Groebner basis) is the needed D-module structure, 131 135 @* - the list BS is the list of roots and multiplicities of a Bernstein polynomial of f. 132 @*If @code{printlevel}=1, progress debug messages will be printed,133 @* if @code{printlevel}>=2, all the debug messages will be printed.136 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 137 @* if @code{printlevel}>=2, all the debug messages will be printed. 134 138 EXAMPLE: example annfs; shows examples 135 139 " … … 252 256 @* In the output ring: 253 257 @* - the ideal LD is the needed D-module structure. 254 @*If @code{printlevel}=1, progress debug messages will be printed,255 @* if @code{printlevel}>=2, all the debug messages will be printed.258 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 259 @* if @code{printlevel}>=2, all the debug messages will be printed. 256 260 EXAMPLE: example Sannfs; shows examples 257 261 " … … 365 369 @* If eng <>0, @code{std} is used for Groebner basis computations, 366 370 @* otherwise, and by default @code{slimgb} is used. 367 @* If printlevel=1, progress debug messages will be printed,368 @* if printlevel>=2, all the debug messages will be printed.371 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 372 @* if @code{printlevel}>=2, all the debug messages will be printed. 369 373 EXAMPLE: example Sannfslog; shows examples 370 374 " … … 506 510 // alternative code for SannfsBM, renamed from annfsBM to ALTannfsBM 507 511 // is superfluos - will not be included in the official documentation 508 proc ALTannfsBM (poly F, list #)512 static proc ALTannfsBM (poly F, list #) 509 513 "USAGE: ALTannfsBM(f [,eng]); f a poly, eng an optional int 510 514 RETURN: ring … … 514 518 @* If eng <>0, @code{std} is used for Groebner basis computations, 515 519 @* otherwise, and by default @code{slimgb} is used. 516 @* If printlevel=1, progress debug messages will be printed,517 @* if printlevel>=2, all the debug messages will be printed.520 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 521 @* if @code{printlevel}>=2, all the debug messages will be printed. 518 522 EXAMPLE: example ALTannfsBM; shows examples 519 523 " … … 703 707 NOTE: If eng <>0, @code{std} is used for Groebner basis computations, 704 708 @* otherwise, and by default @code{slimgb} is used. 705 @* If printlevel=1, progress debug messages will be printed,706 @* if printlevel>=2, all the debug messages will be printed.709 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 710 @* if @code{printlevel}>=2, all the debug messages will be printed. 707 711 EXAMPLE: example bernsteinBM; shows examples 708 712 " … … 933 937 @* If eng <>0, @code{std} is used for Groebner basis computations, 934 938 @* otherwise, and by default @code{slimgb} is used. 935 @* If printlevel=1, progress debug messages will be printed,936 @* if printlevel>=2, all the debug messages will be printed.939 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 940 @* if @code{printlevel}>=2, all the debug messages will be printed. 937 941 EXAMPLE: example annfsBM; shows examples 938 942 " … … 1217 1221 1218 1222 1219 // try to replaces with -s-1 => data is shorter1223 // replacing s with -s-1 => data is shorter 1220 1224 // analogue of annfs0 1221 1225 proc annfs2(ideal I, poly F, list #) … … 1223 1227 RETURN: ring 1224 1228 PURPOSE: compute the annihilator ideal of f^s in the Weyl Algebra, based on the 1225 output of procedures SannfsBM, SannfsOT or SannfsLOT1229 output of Sannfs-like procedure 1226 1230 NOTE: activate this ring with the @code{setring} command. In this ring, 1227 1231 @* - the ideal LD (which is a Groebner basis) is the annihilator of f^s, … … 1229 1233 @* If eng <>0, @code{std} is used for Groebner basis computations, 1230 1234 @* otherwise and by default @code{slimgb} is used. 1231 @* Uses the shorter form of expressions in the variable s (the idea of Noro).1232 @* If printlevel=1, progress debug messages will be printed,1233 @* if printlevel>=2, all the debug messages will be printed.1235 @* annfs2 uses the shorter form of expressions in the variable s (the idea of Noro). 1236 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 1237 @* if @code{printlevel}>=2, all the debug messages will be printed. 1234 1238 EXAMPLE: example annfs2; shows examples 1235 1239 " … … 1390 1394 @* If eng <>0, @code{std} is used for Groebner basis computations, 1391 1395 @* otherwise and by default @code{slimgb} is used. 1392 @* Uses the shorter form of expressions in the variable s (the idea of Noro).1393 @* If printlevel=1, progress debug messages will be printed,1394 @* if printlevel>=2, all the debug messages will be printed.1396 @* This procedure follows the 'reduceB' strategy, used in Macaulay2. 1397 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 1398 @* if @code{printlevel}>=2, all the debug messages will be printed. 1395 1399 EXAMPLE: example annfsRB; shows examples 1396 1400 " … … 1561 1565 poly F = x^3+y^3+z^3; 1562 1566 printlevel = 0; 1563 def A = SannfsBM(F); 1564 setring A; 1565 LD; 1567 def A = SannfsBM(F); setring A; 1568 LD; // s-parametric ahhinilator 1566 1569 poly F = imap(r,F); 1567 def B = annfsRB(LD,F); 1568 setring B; 1570 def B = annfsRB(LD,F); setring B; 1569 1571 LD; 1570 1572 BS; … … 1584 1586 @* If eng <>0, @code{std} is used for Groebner basis computations, 1585 1587 @* otherwise and by default @code{slimgb} is used. 1586 @* If printlevel=1, progress debug messages will be printed,1587 @* if printlevel>=2, all the debug messages will be printed.1588 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 1589 @* if @code{printlevel}>=2, all the debug messages will be printed. 1588 1590 EXAMPLE: example operatorBM; shows examples 1589 1591 " … … 1889 1891 // for this, do special modulo with emphasis on the 2comp 1890 1892 // of the transp matrix, there must appear 1 in the GB 1893 // then use lift to get the expression... 1891 1894 // need: (c,<) ordering for such comp's 1892 1895 1893 // proc operatorModulo(poly F, ideal I, poly b) 1894 // "USAGE: operatorModulo(f,I,b); f a poly, I an ideal, b a poly 1895 // RETURN: poly 1896 // PURPOSE: compute the B-operator from the poly F, ideal I = Ann f^s and Bernstein-Sato 1897 // polynomial b using modulo 1898 // NOTE: The computations take place in the ring, similar to the one returned by Sannfs procedure. 1899 // @* If printlevel=1, progress debug messages will be printed, 1900 // @* if printlevel>=2, all the debug messages will be printed. 1901 // EXAMPLE: example operatorModulo; shows examples 1902 // " 1903 // { 1904 // // with hom_kernel; 1905 // matrix AA[1][2] = F,-b; 1906 // // matrix M = matrix(subst(I,s,s+1)*freemodule(2)); // ann f^{s+1} 1907 // matrix N = matrix(I); // ann f^s 1908 // // matrix K = hom_kernel(AA,M,N); 1909 // matrix K = modulo(AA,N); 1910 // K = transpose(K); 1911 // print(K); 1912 // ideal J; 1913 // int i; 1914 // poly t; number n; 1915 // for(i=1; i<=nrows(K); i++) 1916 // { 1917 // if (K[i,2]!=0) 1918 // { 1919 // if ( leadmonom(K[i,2]) == 1) 1920 // { 1921 // t = K[i,1]; 1922 // n = leadcoef(K[i,2]); 1923 // t = t/n; 1924 // // J = J, K[i][2]; 1925 // break; 1926 // } 1927 // } 1928 // } 1929 // ideal J = groebner(subst(I,s,s+1)); // for NF 1930 // t = NF(t,J); 1931 // "candidate:"; t; 1932 // J = subst(J,s,s-1); 1933 // // test: 1934 // if ( NF(t*F-b,J) !=0) 1935 // { 1936 // "Problem: PS does not work on F"; 1937 // } 1938 // return(t); 1939 // } 1940 // example 1941 // { 1942 // "EXAMPLE:"; echo = 2; 1943 // // ring r = 0,(x,y,z),Dp; 1944 // // poly F = x^3+y^3+z^3; 1945 // LIB "dmod.lib"; option(prot); option(mem); 1946 // ring r = 0,(x,y),Dp; 1947 // // poly F = x^3+y^3+x*y^2; 1948 // poly F = x^4 + y^4 + x*y^4; 1949 // def A = Sannfs(F); // here we get LD = ann f^s 1950 // setring A; 1951 // poly F = imap(r,F); 1952 // def B = annfs0(LD,F); // to obtain BS polynomial 1953 // list BS = imap(B,BS); 1954 // poly b = fl2poly(BS,"s"); 1955 // LD = groebner(LD); 1956 // poly PS = operatorModulo(F,LD,b); 1957 // PS; // the operator, s.t. PS*F^{s+1} = bs*F^s mod LD 1958 // reduce(PS*F-bs,LD); // check the property of PS 1959 // } 1960 1961 proc fl2poly(list L, string s) 1962 "USAGE: fl2poly(L,s); L a list, s a string 1896 /* 1897 proc operatorModulo(poly F, ideal I, poly b) 1898 "USAGE: operatorModulo(f,I,b); f a poly, I an ideal, b a poly 1963 1899 RETURN: poly 1964 PURPOSE: reconstruct a monic polynomial in one variable from its factorization 1965 ASSUME: s is a string with the name of some variable and L is supposed to consist of two entries: 1966 @* L[1] of the type ideal with the roots of a polynomial 1967 @* L[2] of the type intvec with the multiplicities of corr. roots 1968 EXAMPLE: example fl2poly; shows examples 1900 PURPOSE: compute the B-operator from the poly F, ideal I = Ann f^s and Bernstein-Sato 1901 polynomial b using modulo 1902 NOTE: The computations take place in the ring, similar to the one returned by Sannfs procedure. 1903 @* If printlevel=1, progress debug messages will be printed, 1904 @* if printlevel>=2, all the debug messages will be printed. 1905 EXAMPLE: example operatorModulo; shows examples 1969 1906 " 1970 1907 { 1971 if (varnum(s)==0) 1972 { 1973 ERROR("no such variable found"); return(0); 1974 } 1975 poly x = var(varnum(s)); 1976 poly P = 1; 1977 int sl = size(L[1]); 1978 ideal RR = L[1]; 1979 intvec IV = L[2]; 1980 for(int i=1; i<= sl; i++) 1981 { 1982 P = P*((x-RR[i])^IV[i]); 1983 } 1984 return(P); 1908 // with hom_kernel; 1909 matrix AA[1][2] = F,-b; 1910 // matrix M = matrix(subst(I,s,s+1)*freemodule(2)); // ann f^{s+1} 1911 matrix N = matrix(I); // ann f^s 1912 // matrix K = hom_kernel(AA,M,N); 1913 matrix K = modulo(AA,N); 1914 K = transpose(K); 1915 print(K); 1916 ideal J; 1917 int i; 1918 poly t; number n; 1919 for(i=1; i<=nrows(K); i++) 1920 { 1921 if (K[i,2]!=0) 1922 { 1923 if ( leadmonom(K[i,2]) == 1) 1924 { 1925 t = K[i,1]; 1926 n = leadcoef(K[i,2]); 1927 t = t/n; 1928 // J = J, K[i][2]; 1929 break; 1930 } 1931 } 1932 } 1933 ideal J = groebner(subst(I,s,s+1)); // for NF 1934 t = NF(t,J); 1935 "candidate:"; t; 1936 J = subst(J,s,s-1); 1937 // test: 1938 if ( NF(t*F-b,J) !=0) 1939 { 1940 "Problem: PS does not work on F"; 1941 } 1942 return(t); 1985 1943 } 1986 1944 example 1987 1945 { 1988 1946 "EXAMPLE:"; echo = 2; 1989 ring r = 0,(x,y,z,s),Dp; 1990 ideal I = -1,-4/3,-5/3,-2; 1991 intvec mI = 2,1,1,1; 1992 list BS = I,mI; 1993 poly p = fl2poly(BS,"s"); 1994 p; 1995 factorize(p,2); 1996 } 1947 // ring r = 0,(x,y,z),Dp; 1948 // poly F = x^3+y^3+z^3; 1949 LIB "dmod.lib"; option(prot); option(mem); 1950 ring r = 0,(x,y),Dp; 1951 // poly F = x^3+y^3+x*y^2; 1952 poly F = x^4 + y^4 + x*y^4; 1953 def A = Sannfs(F); // here we get LD = ann f^s 1954 setring A; 1955 poly F = imap(r,F); 1956 def B = annfs0(LD,F); // to obtain BS polynomial 1957 list BS = imap(B,BS); 1958 poly b = fl2poly(BS,"s"); 1959 LD = groebner(LD); 1960 poly PS = operatorModulo(F,LD,b); 1961 PS; // the operator, s.t. PS*F^{s+1} = bs*F^s mod LD 1962 reduce(PS*F-bs,LD); // check the property of PS 1963 } 1964 */ 1965 1966 1997 1967 1998 1968 proc annfsParamBM (poly F, list #) … … 2005 1975 @* If eng <>0, @code{std} is used for Groebner basis computations, 2006 1976 @* otherwise, and by default @code{slimgb} is used. 2007 @* If printlevel=1, progress debug messages will be printed,2008 @* if printlevel>=2, all the debug messages will be printed.1977 DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 1978 @* if @code{printlevel}>=2, all the debug messages will be printed. 2009 1979 EXAMPLE: example annfsParamBM; shows examples 2010 1980 " … … 3445 3415 @* If eng <>0, @code{std} is used for Groebner basis computations, 3446 3416 @* otherwise, and by default @code{slimgb} is used. 3447 @*If printlevel=1, progress debug messages will be printed,3417 DISPLAY: If printlevel=1, progress debug messages will be printed, 3448 3418 @* if printlevel>=2, all the debug messages will be printed. 3449 3419 EXAMPLE: example SannfsBFCT; shows examples … … 3637 3607 poly F = x^3+y^3+z^3*w; 3638 3608 printlevel = 0; 3639 def A = SannfsBFCT(F); 3640 setring A; 3609 def A = SannfsBFCT(F); setring A; 3641 3610 intvec v = 1,2,3,4,5,6,7,8; 3642 3611 // are there polynomials, depending on s only? 3643 3612 nselect(LD,v); 3644 3613 // a fancier example: 3645 def R = reiffen(4,5); 3646 setring R; 3614 def R = reiffen(4,5); setring R; 3647 3615 v = 1,2,3,4; 3616 RC; // the Reiffen curve in 4,5 3648 3617 def B = SannfsBFCT(RC); 3649 3618 setring B; … … 3885 3854 } 3886 3855 3887 3856 /* 3888 3857 proc SannfsLOTold(poly F, list #) 3889 3858 "USAGE: SannfsLOT(f [,eng]); f a poly, eng an optional int … … 4109 4078 } 4110 4079 4080 */ 4111 4081 4112 4082 proc annfsLOT(poly F, list #) … … 4158 4128 RETURN: ring 4159 4129 PURPOSE: compute the annihilator ideal of f^s in the Weyl Algebra, based on the 4160 output of procedures SannfsBM, SannfsOT or SannfsLOT4130 output of Sannfs-like procedure 4161 4131 NOTE: activate this ring with the @code{setring} command. In this ring, 4162 4132 @* - the ideal LD (which is a Groebner basis) is the annihilator of f^s, … … 4299 4269 poly F = x^3+y^3+z^3; 4300 4270 printlevel = 0; 4301 def A = SannfsBM(F); 4271 def A = SannfsBM(F); setring A; 4302 4272 // alternatively, one can use SannfsOT or SannfsLOT 4303 setring A;4304 4273 LD; 4305 4274 poly F = imap(r,F); 4306 def B = annfs0(LD,F); 4307 setring B; 4275 def B = annfs0(LD,F); setring B; 4308 4276 LD; 4309 4277 BS; … … 4656 4624 @* We compute the real annihilator for any rational value of n (both generic and exceptional). 4657 4625 @* The implementation goes along the lines of Saito-Sturmfels-Takayama, Alg. 5.3.15 4658 @*If printlevel=1, progress debug messages will be printed,4626 DISPLAY: If printlevel=1, progress debug messages will be printed, 4659 4627 @* if printlevel>=2, all the debug messages will be printed. 4660 4628 EXAMPLE: example annfspecial; shows examples … … 4724 4692 } 4725 4693 4726 static proc new_ex_annfspecial() 4694 /* 4695 //static proc new_ex_annfspecial() 4727 4696 { 4728 4697 //another example for annfspecial: x3+y3+z3 … … 4740 4709 annfspecial(LD,F,-1,1); // exceptional root 4741 4710 } 4711 */ 4742 4712 4743 4713 proc minIntRoot(ideal P, int fact) … … 4817 4787 "USAGE: isHolonomic(M); M an ideal/module/matrix 4818 4788 RETURN: int, 1 if M is holonomic and 0 otherwise 4789 ASSUME: basering is a Weyl algebra 4819 4790 PURPOSE: check the modules for the property of holonomy 4820 4791 NOTE: M is holonomic, if 2*dim(M) = dim(R), where R is a … … 4956 4927 @* 'alg1' (default) - for the algorithm 1 of J. Martin-Morales (unpublished) 4957 4928 @* 'alg2' - for the algorithm 2 of J. Martin-Morales (unpublished) 4958 @* The output int is:4959 @* - if the algorithm 1 is chosen: 1 if -alpha is a root of the global Bernstein polynomial and 0 otherwise4960 @* - if the algorithm 2 is chosen:the multiplicity of -alpha as a root of the global Bernstein polynomial of f.4961 @* 4929 @* The output of type int is: 4930 @* 'alg1': 1 if -alpha is a root of the global Bernstein polynomial and 0 otherwise 4931 @* 'alg2': the multiplicity of -alpha as a root of the global Bernstein polynomial of f. 4932 @* (If -alpha is not a root, the output is 0) 4962 4933 @* If eng <>0, @code{std} is used for Groebner basis computations, 4963 4934 @* otherwise (and by default) @code{slimgb} is used. 4964 @*If printlevel=1, progress debug messages will be printed,4965 @* if printlevel>=2, all the debug messages will be printed.4935 DISPLAY: If printlevel=1, progress debug messages will be printed, 4936 @* if printlevel>=2, all the debug messages will be printed. 4966 4937 EXAMPLE: example checkRoot; shows examples 4967 4938 " … … 5068 5039 NOTE: If eng <>0, @code{std} is used for Groebner basis computations, 5069 5040 @* otherwise (and by default) @code{slimgb} is used. 5070 @*If printlevel=1, progress debug messages will be printed,5071 @* if printlevel>=2, all the debug messages will be printed.5041 DISPLAY: If printlevel=1, progress debug messages will be printed, 5042 @* if printlevel>=2, all the debug messages will be printed. 5072 5043 EXAMPLE: example checkRoot1; shows examples 5073 5044 " … … 5192 5163 NOTE: If eng <>0, @code{std} is used for Groebner basis computations, 5193 5164 @* otherwise (and by default) @code{slimgb} is used. 5194 @*If printlevel=1, progress debug messages will be printed,5195 @* if printlevel>=2, all the debug messages will be printed.5165 DISPLAY: If printlevel=1, progress debug messages will be printed, 5166 @* if printlevel>=2, all the debug messages will be printed. 5196 5167 EXAMPLE: example checkRoot2; shows examples 5197 5168 " … … 5324 5295 NOTE: If eng <>0, @code{std} is used for Groebner basis computations, 5325 5296 @* otherwise (and by default) @code{slimgb} is used. 5326 @*If printlevel=1, progress debug messages will be printed,5327 @* if printlevel>=2, all the debug messages will be printed.5297 DISPLAY: If printlevel=1, progress debug messages will be printed, 5298 @* if printlevel>=2, all the debug messages will be printed. 5328 5299 EXAMPLE: example checkFactor; shows examples 5329 5300 " … … 5461 5432 } 5462 5433 5463 5464 static proc exCheckGenericity() 5434 /// ****** EXAMPLES ************ 5435 5436 /* 5437 5438 //static proc exCheckGenericity() 5465 5439 { 5466 5440 LIB "control.lib"; … … 5484 5458 } 5485 5459 5486 static proc exOT_17()5460 //static proc exOT_17() 5487 5461 { 5488 5462 // Oaku-Takayama, p.208 … … 5499 5473 } 5500 5474 5501 static proc exOT_16()5475 //static proc exOT_16() 5502 5476 { 5503 5477 // Oaku-Takayama, p.208 … … 5513 5487 } 5514 5488 5515 static proc ex_bcheck()5489 //static proc ex_bcheck() 5516 5490 { 5517 5491 ring R = 0,(x,y),dp; … … 5526 5500 } 5527 5501 5528 static proc ex_bcheck2()5502 //static proc ex_bcheck2() 5529 5503 { 5530 5504 ring R = 0,(x,y),dp; … … 5536 5510 } 5537 5511 5538 static proc ex_BMI()5512 //static proc ex_BMI() 5539 5513 { 5540 5514 // a hard example … … 5549 5523 } 5550 5524 5551 static proc ex2_BMI()5525 //static proc ex2_BMI() 5552 5526 { 5553 5527 // this example was believed to be intractable in 2005 by Gago-Vargas, Castro and Ucha … … 5563 5537 } 5564 5538 5565 static proc ex_operatorBM()5539 //static proc ex_operatorBM() 5566 5540 { 5567 5541 ring r = 0,(x,y,z,w),Dp; … … 5578 5552 reduce(PS*F-bs,LD); // check the property of PS 5579 5553 } 5554 5555 */
Note: See TracChangeset
for help on using the changeset viewer.