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

inverseMap -- inverse of a birational map

Synopsis

Description

If the source variety is a projective space and if a further technical condition is satisfied, then the algorithm used is that described in the paper by Russo and Simis - On birational maps and Jacobian matrices - Compos. Math. 126 (3), 335-358, 2001. For the general case, the algorithm used is the same as for invertBirationalMap in the package Parametrization. Note that in this case, the analogous method inverseOfMap in the package RationalMaps generally turns out to be faster.

i1 : -- A Cremona transformation of P^20 
     phi = rationalMap map quadroQuadricCremonaTransformation(20,1)

o1 = -- rational map --
     source: Proj(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ])
                      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20
     target: Proj(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ])
                      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20
     defining forms: {
                      w  w   - w w   + w w  ,
                       10 15    9 16    6 20
                      
                      w  w   - w w   + w w  ,
                       10 14    8 16    5 20
                      
                      w w   - w w   + w w  ,
                       9 14    8 15    4 20
                      
                      w w   - w w   + w w  ,
                       6 14    5 15    4 16
                      
                      w  w   - w  w   + w  w   - w  w   + w  w  ,
                       11 13    16 17    15 18    14 19    12 20
                      
                      w w   - w  w   + w w   - w w   + w w  ,
                       3 13    10 17    9 18    8 19    7 20
                      
                      w  w   - w w   - w w   - w w   + w w  ,
                       10 12    2 13    7 16    6 18    5 19
                      
                      w w   - w w   - w w   - w w   + w w  ,
                       9 12    1 13    7 15    6 17    4 19
                      
                      w w   - w w   - w w   - w w   + w w  ,
                       8 12    0 13    7 14    5 17    4 18
                      
                      w  w   - w w   + w w  ,
                       10 11    3 16    2 20
                      
                      w w   - w w   + w w  ,
                       9 11    3 15    1 20
                      
                      w w   - w w   + w w  ,
                       8 11    3 14    0 20
                      
                      w w   - w w   + w w   - w w   + w w  ,
                       7 11    3 12    2 17    1 18    0 19
                      
                      w w   - w w   + w w  ,
                       6 11    2 15    1 16
                      
                      w w   - w w   + w w  ,
                       5 11    2 14    0 16
                      
                      w w   - w w   + w w  ,
                       4 11    1 14    0 15
                      
                      w w  - w w  + w w  ,
                       6 8    5 9    4 10
                      
                      w w  - w w  + w w  ,
                       3 6    2 9    1 10
                      
                      w w  - w w  + w w  ,
                       3 5    2 8    0 10
                      
                      w w  - w w  + w w ,
                       3 4    1 8    0 9
                      
                      w w  - w w  + w w
                       2 4    1 5    0 6
                     }

o1 : RationalMap (quadratic rational map from PP^20 to PP^20)
i2 : time psi = inverseMap phi
     -- used 0.0679919 seconds

o2 = -- rational map --
     source: Proj(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ])
                      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20
     target: Proj(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ])
                      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20
     defining forms: {
                      - w  w   + w  w   - w  w  ,
                         15 18    14 19    11 20
                      
                      - w  w   + w  w   - w  w  ,
                         15 17    13 19    10 20
                      
                      - w  w   + w  w   - w w  ,
                         14 17    13 18    9 20
                      
                      - w  w   + w  w   - w w  ,
                         11 17    10 18    9 19
                      
                      - w  w   + w w   - w w  ,
                         15 16    3 19    2 20
                      
                      - w  w   + w w   - w w  ,
                         14 16    3 18    1 20
                      
                      - w  w   + w w   - w w  ,
                         13 16    3 17    0 20
                      
                      - w  w   - w w   + w w   - w w   - w w  ,
                         12 16    8 17    7 18    6 19    5 20
                      
                      - w  w   + w w   - w w  ,
                         11 16    2 18    1 19
                      
                      - w  w   + w w   - w w  ,
                         10 16    2 17    0 19
                      
                      - w w   + w w   - w w  ,
                         9 16    1 17    0 18
                      
                      - w  w   + w  w   - w w  ,
                         11 13    10 14    9 15
                      
                      - w w   - w w   + w w   - w w   - w w  ,
                         3 12    8 13    7 14    6 15    4 20
                      
                      w w  + w w  - w w  + w w  - w w  ,
                       3 5    2 6    1 7    0 8    4 16
                      
                      - w w   + w w   - w w  ,
                         3 11    2 14    1 15
                      
                      - w w   + w w   - w w  ,
                         3 10    2 13    0 15
                      
                      - w w  + w w   - w w  ,
                         3 9    1 13    0 14
                      
                      - w w   + w w   - w w   + w w   - w w  ,
                         8 10    7 11    2 12    5 15    4 19
                      
                      - w w  + w w   - w w   + w w   - w w  ,
                         8 9    6 11    1 12    5 14    4 18
                      
                      - w w  + w w   - w w   + w w   - w w  ,
                         7 9    6 10    0 12    5 13    4 17
                      
                      - w w  + w w   - w w
                         2 9    1 10    0 11
                     }

o2 : RationalMap (quadratic rational map from PP^20 to PP^20)
i3 : phi * psi == 1

o3 = true

The method also accepts as input a RingMap representing a rational map Φ between projective varieties. In this case, the RingMap defining Φ-1 is returned.

i4 : -- A Cremona transformation of P^26 
     phi = map quadroQuadricCremonaTransformation(26,1)

o4 = map(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ],QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ],{w  w   - w  w   - w  w   - w  w   - w w  , w  w   - w  w   - w  w   - w  w   - w w  , w  w   - w  w   - w  w   - w  w   - w w  , w  w   - w  w   + w  w   - w  w   - w w  , w  w   - w  w   + w  w   + w  w   - w w  , w w   - w w   + w w   + w w   + w w  , w  w   - w  w   + w  w   - w  w   - w w  , w  w   - w  w   + w  w   + w  w   - w w  , w w   - w w   + w w   + w w   + w w  , w  w   - w  w   - w  w   + w  w   - w w  , w w   - w w   - w w   + w w   + w w  , w  w   - w  w   - w  w   + w  w   - w w  , w  w   - w  w   - w  w   + w  w   - w w  , w w   - w w   - w w   + w w   + w w  , w w   - w w   - w w   + w w   + w w  , w w   - w w   + w w   - w w   + w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   + w w   - w w  , w w   - w w   + w w   + w w   - w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   - w w   + w w  , w w   - w w   - w w   + w w   - w w  , w w   - w w   - w w   + w w   - w w  , w w  - w w  - w w  + w w  - w w })
             0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26    21 22    20 23    15 24    10 25    0 26   19 22    18 23    16 24    11 25    1 26   19 20    18 21    17 24    12 25    2 26   15 19    16 21    17 23    13 25    3 26   10 19    11 21    12 23    13 24    4 26   0 19    1 21    2 23    3 24    4 25   15 18    16 20    17 22    14 25    5 26   10 18    11 20    12 22    14 24    6 26   0 18    1 20    2 22    5 24    6 25   12 16    11 17    13 18    14 19    7 26   2 16    1 17    3 18    5 19    7 25   12 15    10 17    13 20    14 21    8 26   11 15    10 16    13 22    14 23    9 26   2 15    0 17    3 20    5 21    8 25   1 15    0 16    3 22    5 23    9 25   5 13    3 14    7 15    8 16    9 17   5 12    2 14    6 17    8 18    7 20   3 12    2 13    4 17    8 19    7 21   5 11    1 14    6 16    9 18    7 22   3 11    1 13    4 16    9 19    7 23   2 11    1 12    4 18    6 19    7 24   7 10    8 11    9 12    6 13    4 14   5 10    0 14    6 15    9 20    8 22   3 10    0 13    4 15    9 21    8 23   2 10    0 12    4 20    6 21    8 24   1 10    0 11    4 22    6 23    9 24   4 5    3 6    0 7    1 8    2 9

o4 : RingMap QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ] <--- QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ]
                 0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26           0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26
i5 : time psi = inverseMap phi
     -- used 0.129131 seconds

o5 = map(QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ],QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ],{- w w   + w w   + w  w   - w  w   - w w  , - w w   + w w   + w  w   - w  w   - w w  , - w w   + w w   + w  w   - w  w   - w w  , - w w   - w  w   + w  w   - w  w   - w w  , - w w   - w  w   + w  w   - w  w   - w w  , - w w   - w  w   + w  w   - w  w   - w w  , - w w   - w  w   + w  w   - w  w   - w w  , w  w   - w  w   + w  w   - w  w   - w w  , - w  w   + w  w   - w  w   + w  w   - w  w  , - w  w   + w  w   - w  w   + w  w   - w  w  , w w   - w w   + w w   + w  w   - w  w  , - w w   + w w   + w  w   + w w   - w w  , - w w   + w w   + w  w   + w w   - w w  , - w w   - w  w   + w  w   + w w   - w w  , - w w   - w  w   + w  w   + w w   - w w  , w  w   - w  w   + w w   - w w   + w w  , w  w   - w w   + w w   - w w   + w w  , w  w   - w w   + w w   - w w   + w w  , w w  - w w   + w w   - w w   + w w  , w w  - w w   + w w   - w w   + w w  , w w   - w w   + w w   - w w   + w w  , w w   - w w   + w w   - w w   + w w  , w w   - w w   + w w   - w w   + w w  , w w   - w w   + w w   - w w   + w w  , w w  - w w  - w w   + w w   - w w  , - w w  + w w  + w w   - w w   + w w  , w w  - w w  - w w  + w w   - w w  })
             0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26      0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26      5 22    8 23    14 24    13 25    0 26     5 18    8 19    14 20    10 25    1 26     5 16    8 17    13 20    10 24    2 26     5 15    14 17    13 19    10 23    3 26     5 21    20 23    19 24    17 25    4 26     8 15    14 16    13 18    10 22    6 26     8 21    20 22    18 24    16 25    7 26   17 18    16 19    15 20    10 21    9 26     13 21    17 22    16 23    15 24    11 26     14 21    19 22    18 23    15 25    12 26   0 21    4 22    7 23    12 24    11 25     4 18    7 19    12 20    1 21    9 25     4 16    7 17    11 20    2 21    9 24     4 15    12 17    11 19    3 21    9 23     7 15    12 16    11 18    6 21    9 22   12 13    11 14    0 15    3 22    6 23   10 12    9 14    1 15    3 18    6 19   10 11    9 13    2 15    3 16    6 17   8 9    7 10    1 16    2 18    6 20   5 9    4 10    1 17    2 19    3 20   8 11    7 13    0 16    2 22    6 24   5 11    4 13    0 17    2 23    3 24   8 12    7 14    0 18    1 22    6 25   5 12    4 14    0 19    1 23    3 25   5 7    4 8    0 20    1 24    2 25     5 6    3 8    0 10    1 13    2 14   4 6    3 7    0 9    1 11    2 12

o5 : RingMap QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ] <--- QQ[w , w , w , w , w , w , w , w , w , w , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  , w  ]
                 0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26           0   1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26
i6 : isInverseMap(phi,psi)

o6 = true

Caveat

If the map passed is not birational and the option MathMode is set to false, you might not get any error message.

See also

Ways to use inverseMap :