Changeset 1e33d5 in git for Singular/LIB/sagbi.lib


Ignore:
Timestamp:
Oct 8, 2010, 11:09:04 PM (14 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
943eb600edc10daf68e4769172bb646154ff07d8
Parents:
fa85ef15a2e50da0844c23c3d3de984b6865f70c
Message:
*levandov: many updates of doc, examples, additions

git-svn-id: file:///usr/local/Singular/svn/trunk@13440 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/sagbi.lib

    rfa85ef r1e33d5  
    66AUTHORS: Jan Hackfeld,     Jan.Hackfeld@rwth-aachen.de
    77         Gerhard Pfister,  pfister@mathematik.uni-kl.de
     8         Viktor Levandovskyy,     levandov@math.rwth-aachen.de
     9
     10OVERVIEW:
     11SAGBI stands for 'subalgebra bases analogous to Groebner bases for ideals'.
     12It is an important tools in working with finitely presented subalgebras,
     13many properties of SAGBI bases are analogously important to Groebner bases
     14of ideals. Note, that due to absence of Noetherian property, SAGBI basis
     15of a finite number of generators of a subalgebra may be infinite.
     16Hence we provide procedures, which perform a given number of steps in
     17computations.
    818
    919PROCEDURES:
    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
    1527
    1628SEE ALSO: algebra_lib
     
    3244//////////////////////////////////////////////////////////////////////////////
    3345
     46
     47//static
     48proc 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}
    3458
    3559
     
    444468proc sagbiSPoly(ideal algebra,list #)
    445469"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.
     470RETURN:   ideal or ring
     471ASSUME: basering is not a qring
     472PURPOSE: 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.
    455481@end format
    456482EXAMPLE:  example sagbiSPoly; shows an example"
     
    543569proc sagbiReduce(idealORpoly, ideal algebra, list #)
    544570"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
     571RETURN:   ideal of remainders of I after SAGBI reduction by A
     572ASSUME: basering is not a qring
     573PURPOSE:
    546574@format
    547575    The optional argument tr=tailred determines whether tail reduction will be performed.
     
    635663proc sagbi(ideal algebra, list #)
    636664"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.
     665RETURN: ideal, a SAGBI basis for A
     666ASSUME: basering is not a qring
     667PURPOSE: Computes a SAGBI basis for the subalgebra given by the generators in A.
    638668@format
    639669    The optional argument tr=tailred determines whether tail reduction will be performed.
     
    678708    }
    679709  }
    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);
    684715}
    685716example
     
    695726
    696727proc 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
     729RETURN: ideal
     730ASSUME: basering is not a qring
     731PURPOSE: Performs k iterations of the SAGBI construction algorithm for the subalgebra given by the generators given by A.
    699732@format
    700733     The optional argument tr=tailred determines if tail reduction will be performed.
     
    743776    ERROR("Number of iterations needs to be non-negative.");
    744777  }
    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);
    749783}
    750784example
     
    762796
    763797
    764 //DONE? 1nsen als werden noch mit ausgegeben, aus algebraischen AbhÀngigkeiten entfernen
     798
    765799// 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
    767802proc algebraicDependence(ideal I,int iterations)
    768803"USAGE: algebraicDependence(I,it); I an an ideal, it is an integer
    769 RETURN: In 'it' iterations, compute algebraic dependencies between elements of I
     804RETURN: ring
     805ASSUME: basering is not a qring
     806PURPOSE: In @code{it} iterations, compute algebraic dependencies between elements of I
    770807EXAMPLE: example algebraicDependence; shows an example"
    771808{
     
    900937proc sagbiReduction(poly p,ideal dom,list #)
    901938"USAGE: sagbiReduction(p,dom[,n]); p poly , dom  ideal
    902 RETURN: a polynomial, after one step subalgebra reduction
     939RETURN: polynomial, after one step of subalgebra reduction
     940PURPOSE:
    903941@format
    904942    Three algorithm variants are used to perform subalgebra reduction.
     
    906944    n may take the values 0 (default), 1 or 2.
    907945@end format
    908 EXAMPLE: sagbiReduction; shows an example"
     946NOTE: works over both polynomial rings and their quotients
     947EXAMPLE: example sagbiReduction; shows an example"
    909948{
    910949  def bsr=basering;
     
    10321071  poly p=x4+x3y+xy2-y2;
    10331072  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);
    10341078  sagbiReduction(p,dom,1);
    1035   sagbiReduction(p,dom,2);
    10361079}
    10371080
     
    10391082"USAGE: sagbiNF(id,dom,k[,n]); id either poly or ideal,dom ideal, k and n positive intergers.
    10401083RETURN: same as type of id; ideal or polynomial.
     1084ASSUME: basering is not a qring
     1085PURPOSE:
    10411086@format
    10421087    The integer k determines what kind of s-reduction is performed:
     
    10471092    n may take the values (0 or default),1 or 2.
    10481093@end format
    1049 NOTE: computation of subalgebra normal forms may be performed in polynomial rings or quotients
    1050       thereof
    10511094EXAMPLE: example sagbiNF; show example "
    10521095{
Note: See TracChangeset for help on using the changeset viewer.