Alternatively, one can apply the method directly to the Laurent polynomial f. In this case, the matrix A is automatically determined by exponentsMatrix.
As an example, we now calculate the sparse discriminant of a generic trilinear form on ℙ1×ℙ2×ℙ1, that is, the hyperdeterminant of a generic three-dimensional matrix of size 2×3×2.
i1 : f = genericMultihomogeneousPolynomial((2,3,2),(1,1,1))
o1 = a x y z + a x y z + a x y z + a x y z + a x y z + a x y z + a x y z + a x y z +
0,0,0 0 0 0 0,0,1 0 0 1 0,1,0 0 1 0 0,1,1 0 1 1 0,2,0 0 2 0 0,2,1 0 2 1 1,0,0 1 0 0 1,0,1 1 0 1
----------------------------------------------------------------------------------------------------------------------------
a x y z + a x y z + a x y z + a x y z
1,1,0 1 1 0 1,1,1 1 1 1 1,2,0 1 2 0 1,2,1 1 2 1
o1 : ZZ[a , a , a , a , a , a , a , a , a , a , a , a ][x , x , y , y , y , z , z ]
0,0,0 0,0,1 0,1,0 0,1,1 0,2,0 0,2,1 1,0,0 1,0,1 1,1,0 1,1,1 1,2,0 1,2,1 0 1 0 1 2 0 1
|
i2 : time sparseDiscriminant f
-- used 3.1191 seconds
2 2 2
o2 = a a a a a a - a a a a a - a a a a +
0,1,1 0,2,0 0,2,1 1,0,0 1,0,1 1,1,0 0,1,0 0,2,1 1,0,0 1,0,1 1,1,0 0,1,1 0,2,0 1,0,1 1,1,0
----------------------------------------------------------------------------------------------------------------------------
2 2 2 2 2
a a a a a - a a a a a + a a a a - a a a a a
0,1,0 0,2,0 0,2,1 1,0,1 1,1,0 0,0,1 0,2,0 0,2,1 1,0,1 1,1,0 0,0,0 0,2,1 1,0,1 1,1,0 0,1,1 0,2,0 0,2,1 1,0,0 1,1,1
----------------------------------------------------------------------------------------------------------------------------
2 2 2
+ a a a a + a a a a a - a a a a a a +
0,1,0 0,2,1 1,0,0 1,1,1 0,1,1 0,2,0 1,0,0 1,0,1 1,1,1 0,1,0 0,2,0 0,2,1 1,0,0 1,0,1 1,1,1
----------------------------------------------------------------------------------------------------------------------------
2 2
a a a a a a - a a a a a + a a a a a -
0,0,1 0,2,0 0,2,1 1,0,0 1,1,0 1,1,1 0,0,0 0,2,1 1,0,0 1,1,0 1,1,1 0,0,1 0,2,0 1,0,1 1,1,0 1,1,1
----------------------------------------------------------------------------------------------------------------------------
2 2 2
a a a a a a - a a a a + a a a a a -
0,0,0 0,2,0 0,2,1 1,0,1 1,1,0 1,1,1 0,0,1 0,2,0 1,0,0 1,1,1 0,0,0 0,2,0 0,2,1 1,0,0 1,1,1
----------------------------------------------------------------------------------------------------------------------------
2 2
a a a a a + a a a a a a + a a a a a -
0,1,1 0,2,0 1,0,0 1,0,1 1,2,0 0,1,0 0,1,1 0,2,1 1,0,0 1,0,1 1,2,0 0,1,0 0,1,1 0,2,0 1,0,1 1,2,0
----------------------------------------------------------------------------------------------------------------------------
2 2
a a a a + a a a a a a + a a a a a a -
0,1,0 0,2,1 1,0,1 1,2,0 0,0,1 0,1,1 0,2,0 1,0,1 1,1,0 1,2,0 0,0,1 0,1,0 0,2,1 1,0,1 1,1,0 1,2,0
----------------------------------------------------------------------------------------------------------------------------
2a a a a a a + a a a a a a - 2a a a a a a +
0,0,0 0,1,1 0,2,1 1,0,1 1,1,0 1,2,0 0,0,1 0,1,1 0,2,0 1,0,0 1,1,1 1,2,0 0,0,1 0,1,0 0,2,1 1,0,0 1,1,1 1,2,0
----------------------------------------------------------------------------------------------------------------------------
a a a a a a - a a a a a a - a a a a a a +
0,0,0 0,1,1 0,2,1 1,0,0 1,1,1 1,2,0 0,0,1 0,1,0 0,2,0 1,0,1 1,1,1 1,2,0 0,0,0 0,1,1 0,2,0 1,0,1 1,1,1 1,2,0
----------------------------------------------------------------------------------------------------------------------------
2
2a a a a a a - a a a a a + a a a a a a +
0,0,0 0,1,0 0,2,1 1,0,1 1,1,1 1,2,0 0,0,1 0,2,0 1,1,0 1,1,1 1,2,0 0,0,0 0,0,1 0,2,1 1,1,0 1,1,1 1,2,0
----------------------------------------------------------------------------------------------------------------------------
2 2 2 2 2 2
a a a a a - a a a a - a a a a a + a a a a +
0,0,0 0,0,1 0,2,0 1,1,1 1,2,0 0,0,0 0,2,1 1,1,1 1,2,0 0,0,1 0,1,0 0,1,1 1,0,1 1,2,0 0,0,0 0,1,1 1,0,1 1,2,0
----------------------------------------------------------------------------------------------------------------------------
2 2 2 2 2 2
a a a a - a a a a a + a a a a - a a a a a -
0,0,1 0,1,0 1,1,1 1,2,0 0,0,0 0,0,1 0,1,1 1,1,1 1,2,0 0,1,1 0,2,0 1,0,0 1,2,1 0,1,0 0,1,1 0,2,1 1,0,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2
a a a a a a + a a a a a - 2a a a a a a +
0,1,0 0,1,1 0,2,0 1,0,0 1,0,1 1,2,1 0,1,0 0,2,1 1,0,0 1,0,1 1,2,1 0,0,1 0,1,1 0,2,0 1,0,0 1,1,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
a a a a a a + a a a a a a - a a a a a a +
0,0,1 0,1,0 0,2,1 1,0,0 1,1,0 1,2,1 0,0,0 0,1,1 0,2,1 1,0,0 1,1,0 1,2,1 0,0,1 0,1,0 0,2,0 1,0,1 1,1,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2 2
2a a a a a a - a a a a a a + a a a a -
0,0,0 0,1,1 0,2,0 1,0,1 1,1,0 1,2,1 0,0,0 0,1,0 0,2,1 1,0,1 1,1,0 1,2,1 0,0,1 0,2,0 1,1,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2
a a a a a + 2a a a a a a - a a a a a a -
0,0,0 0,0,1 0,2,1 1,1,0 1,2,1 0,0,1 0,1,0 0,2,0 1,0,0 1,1,1 1,2,1 0,0,0 0,1,1 0,2,0 1,0,0 1,1,1 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2
a a a a a a - a a a a a a + a a a a a +
0,0,0 0,1,0 0,2,1 1,0,0 1,1,1 1,2,1 0,0,0 0,0,1 0,2,0 1,1,0 1,1,1 1,2,1 0,0,0 0,2,1 1,1,0 1,1,1 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2 2
a a a a a a - a a a a a + a a a a a -
0,0,1 0,1,0 0,1,1 1,0,0 1,2,0 1,2,1 0,0,0 0,1,1 1,0,0 1,2,0 1,2,1 0,0,1 0,1,0 1,0,1 1,2,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2
a a a a a a - a a a a a + a a a a a a -
0,0,0 0,1,0 0,1,1 1,0,1 1,2,0 1,2,1 0,0,1 0,1,0 1,1,0 1,2,0 1,2,1 0,0,0 0,0,1 0,1,1 1,1,0 1,2,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2 2 2
a a a a a a + a a a a a - a a a a +
0,0,0 0,0,1 0,1,0 1,1,1 1,2,0 1,2,1 0,0,0 0,1,1 1,1,1 1,2,0 1,2,1 0,0,1 0,1,0 1,0,0 1,2,1
----------------------------------------------------------------------------------------------------------------------------
2 2 2 2
a a a a a + a a a a a - a a a a
0,0,0 0,1,0 0,1,1 1,0,0 1,2,1 0,0,0 0,0,1 0,1,0 1,1,0 1,2,1 0,0,0 0,1,1 1,1,0 1,2,1
o2 : ZZ[a , a , a , a , a , a , a , a , a , a , a , a ]
0,0,0 0,0,1 0,1,0 0,1,1 0,2,0 0,2,1 1,0,0 1,0,1 1,1,0 1,1,1 1,2,0 1,2,1
|
i3 : A = exponentsMatrix f
o3 = | 0 0 0 0 0 0 1 1 1 1 1 1 |
| 1 1 1 1 1 1 0 0 0 0 0 0 |
| 0 0 0 0 1 1 0 0 0 0 1 1 |
| 0 0 1 1 0 0 0 0 1 1 0 0 |
| 1 1 0 0 0 0 1 1 0 0 0 0 |
| 0 1 0 1 0 1 0 1 0 1 0 1 |
| 1 0 1 0 1 0 1 0 1 0 1 0 |
7 12
o3 : Matrix ZZ <--- ZZ
|
i4 : Disc = sparseDiscriminant A
o4 = sparse discriminant associated to | 0 0 0 0 0 0 1 1 1 1 1 1 | over ZZ
| 1 1 1 1 1 1 0 0 0 0 0 0 |
| 0 0 0 0 1 1 0 0 0 0 1 1 |
| 0 0 1 1 0 0 0 0 1 1 0 0 |
| 1 1 0 0 0 0 1 1 0 0 0 0 |
| 0 1 0 1 0 1 0 1 0 1 0 1 |
| 1 0 1 0 1 0 1 0 1 0 1 0 |
o4 : SparseDiscriminant
|
i5 : assert(Disc f == sparseDiscriminant f) |