
7.7.6.0. bfctVarIn
Procedure from library dmodvar.lib (see dmodvar_lib).
 Usage:
 bfctVarIn(I [,a,b,c]); I an ideal, a,b,c optional ints
 Return:
 list of ideal and intvec
 Purpose:
 computes the roots of the BernsteinSato polynomial and their
multiplicities for an affine algebraic variety defined by I.
 Assume:
 The basering is commutative and over a field of characteristic 0.
Varnames of the basering do not include t(1),...,t(r) and
Dt(1),...,Dt(r), where r is the number of entries of the input ideal.
 Note:
 In the output list, say L,
 L[1] of type ideal contains all the rational roots of a bfunction,
 L[2] of type intvec contains the multiplicities of above roots,
 optional L[3] of type string is the part of bfunction without rational roots.
Note, that a bfunction 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 bfunction).
If a<>0, the ideal is used as given. Otherwise, and by default, a
heuristically better suited generating set is used to reduce computation time.
If b<>0, std is used for GB computations in characteristic 0,
otherwise, and by default, slimgb is used.
If c<>0, a matrix ordering is used for GB computations, otherwise,
and by default, a block ordering is used.
Further note, that in this proc, the initial ideal of the multivariate Malgrange
ideal defined by I is computed and then a system of linear equations is solved
by linear reductions following the ideas by Noro.
The result is shifted by 1codim(Var(F)) following (BMS06).
 Display:
 If printlevel=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.
Example:
 LIB "dmodvar.lib";
ring R = 0,(x,y,z),dp;
ideal F = x^2+y^3, z;
list L = bfctVarIn(F);
L;
==> [1]:
==> _[1]=5/6
==> _[2]=1
==> _[3]=7/6
==> [2]:
==> 1,1,1

