|
7.5.2.0. checkRoot
Procedure from library dmod.lib (see dmod_lib).
- Usage:
- checkRoot(f,alpha [,S,eng]); f a poly, alpha a number, S a string , eng an optional int
- Return:
- int
- Purpose:
- check whether a rational is a root of the global Bernstein polynomial of f (and compute its multiplicity)
with the algorithm given in S and with the Groebner basis engine given in eng
- Note:
- The annihilator of f^s in D[s] is needed and it is computed according to the algorithm by Briancon and Maisonobe
The value of a string S can be
'alg1' (default) - for the algorithm 1 of J. Martin-Morales (unpublished)
'alg2' - for the algorithm 2 of J. Martin-Morales (unpublished)
The output int is:
- if the algorithm 1 is chosen: 1 if -alpha is a root of the global Bernstein polynomial and 0 otherwise
- if the algorithm 2 is chosen: the multiplicity of -alpha as a root of the global Bernstein 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.
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
|
|