# Singular

##### 7.5.3.0. centerRed
Procedure from library central.lib (see central_lib).

Usage:
centerRed( D[, N] ); D int, N optional int

Return:
ideal, generated by computed elements

Purpose:
computes subalgebra generators of the center up to degree D

Note:
In general, one cannot compute the whole center.
Hence, one has to specify a termination condition via arguments D and/or N.
If D is positive, only central elements up to degree D will be found.
If D is negative, the termination is determined by N only.
If N is given, the computation stops if at least N elements have been found.
Warning: if N is given and bigger than the actual number of generators,
the procedure may not terminate.
Current ordering must be a degree compatible well-ordering.

Example:
 LIB "central.lib"; ring AA = 0,(x,y,z),dp; matrix D[3][3]=0; D[1,2]=z; def A = nc_algebra(1,D); setring A; // it is a Heisenberg algebra // find a basis of the vector space of // central elements of degree <= 3: ideal VSZ = centerVS(3); // There should be 3 degrees of z. VSZ; ==> VSZ[1]=z ==> VSZ[2]=z2 ==> VSZ[3]=z3 inCenter(VSZ); // check the result ==> 1 // find "minimal" central elements of degree <= 3 ideal SAZ = centerRed(3); // Only 'z' must be computed SAZ; ==> SAZ[1]=z inCenter(SAZ); // check the result ==> 1