|
5.1.56 hilb
Syntax:
hilb ( ideal_expression )
hilb ( module_expression )
hilb ( ideal_expression, int_expression )
hilb ( module_expression, int_expression )
hilb ( ideal_expression, int_expression , intvec_expression )
hilb ( module_expression, int_expression , intvec_expression )
Type:
- none (if called with one argument)
intvec (if called with two or three arguments)
Purpose:
- computes the (weighted) Hilbert series of the base ring R modulo the ideal, resp. R^k modulo the module,
defined by the leading terms of the generators of the given ideal, resp. module.
If hilb is called with one argument, then the first and second Hilbert series
together with some additional information are displayed.
If hilb is called with two arguments, then the n-th Hilbert series is returned
as an intvec, where n = 1, 2 is the second argument.
If a weight vector w is a given as 3rd argument, then the Hilbert series is computed
w.r.t. these weights w (by default all weights are set to 1).
Caution:
- The last entry of the returned intvec is not part of the actual Hilbert series,
but is used in the Hilbert driven standard basis computation (see stdhilb). (It is the minimum weight of the module generators or 0).
Syntax:
hilb ( intvec_expression )
Type:
- intvec
Purpose:
- computes the second Hilbert series from the first, i.e.
if
intvec v=hilb(I,1); then hilb(v) yields the same result
as hilb(I,2) .
Syntax:
hilb ( ideal_expression, ring, string_expression )
hilb ( module_expression, ring, string_expression )
Type:
- none
Purpose:
- computes the (weighted) Hilbert series of the base ring R modulo the ideal, resp. R^k modulo the module,
defined by the leading terms of the generators of the given ideal, resp. module.
The series is stored as poly under the name give as string in the given ring.
Note:
- If the input is homogeneous w.r.t. the weights and a standard basis, the result is
the (weighted) Hilbert series of the original ideal, resp. module.
Example:
| ring Qt=QQ,t,dp;
ring R=32003,(x,y,z),dp;
ideal i=x2,y2,z2;
ideal s=std(i);
hilb(s);
==> (-t6+3t4-3t2+1) / (1-t)^3
==> (t3+3t2+3t+1) / (1-t)^0
==> // dimension (affine) = 0
==> // degree (affine) = 8
hilb(s,1);
==> 1,0,-3,0,3,0,-1,0
hilb(s,2);
==> 1,3,3,1,0
intvec w=2,2,2;
hilb(s,1,w);
==> 1,0,0,0,-3,0,0,0,3,0,0,0,-1,0
hilb(s,Qt,"h");
setring Qt;h;
==> -t6+3t4-3t2+1
|
See
Hilbert function;
ideal;
intvec;
module;
std;
stdhilb.
|