Changeset 8c66fb in git
- Timestamp:
- Dec 1, 2008, 9:51:16 PM (15 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 6cd69834c769d788a587c7eaf4413e443e32151d
- Parents:
- 4e803e313f457e20c95ef5350e02ebdfe4a1e3a0
- Location:
- Singular/LIB
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/dmodapp.lib
r4e803e r8c66fb 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="$Id: dmodapp.lib,v 1.1 0 2008-10-09 09:31:57 SingularExp $";2 version="$Id: dmodapp.lib,v 1.11 2008-12-01 20:51:16 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 7 7 @* Daniel Andres, daniel.andres@math.rwth-aachen.de 8 8 9 GUIDE: 10 @* - Ann F^s = I = I(F^s) = LD in D(R)[s] can be computed by SannfsBM, SannfsOT, SannfsLOT 11 @* - global Bernstein polynomial bs resp. BS in K[s] can be computed by bernsteinBM 12 @* see also dmod.lib 9 GUIDE: Let R = K[x1,..xN] and D be the Weyl algebra in variables x1,..xN,d1,..dN. 10 In this library there are the following procedures for algebraic D-modules: 11 @* - localization of a holonomic module D/I with respect to a mult. closed set 12 of all powers of a given polynomial F from R. Our aim is to compute an ideal L 13 in D, such that D/L is a presentation of a localized module. Such L always exists, since 14 such localizations are known to be holonomic and thus cyclic modules. 15 The procedures for the localization are DLoc, SDLoc and DLoc0. 16 17 @* - annihilator in Weyl algebra of a given polynomial F from R as well as of a given 18 rational function G/F from Quot(R). These can be computed via annPoly resp. annRat. 19 20 @* - initial form and initial ideals in Weyl algebras with respect to a given weight vector can be computed with the help of inForm, initialmalgrange, initialideal. 21 22 @* - appelF1, appelF2 and appelF4 return ideals in parametric Weyl algebra, which 23 annihilate corresponding Appel hypergeometric functions. 24 13 25 14 26 MAIN PROCEDURES: 15 DLoc(I,F); compute the presentation of the localization of D/I w.r.t. f^s 16 annRat(f,g); compute the annihilator of a rational function f/g in the corr. Weyl algebra 17 annPoly(f); compute the annihilator of a polynomial f in the corr. Weyl algebra 18 initialmalgrange(f[,s,t,u,v]); compute a Groebner basis of the initial Malgrange ideal for a given poly 19 initialideal(I,u,v[,s,t]); compute the initial ideal of a given ideal w.r.t. given weights 20 21 SECONDARY PROCEDURES FOR D-MODULES: //todo: no seperate paragraph on web page 22 isFsat(I, F); check whether the ideal I is F-saturated 23 SDLoc(I, F); compute a generic presentation of the localization of D/I w.r.t. f^s, for D a Weyl algebra 24 DLoc0(I, F); compute the localization of D/I w.r.t. f^s, based on the procedure SDLoc 25 InForm(f,w); compute the initial form of a poly/ideal w.r.t. a given weight 26 27 28 annPoly(f); annihilator of a polynomial f in the corr. Weyl algebra 29 annRat(f,g); annihilator of a rational function f/g in the corr. Weyl algebra 30 DLoc(I,F); presentation of the localization of D/I w.r.t. f^s 31 SDLoc(I, F); a generic presentation of the localization of D/I w.r.t. f^s, for D a Weyl algebra 32 DLoc0(I, F); presentation of the localization of D/I w.r.t. f^s, based on the procedure SDLoc 33 34 initialmalgrange(f[,s,t,u,v]); Groebner basis of the initial Malgrange ideal for a given poly 35 initialideal(I,u,v[,s,t]); initial ideal of a given ideal w.r.t. given weights 36 inForm(f,w); initial form of a poly/ideal w.r.t. a given weight 37 isFsat(I, F); check whether the ideal I is F-saturated 27 38 28 39 AUXILIARY PROCEDURES: 29 40 30 AppelF1(); create an ideal annihilating Appel F1 function31 AppelF2(); create an ideal annihilating Appel F2 function32 AppelF4(); create an ideal annihilating Appel F4 function33 engine(I,i); computes a Groebner basis with the algorithm given by i34 poly2list(f); 41 appelF1(); create an ideal annihilating Appel F1 function 42 appelF2(); create an ideal annihilating Appel F2 function 43 appelF4(); create an ideal annihilating Appel F4 function 44 engine(I,i); computes a Groebner basis with the algorithm given by i 45 poly2list(f); decompose a poly to a list of terms and exponents 35 46 36 47 SEE ALSO: dmod_lib, gmssing_lib, bfct_lib … … 54 65 example DLoc0; 55 66 example SDLoc; 56 example InForm;67 example inForm; 57 68 example isFsat; 58 69 example annRat; 59 70 example annPoly; 60 example AppelF1;61 example AppelF2;62 example AppelF4;71 example appelF1; 72 example appelF2; 73 example appelF4; 63 74 example poly2list; 64 75 } … … 195 206 } 196 207 197 proc initialidealengine(string calledfrom, int whichengine, int blockord, list #)208 static proc initialidealengine(string calledfrom, int whichengine, int blockord, list #) 198 209 { 199 210 //#[1] = f or I … … 368 379 I = subst(I,h,1); // dehomogenization 369 380 dbprint(ppl, "I after dehomogenization is" ,I); 370 I = InForm(I,uv); // we are only interested in the initial form w.r.t. uv381 I = inForm(I,uv); // we are only interested in the initial form w.r.t. uv 371 382 if (calledfrom == "initialmalgrange") 372 383 { … … 437 448 } 438 449 439 proc InForm (list #)440 "USAGE: InForm(f,w) or InForm(I,w); f a poly,I an ideal, w an intvec441 RETURN: the initial form of f orI w.r.t. the weight vector w442 PURPOSE: compute the initial form of a poly or an ideal w.r.t a given weight443 NOTE: 444 EXAMPLE: example InForm; shows examples450 proc inForm (list #) 451 "USAGE: inForm(I,w); I an ideal, w an intvec 452 RETURN: the initial form of I w.r.t. the weight vector w 453 PURPOSE: compute the initial form of an ideal w.r.t a given weight vector 454 NOTE: the size of the weight vector must be equal to the number of variables of the basering 455 EXAMPLE: example inForm; shows examples 445 456 " 446 457 { 447 458 if (size(#)<2) 448 459 { 449 ERROR(" InForm needs two arguments of typepoly/ideal,intvec");460 ERROR("inForm needs two arguments of type poly/ideal,intvec"); 450 461 } 451 462 if (typeof(#[1])=="poly" || typeof(#[1])=="ideal") … … 513 524 intvec w2 = -1,-2,1,2; 514 525 intvec w3 = -2,-3,2,3; 515 InForm(I,w1);516 InForm(I,w2);517 InForm(I,w3);518 InForm(F,w1);526 inForm(I,w1); 527 inForm(I,w2); 528 inForm(I,w3); 529 inForm(F,w1); 519 530 } 520 531 … … 629 640 630 641 631 proc AppelF1() //todo: create help string 632 //(number a,b,c,d) 642 proc appelF1() 643 "USAGE: appelF1(); 644 RETURN: ring 645 PURPOSE: define the ideal in a parametric Weyl algebra, which annihilates Appel F1 hypergeometric function 646 NOTE: the ideal called IAppel1 is exported to the output ring 647 EXAMPLE: example appelF1; shows examples 648 " 633 649 { 634 650 // Appel F1, d = b', SST p.48 … … 650 666 "EXAMPLE:"; echo = 2; 651 667 ring r = 0,x,dp; 652 def A = AppelF1(); //(1,2,3,4);668 def A = appelF1(); //(1,2,3,4); 653 669 setring A; 654 670 IAppel1; 655 671 } 656 672 657 proc AppelF2() //todo: create help string 658 //(number a,b,c) 673 proc appelF2() //(number a,b,c) 674 "USAGE: appelF2(); 675 RETURN: ring 676 PURPOSE: define the ideal in a parametric Weyl algebra, which annihilates Appel F2 hypergeometric function 677 NOTE: the ideal called IAppel2 is exported to the output ring 678 EXAMPLE: example appelF2; shows examples 679 " 659 680 { 660 681 // Appel F2, c = b', SST p.85 … … 675 696 "EXAMPLE:"; echo = 2; 676 697 ring r = 0,x,dp; 677 def A = AppelF2(); //(1,2,3,4);698 def A = appelF2(); //(1,2,3,4); 678 699 setring A; 679 700 IAppel2; 680 701 } 681 702 682 proc AppelF4() //todo: create help string 683 //number a,b,c,d - ? 703 proc appelF4() 704 "USAGE: appelF4(); 705 RETURN: ring 706 PURPOSE: define the ideal in a parametric Weyl algebra, which annihilates Appel F4 hypergeometric function 707 NOTE: the ideal called IAppel4 is exported to the output ring 708 EXAMPLE: example appelF4; shows examples 709 " 684 710 { 685 711 // Appel F4, d = c', SST, p. 39 … … 700 726 "EXAMPLE:"; echo = 2; 701 727 ring r = 0,x,dp; 702 def A = AppelF4(); //(1,2,3,4);728 def A = appelF4(); //(1,2,3,4); 703 729 setring A; 704 730 IAppel4; … … 737 763 } 738 764 739 740 765 proc isFsat(ideal I, poly F) 741 766 "USAGE: isFsat(I, F); I an ideal, F a poly 742 767 RETURN: int 743 768 PURPOSE: check whether the ideal I is F-saturated 744 NOTE: 1 is returned if I is F-saturated, otherwise 0 is returned 745 * we check indeed that Ker(D --F--> D/I) is (0) //todo: * or @* ?? 769 NOTE: 1 is returned if I is F-saturated, otherwise 0 is returned. 770 @* we check indeed that Ker(D --F--> D/I) is (0) 746 771 EXAMPLE: example isFsat; shows examples 747 772 " … … 1359 1384 RLD; 1360 1385 // Now, compare with the output of Macaulay2: 1361 ideal tst = 3*x*Dx + 2*y*Dy + 1, y^3*Dy^2 - x^2*Dy^2 + 6*y^2*Dy + 6*y, 9*y^2*Dx^2*Dy - 4*y*Dy^3 + 27*y*Dx^2 + 2*Dy^2, 9*y^3*Dx^2 - 4*y^2*Dy^2 + 10*y*Dy -10; //todo: maybe a bit too long1362 option(redSB); 1363 option(red Tail);1386 ideal tst = 3*x*Dx + 2*y*Dy + 1, y^3*Dy^2 - x^2*Dy^2 + 6*y^2*Dy + 6*y, 1387 9*y^2*Dx^2*Dy - 4*y*Dy^3 + 27*y*Dx^2 + 2*Dy^2, 9*y^3*Dx^2 - 4*y^2*Dy^2 + 10*y*Dy -10; 1388 option(redSB); option(redTail); 1364 1389 RLD = groebner(RLD); 1365 1390 tst = groebner(tst); 1366 1391 print(matrix(NF(RLD,tst))); print(matrix(NF(tst,RLD))); 1392 // So, these two answers are the same 1367 1393 } 1368 1394 … … 1524 1550 } 1525 1551 1526 proc engine(ideal I, int i) //todo: create help string 1552 proc engine(ideal I, int i) 1553 "USAGE: engine(I,i); I an ideal, i an int 1554 RETURN: ideal 1555 PURPOSE: compute the Groebner basis of I with the algorithm, chosen via i 1556 NOTE: By default and if i=0, slimgb is used; otherwise std does the job. 1557 EXAMPLE: example engine; shows examples 1558 " 1527 1559 { 1528 1560 /* std - slimgb mix */ … … 1541 1573 return(J); 1542 1574 } 1543 example //todo: strange: example not showing on web page1575 example 1544 1576 { 1545 1577 "EXAMPLE:"; echo = 2; -
Singular/LIB/jacobson.lib
r4e803e r8c66fb 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="$Id: jacobson.lib,v 1. 3 2008-10-10 14:33:54 SingularExp $";2 version="$Id: jacobson.lib,v 1.4 2008-12-01 20:51:16 levandov Exp $"; 3 3 category="System and Control Theory"; 4 4 info=" … … 105 105 print(s[1]*m*s[3]); 106 106 } 107 proc diagonal_with_trafo( R, matrix MA, int B) 107 108 static proc diagonal_with_trafo( R, matrix MA, int B) 108 109 { 109 110 … … 329 330 330 331 331 proc divisibility(matrix M)332 static proc divisibility(matrix M) 332 333 { 333 334 matrix STDM=M; … … 397 398 } 398 399 399 proc diagonal_without_trafo( R, matrix MA, int B)400 static proc diagonal_without_trafo( R, matrix MA, int B) 400 401 { 401 402 int ppl = printlevel-voice+2; … … 624 625 625 626 626 proc triangle( matrix MA, int B)627 static proc triangle( matrix MA, int B) 627 628 { 628 629 int ppl = printlevel-voice+2;
Note: See TracChangeset
for help on using the changeset viewer.