Singular Manual: checkRoot

| ##### 7.8.4.0. checkRoot Procedure from library `dmod.lib` (see dmod_lib). Usage: checkRoot(f,alpha [,S,eng]); poly f, number alpha, string S, int eng Return: int Assume: Basering is a commutative ring, alpha is a positive rational number. Purpose: check whether a negative rational number -alpha is a root of the global Bernstein-Sato polynomial of f and compute its multiplicity, with the algorithm given by S and with the Groebner basis engine given by eng. Note: The annihilator of f^s in D[s] is needed and hence it is computed with the algorithm by Briancon and Maisonobe. The value of a string S can be 'alg1' (default) - for the algorithm 1 of [LM08] 'alg2' - for the algorithm 2 of [LM08] Depending on the value of S, the output of type int is: 'alg1': 1 only if -alpha is a root of the global Bernstein-Sato polynomial 'alg2': the multiplicity of -alpha as a root of the global Bernstein-Sato polynomial of f. If -alpha is not a root, the output is 0. 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";
    printlevel=0;
    ring r = 0,(x,y),Dp;
    poly F = x^4+y^5+x*y^4;
    checkRoot(F,11/20);    // -11/20 is a root of bf
    ==> 1
    poly G = x*y;
    checkRoot(G,1,"alg2"); // -1 is a root of bg with multiplicity 2
    ==> 2

User manual for Singular version 4-1-1p4, 2018, generated by texi2html.