##### 7.5.4.0. operatorBM

Procedure from library `dmod.lib` (see dmod_lib).

Usage:
  operatorBM(f [,eng]); f a poly, eng an optional int

Return:
  ring

Purpose:
  compute the B-operator and other relevant data for Ann F^s,
  using e.g. algorithm by Briancon and Maisonobe for Ann F^s and BS.

Note:
  activate the output ring with the `setring` command. In the output ring D[s]
  - the polynomial F is the same as the input,
  - the ideal LD is the annihilator of f^s in Dn[s],
  - the ideal LD0 is the needed D-mod structure, where LD0 = LD|s=s0,
  - the polynomial bs is the global Bernstein polynomial of f in the variable s,
  - the list BS contains all the roots with multiplicities of the global Bernstein polynomial of f,
  - the polynomial PS is an operator in Dn[s] such that PS*f^(s+1) = bs*f^s.
  If eng <>0, `std` is used for Groebner basis computations,
  otherwise and by default `slimgb` is used.

Display:
  If `printlevel`=1, progress debug messages will be printed,
  if `printlevel`>=2, all the debug messages will be printed.

Example:

    LIB "dmod.lib";
    ring r = 0,(x,y,z),Dp;
    poly F = x^3+y^3+z^3;
    printlevel = 0;
    def A = operatorBM(F);
    setring A;
    F; // the original polynomial itself
    ==> x^3+y^3+z^3
    LD; // generic annihilator
    ==> LD[1]=x*Dx+y*Dy+z*Dz-3*s
    ==> LD[2]=z^2*Dy-y^2*Dz
    ==> LD[3]=z^2*Dx-x^2*Dz
    ==> LD[4]=y^2*Dx-x^2*Dy
    ==> LD[5]=x^3*Dz+y^3*Dz+z^3*Dz-3*z^2*s
    ==> LD[6]=x^3*Dy+y^3*Dy+y^2*z*Dz-3*y^2*s
    LD0; // annihilator
    ==> LD0[1]=x*Dx+y*Dy+z*Dz+6
    ==> LD0[2]=z^2*Dy-y^2*Dz
    ==> LD0[3]=z^2*Dx-x^2*Dz
    ==> LD0[4]=y^2*Dx-x^2*Dy
    ==> LD0[5]=x^3*Dz+y^3*Dz+z^3*Dz+6*z^2
    ==> LD0[6]=x^3*Dy+y^3*Dy+y^2*z*Dz+6*y^2
    bs; // normalized Bernstein poly
    ==> s^5+7*s^4+173/9*s^3+233/9*s^2+154/9*s+40/9
    BS; // roots and multiplicities of the Bernstein poly
    ==> [1]:
    ==>    _[1]=-2
    ==>    _[2]=-4/3
    ==>    _[3]=-5/3
    ==>    _[4]=-1
    ==> [2]:
    ==>    1,1,1,2
    PS; // the operator, s.t. PS*F^{s+1} = bs*F^s mod LD
    ==> 2/81*y*z*Dx^3*Dy*Dz-2/81*y*z*Dy^4*Dz-4/81*y^2*Dy^2*Dz^3-2/81*y*z*Dy*Dz^4+\
       2/81*y*Dx^3*Dy*s-2/81*y*Dy^4*s+2/81*z*Dx^3*Dz*s+2/27*z*Dy^3*Dz*s+2/27*y*D\
       y*Dz^3*s-2/81*z*Dz^4*s+2/27*y*Dx^3*Dy-2/27*y*Dy^4+2/27*z*Dx^3*Dz+2/27*z*D\
       y^3*Dz-10/81*y*Dy*Dz^3-2/27*z*Dz^4+1/27*Dx^3*s^2+1/9*Dy^3*s^2+1/9*Dz^3*s^\
       2+5/27*Dx^3*s+11/27*Dy^3*s+11/27*Dz^3*s+20/81*Dx^3+8/27*Dy^3+16/81*Dz^3
    reduce(PS*F-bs,LD); // check the property of PS
    ==> 0

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