i1 : codimBsInv = (m) -> (
-- input: m, the list of projective degrees of a birational map
-- output: the codimension of the base locus of the inverse map
k:=#m -1; z:=m_k; d:=floor(m_(k-1)/z);
for i from 2 to k do if z*d^i - m_(k-i) > 0 then return i;
);
|
i2 : phi = toMap trim minors(2,genericSymmetricMatrix(QQ[x_0..x_5],3))
2 2 2
o2 = map(QQ[x ..x ],QQ[x ..x ],{x - x x , x x - x x , x x - x x , x - x x , x x - x x , x - x x })
0 5 0 5 4 3 5 2 4 1 5 2 3 1 4 2 0 5 1 2 0 4 1 0 3
o2 : RingMap QQ[x ..x ] <--- QQ[x ..x ]
0 5 0 5
|
i3 : codimBsInv projectiveDegrees phi o3 = 3 |
However, sometimes larger values may be preferable.
The object CodimBsInv is a symbol.