| ##### 7.5.2.0. bfctIdeal Procedure from library `bfun.lib` (see bfun_lib). Usage: bfctIdeal(I,w[,s,t]); I an ideal, w an intvec, s,t optional ints Return: list of ideal and intvec Purpose: computes the roots of the global b-function of I w.r.t. the weight (-w,w). Assume: The basering is the n-th Weyl algebra in characteristic 0 and for all 1<=i<=n the identity var(i+n)*var(i)=var(i)*var(i+1)+1 holds, i.e. the sequence of variables is given by x(1),...,x(n),D(1),...,D(n), where D(i) is the differential operator belonging to x(i). Further we assume that I is holonomic. Background: In this proc, the initial ideal of I is computed according to the algorithm by Masayuki Noro and then a system of linear equations is solved by linear reductions. Note: In the output list, say L, - L[1] of type ideal contains all the rational roots of a b-function, - L[2] of type intvec contains the multiplicities of above roots, - optional L[3] of type string is the part of b-function without rational roots. Note, that a b-function of degree 0 is encoded via L[1][1]=0, L[2]=0 and L[3] is 1 (for nonzero constant) or 0 (for zero b-function). If s<>0, `std` is used for GB computations in characteristic 0, otherwise, and by default, `slimgb` is used. If t<>0, a matrix ordering is used for GB computations, otherwise, and by default, a block ordering is used. Display: If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed. Example:
    LIB "bfun.lib";
    ring @D = 0,(x,y,Dx,Dy),dp;
    def D = Weyl();
    setring D;
    ideal I = 3*x^2*Dy+2*y*Dx,2*x*Dx+3*y*Dy+6; I = std(I);
    intvec w1 = 0,1;
    intvec w2 = 2,3;
    bfctIdeal(I,w1);
    ==> [1]:
    ==>    _[1]=0
    ==>    _[2]=-2/3
    ==>    _[3]=-4/3
    ==> [2]:
    ==>    1,1,1
    bfctIdeal(I,w2,0,1);
    ==> [1]:
    ==>    _[1]=-6
    ==> [2]:
    ==>    1
    ideal J = I[size(I)]; // J is not holonomic by construction
    bfctIdeal(J,w1); //  b-function of D/J w.r.t. w1 is non-zero
    ==> WARNING: given ideal is not holonomic
    ==> ... setting bound for degree of b-function to 10 and proceeding
    ==> [1]:
    ==>    _[1]=0
    ==>    _[2]=-2/3
    ==>    _[3]=-4/3
    ==> [2]:
    ==>    1,1,1
    bfctIdeal(J,w2); //  b-function of D/J w.r.t. w2 is zero
    ==> WARNING: given ideal is not holonomic
    ==> ... setting bound for degree of b-function to 10 and proceeding
    ==> // Intersection is zero
    ==> [1]:
    ==>    _[1]=0
    ==> [2]:
    ==>    0
    ==> [3]:
    ==>    0

User manual for Singular version 4.3.2, 2023, generated by texi2html.