# Singular

#### D.5.5.3 determinecenter

Procedure from library `resbinomial.lib` (see resbinomial_lib).

Usage:
determinecenter(Coef,expJ,c,n,Y,a,listmb,flag,control3,Hhist); Coef, expJ, listmb, flag lists, c number, n, Y, control3 integers, a, Hhist intvec

Compute:
next center of blowing up and related information, see example

Return:
several lists defining the center and related information

Example:
 ```LIB "resbinomial.lib"; ring r = 0,(x(1..4)),dp; list flag=identifyvar(); ideal J=x(1)^2-x(2)^2*x(3)^5, x(1)*x(3)^3+x(4)^6; list Lmb=1,list(0,0,0,0),list(0,0,0,0),list(0,0,0,0),iniD(4),iniD(4),list(0,0,0,0),-1; list L=data(J,2,4); list LL=determinecenter(L[1],L[2],2,4,0,0,Lmb,flag,0,-1); // Compute the first center LL[1]; // index of variables in the center ==> [1]: ==> 1 ==> [2]: ==> 4 ==> [3]: ==> 3 ==> [4]: ==> 2 LL[2]; // exponents of ideals J_4,J_3,J_2,J_1 ==> [1]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 2 ==> [3]: ==> 5 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> 2 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 6 ==> [2]: ==> [1]: ==> 1 ==> [2]: ==> 0 ==> [3]: ==> 3 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 2 ==> [3]: ==> 5 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 6 ==> [3]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 6 ==> [4]: ==> 0 ==> [3]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 2 ==> [3]: ==> 5 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 6 ==> [4]: ==> 0 ==> [4]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 12 ==> [3]: ==> 0 ==> [4]: ==> 0 LL[3]; // list of orders of J_4,J_3,J_2,J_1 ==> [1]: ==> 2 ==> [2]: ==> 6 ==> [3]: ==> 6 ==> [4]: ==> 12 LL[4]; // list of critical values ==> [1]: ==> 2 ==> [2]: ==> 2 ==> [3]: ==> 6 ==> [4]: ==> 6 LL[5]; // components of the resolution function t ==> [1]: ==> 1 ==> [2]: ==> 3 ==> [3]: ==> 1 ==> [4]: ==> 2 LL[6]; // list of D_4,D_3,D_2,D_1 ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [3]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [4]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 LL[7]; // list of H_4,H_3,H_2,H_1 (exceptional divisors) ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [3]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [4]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 LL[8]; // list of all exceptional divisors acumulated ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 LL[9]; // auxiliary invariant ==> [1]: ==> 0 LL[10]; // intvec pointing out the last step where the function t has dropped ==> -1,-1,-1,-1 ring r= 0,(x(1..4)),dp; ==> // ** redefining r (ring r= 0,(x(1..4)),dp;) list flag=identifyvar(); ==> // ** redefining flag (list flag=identifyvar();) ideal J=x(1)^3-x(2)^2*x(3)^5, x(1)*x(3)^3+x(4)^5; list Lmb=2,list(0,0,0,0),list(0,0,0,0),list(0,0,0,0),iniD(4),iniD(4),list(0,0,0,0),-1; ==> // ** redefining Lmb (=2,list(0,0,0,0),list(0,0,0,0),list(0,0,0,0),iniD(4\ ),iniD(4),list(0,0,0,0),-1;) list L2=data(J,2,4); list L3=determinecenter(L2[1],L2[2],2,4,0,0,Lmb,flag,0,-1); // Example with rational exponents in E-Coeff L3[1]; // index of variables in the center ==> [1]: ==> 1 ==> [2]: ==> 3 ==> [3]: ==> 4 L3[2]; // exponents of ideals J_4,J_3,J_2,J_1 ==> [1]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 2 ==> [3]: ==> 5 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> 3 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 5 ==> [2]: ==> [1]: ==> 1 ==> [2]: ==> 0 ==> [3]: ==> 3 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 2 ==> [3]: ==> 5 ==> [4]: ==> 0 ==> [2]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 5 ==> [3]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 9/2 ==> [4]: ==> 0 ==> [3]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 5 ==> [4]: ==> [1]: ==> [1]: ==> [1]: ==> 0 ==> [2]: ==> 0 ==> [3]: ==> 0 ==> [4]: ==> 0 L3[3]; // list of orders of J_4,J_3,J_2,J_1 ==> [1]: ==> 3 ==> [2]: ==> 9/2 ==> [3]: ==> 5 L3[4]; // list of critical values ==> [1]: ==> 2 ==> [2]: ==> 3 ==> [3]: ==> 9/2 L3[5]; // components of the resolution function ==> [1]: ==> 3/2 ==> [2]: ==> 3/2 ==> [3]: ==> 10/9 ```