# Singular

#### D.5.8.2 blowUp2

Procedure from library `resolve.lib` (see resolve_lib).

Usage:
blowUp2(J,C);
J,C = ideals,

Assume:
C = ideal containing J

Note:
C the ideal of the center of the blowup and J the ideal of the variety
Important differences to blowUp:
- V(J) itself is blown up, not the ambient space
- C is not assumed to be non-singular

Compute:
the blowing up of J in C, the exceptional locus and the blow-up map

Return:
list, say l, of size at most size(C),

l[i] is the affine ring corresponding to the i-th chart each l[i] contains the ideals
- Jnew, ideal of the blownup J
- eD, ideal of the new exceptional divisor
- bM, ideal corresponding to the blowup map

Example:
 ```LIB "resolve.lib"; ring r=0,(x,y,z),dp; ideal I=z2-x^3*y^2; ideal C=z,xy; list li=blowUp2(I,C); size(li); // number of charts ==> 2 def S1=li[1]; setring S1; // chart 1 basering; ==> // coefficients: QQ ==> // number of vars : 3 ==> // block 1 : ordering dp ==> // : names x(1) x(3) y(2) ==> // block 2 : ordering C Jnew; ==> Jnew[1]=x(1)*y(2)^2-1 eD; ==> eD[1]=x(3) ==> eD[2]=x(1)*y(2)^2-1 bM; ==> bM[1]=x(1) ==> bM[2]=x(3)*y(2)^3 ==> bM[3]=x(3) def S2=li[2]; setring S2; // chart 2 basering; ==> // coefficients: QQ ==> // number of vars : 2 ==> // block 1 : ordering dp ==> // : names x(2) y(1) ==> // block 2 : ordering C Jnew; ==> Jnew[1]=0 eD; ==> eD[1]=x(2)*y(1)^2 bM; ==> bM[1]=y(1)^2 ==> bM[2]=x(2) ==> bM[3]=x(2)*y(1)^3 ```