#### D.6.14.2 goodBasis

Procedure from library `gmspoly.lib` (see gmspoly_lib).

Usage:
  goodBasis(f); poly f

Assume:
  f is cohomologically tame in the sense of Sabbah [Sab98,8]

Return:

      ring R;  basering with new variable s
        ideal b;  [matrix(b)] is a good basis of the Brieskorn lattice
        matrix A;  A(s)=A0+s*A1 and t[matrix(b)]=[matrix(b)](A(s)+s^2*(d/ds))

Remarks:
  procedure implements Algorithm 6 in [Sch05]

Example:

    LIB "gmspoly.lib";
    ring R=0,(x,y,z),dp;
    poly f=x+y+z+x2y2z2;
    def Rs=goodBasis(f);
    setring(Rs);
    b;
    ==> b[1]=1
    ==> b[2]=s2x-3sx2+x3
    ==> b[3]=5/2x
    ==> b[4]=10s2x2-25/2sx3+5/2x4
    ==> b[5]=-25/4sx+25/4x2
    print(jet(A,0));
    ==> 0,0,0,-25/8,0,
    ==> 0,0,0,0,    125/8,
    ==> 1,0,0,0,    0,
    ==> 0,1,0,0,    0,
    ==> 0,0,1,0,    0
    print(jet(A/var(1),0));
    ==> 1/2,0,0,  0,0,
    ==> 0,  1,0,  0,0,
    ==> 0,  0,3/2,0,0,
    ==> 0,  0,0,  2,0,
    ==> 0,  0,0,  0,5/2

See also: gmssing_lib.

User manual for Singular version 4.4.1, 2025, generated by texi2html.