|  |  5.1.138 sba 
See
 fglm;
 groebner;
 ideal;
 ring;
 slimgb;
 std.Syntax:sba (ideal_expression)
 sba (ideal_expression,int_expression,int_expression)Type:ideal
Purpose:returns a standard basis of an ideal with respect to the
monomial ordering of the basering.
A standard basis is a set of generators such that
the leading terms generate the leading ideal, resp. module.
Use optional
second and third arguments of type
 intto determine the respective variant of
the signature-based standard basis algorithm:The second argument specifies the internal module order
 sbauses:
0: induced Schreyer order on the signatures, non-incremental computation
of the basis
1: position over term order, incremental computation of the basis
2: term over position order, non-incremental computation
3: Schreyer-weighted degree over index over leading term The third argument specifies the rewrite order
 sbauses:
0: using the rewrite order described inhttp://dx.doi.org/10.1016/j.jsc.2010.06.019
1: using the rewrite order described inhttp://dx.doi.org/10.1016/j.jsc.2011.05.004 The standard call of
 sba(i)corresponds tosba(i,0,1).Note:The
standard basis is computed with an optimized version of known signature-based
algorithms like Faugere's F5 Algorithm. Whereas the correctness of the
algorithms is only guaranteed for global orderings, timings for pure
lexicographical orderings can be slow. In this situation you should try to
compute the basis w.r.t. the graded reverse-lexicographic ordering and then
convert to a basis for the lexicographical ordering using other methods (
see  fglm and see  grwalk_lib). If the algorithms tend to use too much
memory, you should try the other implemented standard basis algorithms (
see  std, see  groebner, and see  slimgb).
Note that the behaviour of
 sbaon an example can be rather different
depending on which variant you choose (second and third argument).Example:|  |   // incremental F5 computation
  ring r=32003,(x,y,z),dp;
  poly s1=1x2y+151xyz10+169y21;
  poly s2=1xz14+6x2y4+3z24;
  poly s3=5y10z10x+2y20z10+y10z20+11x3;
  ideal i=s1,s2,s3;
  ideal j=sba(i,1,0);
  // non-incremental F5 computation
  ring rhom=32003,(x,y,z,h),dp;
  ideal i=homog(imap(r,i),h);
  ideal j=sba(i,0,0);
  // non-incremental signature-based computation
  ring whom=32003,(x,y,z),dp;
  ideal i=fetch(r,i);
  ideal j=sba(i);
 | 
 
 |