next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Cremona :: projectiveDegrees

projectiveDegrees -- projective degrees of a rational map between projective varieties

Synopsis

Description

Let φ:K[y0,...,ym]/J →K[x0,...,xn]/I be a ring map representing a rational map Φ: V(I) ⊆ℙn=Proj(K[x0,...,xn]) ---> V(J) ⊆ℙm=Proj(K[y0,...,ym]). The i-th projective degree of Φ is defined in terms of dimension and degree of the closure of Φ-1(L), where L is a general linear subspace of m of a certain dimension; for the precise definition, see Harris's book (Algebraic geometry: A first course - Vol. 133 of Grad. Texts in Math., p. 240). If Φ is defined by elements F0(x0,...,xn),...,Fm(x0,...,xn) and IL denotes the ideal of the subspace L⊆ℙm, then the ideal of the closure of Φ-1(L) is nothing but the saturation of the ideal (φ(IL)) by (F0,....,Fm) in the ring K[x0,...,xn]/I. So, replacing in the definition, general linear subspace by random linear subspace, we get a probabilistic algorithm to compute all projective degrees. This is what the method uses if MathMode is set to false. If instead MathMode is set to true, then the method uses a deterministic algorithm which is described by P. Aluffi in the paper doi:10.1016/S0747-7171(02)00089-5.

i1 : -- map from P^4 to G(1,3) given by the quadrics through a rational normal curve of degree 4
     GF(331^2)[t_0..t_4]; phi=toMap minors(2,matrix{{t_0..t_3},{t_1..t_4}})

                                                                             2                           2                                          2
o2 = map(GF 109561[t , t , t , t , t ],GF 109561[x , x , x , x , x , x ],{- t  + t t , - t t  + t t , - t  + t t , - t t  + t t , - t t  + t t , - t  + t t , a})
                    0   1   2   3   4             0   1   2   3   4   5      1    0 2     1 2    0 3     2    1 3     1 3    0 4     2 3    1 4     3    2 4

o2 : RingMap GF 109561[t , t , t , t , t ] <--- GF 109561[x , x , x , x , x , x ]
                        0   1   2   3   4                  0   1   2   3   4   5
i3 : time projectiveDegrees phi
     -- used 0.0554466 seconds

o3 = {1, 2, 4, 4, 2}

o3 : List
i4 : time projectiveDegrees(phi,MathMode=>true)
MathMode: output certified!
     -- used 0.284895 seconds

o4 = {1, 2, 4, 4, 2}

o4 : List
i5 : psi=invertBirMap(toMap(phi,Dominant=>infinity))

         GF 109561[x , x , x , x , x , x ]
                    0   1   2   3   4   5                                  2                              2                       2
o5 = map(---------------------------------,GF 109561[t , t , t , t , t ],{x  - x x  - x x , x x  - x x , x  - x x , x x  - x x , x  - x x  - x x , a})
                 x x  - x x  + x x                    0   1   2   3   4    1    0 2    0 3   1 2    0 4   2    0 5   2 4    1 5   4    2 5    3 5
                  2 3    1 4    0 5

             GF 109561[x , x , x , x , x , x ]
                        0   1   2   3   4   5
o5 : RingMap --------------------------------- <--- GF 109561[t , t , t , t , t ]
                     x x  - x x  + x x                         0   1   2   3   4
                      2 3    1 4    0 5
i6 : time projectiveDegrees psi
     -- used 0.105257 seconds

o6 = {2, 4, 4, 2, 1}

o6 : List
i7 : time projectiveDegrees(psi,MathMode=>true)
MathMode: output certified!
     -- used 0.18453 seconds

o7 = {2, 4, 4, 2, 1}

o7 : List
i8 : -- map P^8--->P^8 defined by the quadrics through P^2 x P^2 
     phi=toMap minors(2,genericMatrix(ZZ/3331[x_0..x_8],3,3))

          ZZ                                       ZZ
o8 = map(----[x , x , x , x , x , x , x , x , x ],----[x , x , x , x , x , x , x , x , x ],{- x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x , - x x  + x x })
         3331  0   1   2   3   4   5   6   7   8  3331  0   1   2   3   4   5   6   7   8      1 3    0 4     2 3    0 5     2 4    1 5     1 6    0 7     2 6    0 8     2 7    1 8     4 6    3 7     5 6    3 8     5 7    4 8

              ZZ                                            ZZ
o8 : RingMap ----[x , x , x , x , x , x , x , x , x ] <--- ----[x , x , x , x , x , x , x , x , x ]
             3331  0   1   2   3   4   5   6   7   8       3331  0   1   2   3   4   5   6   7   8
i9 : time projectiveDegrees phi
     -- used 0.312508 seconds

o9 = {1, 2, 4, 8, 10, 8, 4, 2, 1}

o9 : List
i10 : time projectiveDegrees(phi,OnlySublist=>1)
     -- used 0.0463017 seconds

o10 = {2, 1}

o10 : List

Caveat

In the package CSM-A, P. Aluffi implemented the same deterministic algorithm to compute projective degrees in the case when the source of the rational map is a projective space (this is done in an internal routine called presegre). It seems that his implementation is faster.

See also

Ways to use projectiveDegrees :