# Singular

##### 7.7.7.0. sickle
Procedure from library `fpadim.lib` (see fpadim_lib).

Usage:
sickle(G[,m, d, h, degbound]); G an ideal; m,d,h,degbound optional
integers

Return:
list

Purpose:
Allowing the user to access all procs with one command

Assume:
- basering is a Letterplace ring. G is a Letterplace ideal.
- if you specify a different degree bound degbound,
degbound <= attrib(basering,uptodeg) should hold.

Note:
The returned object will always be a list, but the entries of the
returned list may be very different
case m=1,d=1,h=1: see lpDHilbertSickle
case m=1,d=1,h=0: see lpSickleDim
case m=1,d=0,h=1: see lpSickleHil
case m=1,d=0,h=0: see lpSickle (this is the default case)
case m=0,d=1,h=1: see lpDHilbert
case m=0,d=1,h=0: see lpKDim
case m=0,d=0,h=1: see lpHilbert
case m=0,d=0,h=0: returns an error
- If degbound is set, there will be a degree bound added. 0 means no
degree bound. Default: attrib(basering,uptodeg).
- If the K-dimension is known to be infinite, a degree bound is needed

Example:
 ```LIB "fpadim.lib"; ring r = 0,(x,y),dp; def R = makeLetterplaceRing(5); // constructs a Letterplace ring setring R; // sets basering to Letterplace ring ideal G = x(1)*x(2), y(1)*y(2),x(1)*y(2)*x(3); // G contains a Groebner basis sickle(G,1,1,1); // computes mistletoes, K-dimension and the Hilbert series ==> [1]: ==> 6 ==> [2]: ==> 1,2,2,1 ==> [3]: ==> _[1]=x(1)*y(2) ==> _[2]=y(1)*x(2)*y(3) sickle(G,1,0,0); // computes mistletoes only ==> _[1]=x(1)*y(2) ==> _[2]=y(1)*x(2)*y(3) sickle(G,0,1,0); // computes K-dimension only ==> 6 sickle(G,0,0,1); // computes Hilbert series only ==> 1,2,2,1 ```