Changeset 1e33d5 in git for Singular/LIB/sagbi.lib
- Timestamp:
- Oct 8, 2010, 11:09:04 PM (14 years ago)
- Branches:
- (u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
- Children:
- 943eb600edc10daf68e4769172bb646154ff07d8
- Parents:
- fa85ef15a2e50da0844c23c3d3de984b6865f70c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/sagbi.lib
rfa85ef r1e33d5 6 6 AUTHORS: Jan Hackfeld, Jan.Hackfeld@rwth-aachen.de 7 7 Gerhard Pfister, pfister@mathematik.uni-kl.de 8 Viktor Levandovskyy, levandov@math.rwth-aachen.de 9 10 OVERVIEW: 11 SAGBI stands for 'subalgebra bases analogous to Groebner bases for ideals'. 12 It is an important tools in working with finitely presented subalgebras, 13 many properties of SAGBI bases are analogously important to Groebner bases 14 of ideals. Note, that due to absence of Noetherian property, SAGBI basis 15 of a finite number of generators of a subalgebra may be infinite. 16 Hence we provide procedures, which perform a given number of steps in 17 computations. 8 18 9 19 PROCEDURES: 10 sagbiSPoly(A [,r,m]); SAGBI S-polynomials of A 11 sagbiReduce(I,A); subalgebra reduction of I by A 12 sagbi(A [,m,t]); SAGBI basis for A 13 sagbiPart(A,k[,m]); partial SAGBI basis for A 14 algebraicDependence(I,it); iteration of SAGBI for algebraic dependencies of I 20 sagbiSPoly(A [,r,m]); computes SAGBI S-polynomials of A 21 sagbiNF(id,dom,k[,n]); computes SAGBI normal form of id wrt dom 22 sagbiReduce(I,A [,t,mt]); performs subalgebra reduction of I by A 23 sagbiReduction(I,A [,n]); performs subalgebra reduction of I by A in a quotient ring 24 sagbi(A [,m,t]); computes SAGBI basis for A 25 sagbiPart(A,k[,m]); computes partial SAGBI basis for A 26 algebraicDependence(I,it); performs iterations of SAGBI for algebraic dependencies of I 15 27 16 28 SEE ALSO: algebra_lib … … 32 44 ////////////////////////////////////////////////////////////////////////////// 33 45 46 47 //static 48 proc tst_sagbi() 49 { 50 example sagbiSPoly; 51 example sagbiNF; 52 example sagbiReduce; 53 example sagbiReduction; 54 example sagbi; 55 example sagbiPart; 56 example algebraicDependence; 57 } 34 58 35 59 … … 444 468 proc sagbiSPoly(ideal algebra,list #) 445 469 "USAGE: sagbiSPoly(A[, returnRing, meth]); A is an ideal, returnRing and meth are integers. 446 RETURN: Returns SAGBI S-polynomials of the leading terms of given ideal A if returnRing=0. 447 @* Otherwise returns a new ring containing the ideals algebraicRelations 448 @* and spolynomials, where these objects are explained by their name. 449 @* See the example on how to access these objects. 450 @format The other optional argument meth determines which method is 451 used for computing the algebraic relations. 452 - If meth=0 (default), the procedure std is used. 453 - If meth=1, the procedure slimgb is used. 454 - If meth=2, the prodecure uses toric_ideal. 470 RETURN: ideal or ring 471 ASSUME: basering is not a qring 472 PURPOSE: Returns SAGBI S-polynomials of the leading terms of given ideal A if returnRing=0. 473 @* Otherwise returns a new ring containing the ideals algebraicRelations 474 @* and spolynomials, where these objects are explained by their name. 475 @* See the example on how to access these objects. 476 @format The other optional argument meth determines which method is 477 used for computing the algebraic relations. 478 - If meth=0 (default), the procedure std is used. 479 - If meth=1, the procedure slimgb is used. 480 - If meth=2, the prodecure uses toric_ideal. 455 481 @end format 456 482 EXAMPLE: example sagbiSPoly; shows an example" … … 543 569 proc sagbiReduce(idealORpoly, ideal algebra, list #) 544 570 "USAGE: sagbiReduce(I, A[, tr, mt]); I, A ideals, tr, mt optional integers 545 RETURN: Returns the remainder(s) of I after SAGBI reduction by A 571 RETURN: ideal of remainders of I after SAGBI reduction by A 572 ASSUME: basering is not a qring 573 PURPOSE: 546 574 @format 547 575 The optional argument tr=tailred determines whether tail reduction will be performed. … … 635 663 proc sagbi(ideal algebra, list #) 636 664 "USAGE: sagbi(A[, tr, mt]); A ideal, tr, mt optional integers 637 RETURN: A SAGBI basis for the subalgebra given by the generators in A. 665 RETURN: ideal, a SAGBI basis for A 666 ASSUME: basering is not a qring 667 PURPOSE: Computes a SAGBI basis for the subalgebra given by the generators in A. 638 668 @format 639 669 The optional argument tr=tailred determines whether tail reduction will be performed. … … 678 708 } 679 709 } 680 algebra=sagbiConstruction(algebra,-1,tailreduction,method,0); 681 algebra=simplify(algebra,7); 682 algebra=interreduced(algebra); 683 return(algebra); 710 ideal a; 711 a=sagbiConstruction(algebra,-1,tailreduction,method,0); 712 a=simplify(a,7); 713 a=interreduced(a); 714 return(a); 684 715 } 685 716 example … … 695 726 696 727 proc sagbiPart(ideal algebra, int iterations, list #) 697 "USAGE: sagbiPart(A, k,[tr, mt]); A is an ideal, k, tr and mt are integers 698 RETURN: Performs k iterations of the SAGBI construction algorithm for the subalgebra given by the generators in A. 728 "USAGE: sagbiPart(A, k,[tr, mt]); A is an ideal, k, tr and mt are integers 729 RETURN: ideal 730 ASSUME: basering is not a qring 731 PURPOSE: Performs k iterations of the SAGBI construction algorithm for the subalgebra given by the generators given by A. 699 732 @format 700 733 The optional argument tr=tailred determines if tail reduction will be performed. … … 743 776 ERROR("Number of iterations needs to be non-negative."); 744 777 } 745 algebra=sagbiConstruction(algebra,iterations,tailreduction,method,0); 746 algebra=simplify(algebra,7); 747 algebra=interreduced(algebra); 748 return(algebra); 778 ideal a; 779 a=sagbiConstruction(algebra,iterations,tailreduction,method,0); 780 a=simplify(a,7); 781 a=interreduced(a); 782 return(a); 749 783 } 750 784 example … … 762 796 763 797 764 //DONE? 1nsen als werden noch mit ausgegeben, aus algebraischen AbhÀngigkeiten entfernen 798 765 799 // VL: finished the documentation 766 // TO comapre with algDependent from algebra_lib 800 // TO compare with algDependent from algebra_lib 801 // TODO : remove constants from algebraic dependencies 767 802 proc algebraicDependence(ideal I,int iterations) 768 803 "USAGE: algebraicDependence(I,it); I an an ideal, it is an integer 769 RETURN: In 'it' iterations, compute algebraic dependencies between elements of I 804 RETURN: ring 805 ASSUME: basering is not a qring 806 PURPOSE: In @code{it} iterations, compute algebraic dependencies between elements of I 770 807 EXAMPLE: example algebraicDependence; shows an example" 771 808 { … … 900 937 proc sagbiReduction(poly p,ideal dom,list #) 901 938 "USAGE: sagbiReduction(p,dom[,n]); p poly , dom ideal 902 RETURN: a polynomial, after one step subalgebra reduction 939 RETURN: polynomial, after one step of subalgebra reduction 940 PURPOSE: 903 941 @format 904 942 Three algorithm variants are used to perform subalgebra reduction. … … 906 944 n may take the values 0 (default), 1 or 2. 907 945 @end format 908 EXAMPLE: sagbiReduction; shows an example" 946 NOTE: works over both polynomial rings and their quotients 947 EXAMPLE: example sagbiReduction; shows an example" 909 948 { 910 949 def bsr=basering; … … 1032 1071 poly p=x4+x3y+xy2-y2; 1033 1072 sagbiReduction(p,dom); 1073 sagbiReduction(p,dom,2); 1074 // now let us see the action over quotient ring 1075 ideal I = xy; 1076 qring Q = std(I); 1077 ideal dom = imap(r,dom); poly p = imap(r,p); 1034 1078 sagbiReduction(p,dom,1); 1035 sagbiReduction(p,dom,2);1036 1079 } 1037 1080 … … 1039 1082 "USAGE: sagbiNF(id,dom,k[,n]); id either poly or ideal,dom ideal, k and n positive intergers. 1040 1083 RETURN: same as type of id; ideal or polynomial. 1084 ASSUME: basering is not a qring 1085 PURPOSE: 1041 1086 @format 1042 1087 The integer k determines what kind of s-reduction is performed: … … 1047 1092 n may take the values (0 or default),1 or 2. 1048 1093 @end format 1049 NOTE: computation of subalgebra normal forms may be performed in polynomial rings or quotients1050 thereof1051 1094 EXAMPLE: example sagbiNF; show example " 1052 1095 {
Note: See TracChangeset
for help on using the changeset viewer.