# Singular

#### 7.10.4.7 makeLetterplaceRing

Procedure from library `freegb.lib` (see freegb_lib).

Usage:
makeLetterplaceRing(d [,h]); d an integer, h an optional integer (deprecated, use freeAlgebra instead)

Return:
ring

Purpose:
creates a ring with the ordering, used in letterplace computations

Note:
h = -1 (default) : the ordering of the current ring will be used h = 0 : Dp ordering will be used
h = 2 : weights 1 used for all the variables, a tie breaker is a list of block of original ring h = 1 : the pure homogeneous letterplace block ordering (applicable in the situation of homogeneous input ideals) will be used.

Example:
 ```LIB "freegb.lib"; ring r = 0,(x,y,z),Dp; def A = makeLetterplaceRing(2); // same as makeLetterplaceRing(2,0) setring A; A; ==> // coefficients: QQ ==> // number of vars : 6 ==> // block 1 : ordering Dp ==> // : names x y z x y z ==> // block 2 : ordering C ==> // letterplace ring (block size 3) lpVarBlockSize(A); ==> 3 lpDegBound(A); // degree bound ==> 2 setring r; def B = makeLetterplaceRing(2,1); // to compare: setring B; B; ==> // coefficients: QQ ==> // number of vars : 6 ==> // block 1 : ordering Dp ==> // : names x y z ==> // block 2 : ordering Dp ==> // : names x y z ==> // block 3 : ordering C ==> // letterplace ring (block size 3) lpVarBlockSize(B); ==> 3 lpDegBound(B); // degree bound ==> 2 setring r; def C = makeLetterplaceRing(2,2); // to compare: setring C; C; ==> // coefficients: QQ ==> // number of vars : 6 ==> // block 1 : ordering a ==> // : names x y z x y z ==> // : weights 1 1 1 1 1 1 ==> // block 2 : ordering Dp ==> // : names x y z ==> // block 3 : ordering Dp ==> // : names x y z ==> // block 4 : ordering C ==> // letterplace ring (block size 3) lpDegBound(C); ==> 2 lpDegBound(C); // degree bound ==> 2 ```