| #### D.6.10.1 BlowingUp Procedure from library `curvepar.lib` (see curvepar_lib). Usage: BlowingUp(f,I,l); f=poly b=ideal l=list Assume: The basering is r=0,(x(1..n),a),dp f is an irrreducible polynomial in k[a], I is an ideal of a curve(if we consider a as a parameter) Compute: Blowing-up of the curve at point 0. Return: list C of charts. Each chart C[i] is a list of size 5 (reps. 6 in case of plane curves) C[i][1] is an integer j. It shows, which standard chart do we consider. C[i][2] is an irreducible poly g in k[a]. It is a minimal polynomial for the new parameter. C[i][3] is an ideal H in k[a]. c_i=F_i(a_new) for i=1..n, a_old=H[n+1](a_new). C[i][4] is a map teta:k[x(1)..x(n),a]-->k[x(1)..x(n),a] from the new curve to the old one. x(1)-->x(j)*x(1) . . . x(j)-->x(j) . . . x(n)-->x(j)*(c_n+x(n)) C[i][5] is an ideal J of a new curve. J=teta(I). C[i][6] is the list of exceptional divisors in the chart Example:
    LIB "curvepar.lib";
    ring r=0,(x(1..3),a),dp;
    poly f=a2+1;
    ideal i=x(1)^2+a*x(2)^3,x(3)^2-x(2);
    list l=1,3,2;
    list B=BlowingUp(f,i,l);
    B;
    ==> [1]:
    ==>    [1]:
    ==>       3
    ==>    [2]:
    ==>       a^2+1
    ==>    [3]:
    ==>       _[1]=0
    ==>       _[2]=0
    ==>       _[3]=1
    ==>    [4]:
    ==>       _[1]=x(1)*x(3)
    ==>       _[2]=x(2)*x(3)
    ==>       _[3]=x(3)
    ==>       _[4]=a
    ==>    [5]:
    ==>       _[1]=x(2)-x(3)
    ==>       _[2]=x(2)^3*x(3)*a+x(1)^2

User manual for Singular version 4.3.2, 2023, generated by texi2html.