Changeset e78236 in git
- Timestamp:
- May 31, 2023, 1:27:32 PM (11 months ago)
- Branches:
- (u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
- Children:
- 2a45f43424a5f5b8bc30e399dac03c3a2b624f3b
- Parents:
- 8eeddafc83e9d052d7ffa21597c4229513b7e886
- Location:
- Singular/LIB
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/algebra.lib
r8eedda re78236 76 76 //----------------- 77 77 // ---------- create new ring with extra variables -------------------- 78 list l3; 78 list l3; 79 79 for (int zz = 1; zz <= n; zz++) 80 80 { … … 188 188 { int m=ncols(S); 189 189 // ---------- create new ring with extra variables -------------------- 190 list l4; 190 list l4; 191 191 for (int xx = 1; xx <= n; xx++) 192 192 { … … 295 295 //the intersection of ideal nett=(p-y(0),I[1]-y(1),...) 296 296 //with the ring k[y(0),...,y(n)] is computed, the result is ker 297 list l5; 297 list l5; 298 298 for (int xx = 1; xx <= n; xx++) 299 299 { … … 390 390 if ( tt == 1 ) 391 391 { 392 list l6; 392 list l6; 393 393 for (@xx = 1; @xx <= m; @xx++) 394 394 { … … 402 402 } 403 403 // ---------- create new ring with extra variables -------------------- 404 list l7; 404 list l7; 405 405 for (@xx = n; @xx >= 1; @xx--) 406 406 { … … 436 436 // order 437 437 { 438 list l8; 438 list l8; 439 439 for (@xx = n; @xx >=1; @xx--) 440 440 { … … 542 542 // algDependent is called with "bestoption" if tt = 0 543 543 def S = L[2]; 544 list l9; 544 list l9; 545 545 for (int xx = 1; xx <= n; xx++) 546 546 { … … 694 694 int ii,t=1,1; 695 695 // ------------ create new ring with extra variables --------------------- 696 list l10; 696 list l10; 697 697 for (int yy = 1; yy <= n; yy++) 698 698 { … … 774 774 int ii,t = 1,1; 775 775 // ------------ create new ring with extra variables --------------------- 776 list l11; 776 list l11; 777 777 for (int yy = 1; yy <= n; yy++) 778 778 { … … 1099 1099 1100 1100 // --------------------------- enlarging ring ----------------------------- 1101 list l12; 1101 list l12; 1102 1102 for (int yy = 1; yy <= m; yy++) 1103 1103 { -
Singular/LIB/autgradalg.lib
r8eedda re78236 1247 1247 for (ii = 1; ii <= n0; ii++) 1248 1248 { 1249 l3[ii] = "T("+string(ii)+")"; 1249 l3[ii] = "T("+string(ii)+")"; 1250 1250 } 1251 1251 for (ii = 1; ii <= n0*n; ii++) … … 1805 1805 for (ii = 1; ii <= n0; ii++) 1806 1806 { 1807 l4[ii] = "T("+string(ii)+")"; 1807 l4[ii] = "T("+string(ii)+")"; 1808 1808 } 1809 1809 for (ii = 1; ii <= n1; ii++) … … 3060 3060 for (int ii = 1; ii <= size(V); ii++) 3061 3061 { 3062 l5[ii] = "T("+string(ii)+")"; 3062 l5[ii] = "T("+string(ii)+")"; 3063 3063 } 3064 3064 ring S = create_ring(ring_list(RR)[1], l5, "dp", "no_minpoly"); -
Singular/LIB/customstd.lib
r8eedda re78236 67 67 NOTE: The result is a standard basis of a partially saturated ideal wrt. the 68 68 the variables in J. 69 If the I is homogeneous and the ordering dp, the result is completely 69 If the I is homogeneous and the ordering dp, the result is completely 70 70 saturated wrt. to the last variable (wrt. to the first for Dp). 71 71 KEYWORDS: standard bases, saturation -
Singular/LIB/dmod.lib
r8eedda re78236 697 697 return(@R2); 698 698 string strr1 = "Printing from ALTannfsBM"; // comment by sachin 699 strr1; // comment by sachin 699 strr1; // comment by sachin 700 700 } 701 701 example … … 4304 4304 // continue with dp 1,1,1,1... 4305 4305 tmp[1] = "dp"; // string 4306 iv=1:Nnew; 4307 kill s; 4306 iv=1:Nnew; 4307 kill s; 4308 4308 kill NName; 4309 4309 tmp[2] = iv; … … 4605 4605 @* for the given rational number n 4606 4606 ASSUME: basering is commutative, the number n is rational. 4607 NOTE: Activate the output ring by @code{setring} command. 4607 NOTE: Activate the output ring by @code{setring} command. 4608 4608 In the ring the ideal called @code{annfalpha} is exported. 4609 4609 @* We compute the real annihilator for any rational value of n (both 4610 @* generic and exceptional). The implementation fixes a bug in 4610 @* generic and exceptional). The implementation fixes a bug in 4611 4611 @* the Algorithm 5.3.15 from Saito-Sturmfels-Takayama. 4612 4612 DISPLAY: If printlevel=1, progress debug messages will be printed, … … 4615 4615 " 4616 4616 { 4617 // using dmodideal.lib 4617 // using dmodideal.lib 4618 4618 ideal f = F; 4619 4619 ideal alpha = n; … … 4625 4625 "EXAMPLE:"; echo = 2; 4626 4626 ring r = 0,(x,y),dp; 4627 poly F = x3-y2; 4628 bernsteinBM(F); // the roots of Bernstein-Sato poly: -7/6, -1, -5/6 4627 poly F = x3-y2; 4628 bernsteinBM(F); // the roots of Bernstein-Sato poly: -7/6, -1, -5/6 4629 4629 // *** first example: generic root 4630 def A = annfspecial(F,-5/6); 4630 def A = annfspecial(F,-5/6); 4631 4631 setring A; print(annfalpha); kill A; setring r; 4632 4632 // *** second example: exceptional root since its distance to -1 is integer 2 -
Singular/LIB/dmodapp.lib
r8eedda re78236 137 137 - changed charVariety: no homogenization is needed 138 138 - changed inForm: code is much simpler using jet 139 139 140 140 06.04.20 by VL: 141 141 - engine updated with 2 more modular choices … … 300 300 // modular slimgb with final exactness check 301 301 J = ncmodslimgb(I,1); 302 } 302 } 303 303 return(J); 304 304 } -
Singular/LIB/dmodvar.lib
r8eedda re78236 141 141 l1[size(l1)+1] = "z("+string(zz)+")"; 142 142 } 143 ring @Z = create_ring(0, l1, ORD); 143 ring @Z = create_ring(0, l1, ORD); 144 144 list L = ringlist(@Z)[3]; 145 145 kill @Z; -
Singular/LIB/equising.lib
r8eedda re78236 509 509 else // no minpoly given 510 510 { 511 list l5; 511 list l5; 512 512 for (int zz = 1; zz <= npars(basering); zz++) 513 513 { … … 1276 1276 { 1277 1277 ideal qIdeal = ideal(basering); 1278 ring ESSring = create_ring("("+ string(char(basering))+ "," + parstr(myRing) +")", "("+ varstr(basering)+")", "("+ ordstr(basering) +")"); 1278 ring ESSring = create_ring("("+ string(char(basering))+ "," + parstr(myRing) +")", "("+ varstr(basering)+")", "("+ ordstr(basering) +")"); 1279 1279 execute(minPolyStr); 1280 1280 // basering has changed to ESSring -
Singular/LIB/ffsolve.lib
r8eedda re78236 854 854 855 855 def ring_for_var_change = addNvarsTo(original_ring, number_of_monomials, "@y", 2); 856 856 857 857 setring ring_for_var_change; 858 858 if( prime_field == 0) -
Singular/LIB/finvar.lib
r8eedda re78236 439 439 } 440 440 if (minpoly<>0 && mol_flag==0) 441 { 441 { 442 442 if (v) 443 443 { " Since it is impossible for this program to calculate the Molien series for"; … … 710 710 { 711 711 rl[1][1]=0; 712 } 712 } 713 713 def newring=ring(rl); 714 714 setring newring; 715 715 716 716 } 717 717 } … … 728 728 { 729 729 rl[1][1]=0; 730 } 730 } 731 731 def newring=ring(rl); 732 732 setring newring; … … 1106 1106 if (minpoly==0) 1107 1107 { if (i>size(chst)) 1108 { 1108 { 1109 1109 ring newring = create_ring(0, "("+varstr(br)+")", "("+ordstr(br)+")"); 1110 1110 } … … 1119 1119 { 1120 1120 rl[1][1]=0; 1121 } 1121 } 1122 1122 def newring=ring(rl); 1123 setring newring; 1123 setring newring; 1124 1124 } 1125 1125 } … … 1136 1136 { 1137 1137 rl[1][1]=0; 1138 } 1138 } 1139 1139 def newring=ring(rl); 1140 setring newring; 1140 setring newring; 1141 1141 execute("minpoly="+minp); 1142 1142 } -
Singular/LIB/freegb.lib
r8eedda re78236 2865 2865 RETURN: list L 2866 2866 NOTE: - L[1] is NF(p,I) 2867 - L[2] is the list of expressions [i,l_(ij),r_(ij)] with \sum_(i,j) l_(ij) g_i r_(ij) = p - NF(p,I) 2867 - L[2] is the list of expressions [i,l_(ij),r_(ij)] with \sum_(i,j) l_(ij) g_i r_(ij) = p - NF(p,I) 2868 2868 - procedure lpGBPres2Poly, applied to L, reconstructs p 2869 2869 EXAMPLE: example lpDivision; shows examples … … 2937 2937 "EXAMPLE:"; echo = 2; 2938 2938 ring r = 0,(x,y),dp; 2939 ring R = freeAlgebra(r, 4); 2939 ring R = freeAlgebra(r, 4); 2940 2940 ideal I = x*x + y*y - 1; // 2D sphere 2941 2941 ideal J = twostd(I); // compute a two-sided Groebner basis … … 2967 2967 "EXAMPLE:"; echo = 2; 2968 2968 ring r = 0,(x,y),dp; 2969 ring R = freeAlgebra(r, 4); 2969 ring R = freeAlgebra(r, 4); 2970 2970 ideal I = x*x + y*y - 1; // 2D sphere 2971 2971 ideal J = twostd(I); // compute a two-sided Groebner basis 2972 2972 J; // it is finite and nice 2973 2973 poly h = x*x*y-y*x*x+x*y; 2974 list L = lpDivision(h,J); 2974 list L = lpDivision(h,J); 2975 2975 L[1]; // what means that the normal form (or the remainder) of h wrt J is x*y 2976 2976 lpGBPres2Poly(L,J); // we see, that it is equal to h from above … … 3785 3785 } 3786 3786 3787 proc testLift(ideal M, matrix T) 3787 proc testLift(ideal M, matrix T) 3788 3788 "USAGE: testLift(M,T); module M, matrix T 3789 3789 RETURN: module -
Singular/LIB/gmssing.lib
r8eedda re78236 196 196 } 197 197 198 ring G = create_ring(string(charstr(@R)), "("+s+","+varstr(@R)+")", "(ws("+string(deg(highcorner(g))+2*gmsmaxdeg)+"),"+os+",c)"); 198 ring G = create_ring(string(charstr(@R)), "("+s+","+varstr(@R)+")", "(ws("+string(deg(highcorner(g))+2*gmsmaxdeg)+"),"+os+",c)"); 199 199 200 200 poly gmspoly=imap(@R,t); -
Singular/LIB/hnoether.lib
r8eedda re78236 2937 2937 string pa=parstr(altring); 2938 2938 list rl=ringlist(altring); 2939 rl=rl[1]; rl[1]=p; 2939 rl=rl[1]; rl[1]=p; 2940 2940 ring HNhelpring=ring(rl); 2941 2941 execute("poly mipo="+mipl+";"); // Minimalpolynom in Polynom umgewandelt -
Singular/LIB/involut.lib
r8eedda re78236 602 602 if (Par=="") // if there are no parameters 603 603 { 604 ring @@@KK = create_ring(0, "("+varstr(@B)+","+@ss+")", "dp"); //new ring with new variables 604 ring @@@KK = create_ring(0, "("+varstr(@B)+","+@ss+")", "dp"); //new ring with new variables 605 605 } 606 606 else //if there exist parameters … … 656 656 if ( Par=="" ) //initializes the ring of relations 657 657 { 658 ring @@KK = create_ring(0, "("+@ss+")", "dp"); 658 ring @@KK = create_ring(0, "("+@ss+")", "dp"); 659 659 } 660 660 else 661 661 { 662 ring @@KK = create_ring("(0,"+Par+")", "("+@ss+")", "dp"); 662 ring @@KK = create_ring("(0,"+Par+")", "("+@ss+")", "dp"); 663 663 } 664 664 … … 812 812 if (( Par=="" ) && (n!=0)) //initializes the ring of relations 813 813 { 814 ring @@KK = create_ring(0, "("+@ss+")", "dp"); 814 ring @@KK = create_ring(0, "("+@ss+")", "dp"); 815 815 } 816 816 if (( Par=="" ) && (n==0)) //initializes the ring of relations … … 820 820 if ( Par!="" ) 821 821 { 822 ring @@KK = create_ring("(0,"+Par+")", "("+@ss+")", "dp"); 822 ring @@KK = create_ring("(0,"+Par+")", "("+@ss+")", "dp"); 823 823 } 824 824 // basering; -
Singular/LIB/moddiq.lib
r8eedda re78236 12 12 13 13 REFERENCES: 14 M. Noro, K. Yokoyama: Usage of Modular Techniques for Efficient Computation of Ideal Operations. 15 Math.Comput.Sci. 12: 1, 1-32. (2017). 14 M. Noro, K. Yokoyama: Usage of Modular Techniques for Efficient Computation of Ideal Operations. 15 Math.Comput.Sci. 12: 1, 1-32. (2017). 16 16 17 17 PROCEDURES: … … 49 49 ring r=0,x(1..6),dp; 50 50 ideal i=cyclic(6); 51 ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6); 51 ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6); 52 52 modQuotient(i,modQuotient(i,j)); 53 53 ideal id2=x(1)^2+x(1)*x(2)*x(3),x(2)^2-x(3)^3*x(2),x(3)^3+x(2)^5*x(1)*x(3); … … 55 55 } 56 56 57 /* test if a prime number p is permissible for an ideal I 57 /* test if a prime number p is permissible for an ideal I 58 58 * i.e. it does not divide the denominator of any of the coefficients 59 59 * or numerator of any of the leading coefficients */ … … 130 130 } 131 131 } 132 132 133 133 /* test if Gp is in (Ip:Jp) */ 134 134 ideal GpJp=Gp*Jp; … … 175 175 ring r=0,x(1..6),dp; 176 176 ideal i=cyclic(6); 177 ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6); 177 ideal j=-15*var(5)+16*var(6)^3-60*var(6)^2+225*var(6)-4,2*var(5)^2-7*var(5)+2*var(6)^2-7*var(6)+28,(4*var(6)-1)*var(5)-var(6)+4,4*var(1)+var(5)+var(6),4*var(2)+var(5)+var(6),4*var(3)+var(5)+var(6),4*var(4)+var(5)+var(6); 178 178 modSat(i,modSat(i,j)[1])[1]; 179 179 poly F = x(1)^5+x(2)^5+(x(1)-x(2))^2*x(1)*x(2)*x(3); … … 190 190 /* find entries in modresults which come from unlucky primes. 191 191 * For this, sort the entries into categories depending on their leading 192 * ideal and return the indices in all but the biggest category. 192 * ideal and return the indices in all but the biggest category. 193 193 * Referring to Modstd::deleteUnlickyPrimes_std. */ 194 194 static proc deleteUnluckyPrimes_sat(alias list modresults) … … 290 290 } 291 291 } 292 292 293 293 /* test if Gp is in (Ip:Jp^\infty) */ 294 294 for (i = ncols(Gp); i > 0; i--) -
Singular/LIB/ncModslimgb.lib
r8eedda re78236 6 6 defined over the rationals using modular techniques. 7 7 8 AUTHORS: Wolfram Decker, Christian Eder, Viktor Levandovskyy, and 8 AUTHORS: Wolfram Decker, Christian Eder, Viktor Levandovskyy, and 9 9 Sharwan K. Tiwari shrawant@gmail.com 10 10 … … 45 45 NOTE: - If the given algebra and ideal are graded (it is not checked by this command), then the computed Groebner 46 46 basis will be exact. Otherwise, the result will be correct with a very high probability. 47 - The optional parameter `exactness` justifies, whether the final (expensive) 47 - The optional parameter `exactness` justifies, whether the final (expensive) 48 48 verification step will be performed or not (exactness=0, default value is 1). 49 49 - The optional parameter `ncores` (default value is 1) provides an integer to use -
Singular/LIB/ncrat.lib
r8eedda re78236 728 728 } 729 729 } 730 s = s + ")"; 730 s = s + ")"; 731 731 ring NCRING = create_ring("(0, I)", s, "dp"); 732 732 minpoly = I^2+1; -
Singular/LIB/numerDecom.lib
r8eedda re78236 611 611 l2[size(l2)+1] = "z("+string(ii)+")"; 612 612 } 613 ring T(qq) = create_ring("(complex,16,I)", l2, "dp"); 613 ring T(qq) = create_ring("(complex,16,I)", l2, "dp"); 614 614 list W(qq-1)=var(1); 615 615 } -
Singular/LIB/pfd.lib
r8eedda re78236 16 16 matrix of rational functions given as one (possibly very big) txt-file. 17 17 If you use the library pfd.lib, please cite the corresponding paper 18 [J. Boehm, M. Wittmann, Z. Wu, Y. Xu, Y. Zhang: 'IBP reduction coefficients 18 [J. Boehm, M. Wittmann, Z. Wu, Y. Xu, Y. Zhang: 'IBP reduction coefficients 19 19 made simple'] (preprint 2020). 20 20 -
Singular/LIB/primdec.lib
r8eedda re78236 4042 4042 ideal F=imap(R,F); 4043 4043 4044 list l2; 4044 list l2; 4045 4045 for (int zz = 1; zz <= m; zz++) 4046 4046 { -
Singular/LIB/ratgb.lib
r8eedda re78236 297 297 def LGG = groebner(LG); // cosmetics 298 298 int d = dim(LGG); 299 int Ddim = d; 299 int Ddim = d; 300 300 dbprint(ppl,"the D-dimension is "+string(d)); 301 301 export Ddim; -
Singular/LIB/realclassify.lib
r8eedda re78236 273 273 a1=int(a); 274 274 b1=int(b); 275 t1=int(t); 275 t1=int(t); 276 276 g1=gcd(gcd(a1,b1),t1 div a1); 277 277 setring C; -
Singular/LIB/resolve.lib
r8eedda re78236 734 734 l3[size(l3)+1] = "y("+string(ii)+")"; 735 735 } 736 ring S = create_ring(ring_list(R)[1], l3, "dp", "no_minpoly"); 736 ring S = create_ring(ring_list(R)[1], l3, "dp", "no_minpoly"); 737 737 list resu; 738 738 list B; -
Singular/LIB/surfex.lib
r8eedda re78236 286 286 string str_num_mp = "number "+parstr(1)+"="+ 287 287 decstr2ratstr(rootminpoly())+";"; 288 ring Iring = create_ring(0, "("+string(coords)+")", "dp"); 288 ring Iring = create_ring(0, "("+string(coords)+")", "dp"); 289 289 basering; 290 290 execute(str_num_mp); … … 306 306 string str_tmp_l = "ideal eqd_tmp = "+string(tmp_l)+";"; 307 307 def cur_ring = basering; 308 ring Iring = create_ring("(real,30)", "("+string(coords)+")", "("+ordstr(oring)+")"); 308 ring Iring = create_ring("(real,30)", "("+string(coords)+")", "("+ordstr(oring)+")"); 309 309 // basering; 310 310 execute(str_I);
Note: See TracChangeset
for help on using the changeset viewer.