# Singular

#### D.5.8.8 blowUpBO

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

Usage:
blowUpBO (BO,C,e);
BO = basic object, a list: ideal W,
ideal J,
intvec b,
list Ex,
ideal ab,
intvec v,
intvec w,
matrix M
C = ideal
e = integer (0 usual blowing up, 1 deleting extra charts, 2 deleting
no charts )

Assume:
R = basering, a polynomial ring, W an ideal of R,
J = ideal containing W,
C = ideal containing J

Compute:
the blowing up of BO[1] in C, the exeptional locus, the strict transform of BO[2]

Note:
blowUpBO may be applied to basic objects in the sense of
[Bravo, Encinas, Villamayor] in the following referred to as BO and
to presentations in the sense of [Bierstone, Milman] in the following
referred to as BM.

Return:
a list l of length at most size(C),
l[i] is a ring containing an object BO resp. BM:
BO[1]=BM[1] an ideal, say Wi, defining the ambient space of the i-th chart of the blowing up
BO[2]=BM[2] an ideal defining the strict transform
BO[3] intvec, the first integer b such that in the original object (Delta^b(BO[2]))==1
the subsequent integers have the same property for Coeff-Objects of BO[2] used when determining the center
BM[3] intvec, BM[3][i] is the assigned multiplicity of BM[2][i]
BO[4]=BM[4] the list of exceptional divisors
BO[5]=BM[5] an ideal defining the map K[W] ----> K[Wi]
BO[6]=BM[6] an intvec BO[6][j]=1 indicates that <BO[4][j],BO[2]>=1, i.e. the strict transform does not meet the j-th exceptional divisor
BO[7] intvec, the index of the first blown-up object in the resolution process leading to this object for which the value of b was BO[3] the subsequent ones are the indices for the Coeff-Objects of BO[2] used when determining the center
BM[7] intvec, BM[7][i] is the index at which the (2i-1)st entry of the invariant first reached its current maximal value
BO[8]=BM[8] a matrix indicating that BO[4][i] meets BO[4][j] by BO[8][i,j]=1 for i < j
BO[9] empty
BM[9] the invariant

Example:
 ```LIB "resolve.lib"; ring R=0,(x,y),dp; ideal W; ideal J=x2-y3; intvec b=1; list E; ideal abb=maxideal(1); intvec v; intvec w=-1; matrix M; intvec ma; list BO=W,J,b,E,abb,v,w,M,ma; ideal C=CenterBO(BO)[1]; list blow=blowUpBO(BO,C,0); def Q=blow[1]; setring Q; BO; ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=y(1)^2-x(2) ==> [3]: ==> 1 ==> [4]: ==> [1]: ==> _[1]=x(2) ==> [5]: ==> _[1]=x(2)*y(1) ==> _[2]=x(2) ==> [6]: ==> 0 ==> [7]: ==> -1 ==> [8]: ==> _[1,1]=0 ==> [9]: ==> 0 ```