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 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 ------------------------------------------------------------------------ + a x y z + a x y z + a x y z + a x y z + 0,2,1 0 2 1 1,0,0 1 0 0 1,0,1 1 0 1 1,1,0 1 1 0 ------------------------------------------------------------------------ a x y z + a x y z + a x y z 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.49798 seconds 2 o2 = 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 ------------------------------------------------------------------------ 2 2 2 a a a a + a a a a a - 0,1,1 0,2,0 1,0,1 1,1,0 0,1,0 0,2,0 0,2,1 1,0,1 1,1,0 ------------------------------------------------------------------------ 2 2 2 a a a a a + a a a a - 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 ------------------------------------------------------------------------ 2 2 2 a a a a a + a a a a + 0,1,1 0,2,0 0,2,1 1,0,0 1,1,1 0,1,0 0,2,1 1,0,0 1,1,1 ------------------------------------------------------------------------ 2 a a a a a - a a a a a a + 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 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 ------------------------------------------------------------------------ 2 a a a a a - a a a a a a - 0,0,1 0,2,0 1,0,1 1,1,0 1,1,1 0,0,0 0,2,0 0,2,1 1,0,1 1,1,0 1,1,1 ------------------------------------------------------------------------ 2 2 2 a a a a + a a a a a - 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 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 ------------------------------------------------------------------------ 2 2 2 a a a a a - a a a a + 0,1,0 0,1,1 0,2,0 1,0,1 1,2,0 0,1,0 0,2,1 1,0,1 1,2,0 ------------------------------------------------------------------------ a a a a a a + 0,0,1 0,1,1 0,2,0 1,0,1 1,1,0 1,2,0 ------------------------------------------------------------------------ a a a a a a - 0,0,1 0,1,0 0,2,1 1,0,1 1,1,0 1,2,0 ------------------------------------------------------------------------ 2a a a a a a + 0,0,0 0,1,1 0,2,1 1,0,1 1,1,0 1,2,0 ------------------------------------------------------------------------ a a a a a a - 0,0,1 0,1,1 0,2,0 1,0,0 1,1,1 1,2,0 ------------------------------------------------------------------------ 2a a a a a a + 0,0,1 0,1,0 0,2,1 1,0,0 1,1,1 1,2,0 ------------------------------------------------------------------------ a a a a a a - 0,0,0 0,1,1 0,2,1 1,0,0 1,1,1 1,2,0 ------------------------------------------------------------------------ a a a a a a - 0,0,1 0,1,0 0,2,0 1,0,1 1,1,1 1,2,0 ------------------------------------------------------------------------ a a a a a a + 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 + 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 ------------------------------------------------------------------------ 2 a a a a a a + a a a a a - 0,0,0 0,0,1 0,2,1 1,1,0 1,1,1 1,2,0 0,0,0 0,0,1 0,2,0 1,1,1 1,2,0 ------------------------------------------------------------------------ 2 2 2 a a a a - a a a a a + 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 ------------------------------------------------------------------------ 2 2 2 2 a a a a + a a a a - 0,0,0 0,1,1 1,0,1 1,2,0 0,0,1 0,1,0 1,1,1 1,2,0 ------------------------------------------------------------------------ 2 2 2 a a a a a + a a a a - 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 ------------------------------------------------------------------------ 2 a a a a a - a a a a a a + 0,1,0 0,1,1 0,2,1 1,0,0 1,2,1 0,1,0 0,1,1 0,2,0 1,0,0 1,0,1 1,2,1 ------------------------------------------------------------------------ 2 a a a a a - 2a a a a a a + 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 + 0,0,1 0,1,0 0,2,1 1,0,0 1,1,0 1,2,1 ------------------------------------------------------------------------ a a a a a a - 0,0,0 0,1,1 0,2,1 1,0,0 1,1,0 1,2,1 ------------------------------------------------------------------------ a a a a a a + 0,0,1 0,1,0 0,2,0 1,0,1 1,1,0 1,2,1 ------------------------------------------------------------------------ 2a a a a a a - 0,0,0 0,1,1 0,2,0 1,0,1 1,1,0 1,2,1 ------------------------------------------------------------------------ 2 2 a a a a a a + a a a a - 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 - 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 ------------------------------------------------------------------------ a a a a a a - 0,0,0 0,1,1 0,2,0 1,0,0 1,1,1 1,2,1 ------------------------------------------------------------------------ a a a a a a - 0,0,0 0,1,0 0,2,1 1,0,0 1,1,1 1,2,1 ------------------------------------------------------------------------ 2 a a a a a a + a a a a a + 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 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 ------------------------------------------------------------------------ 2 a a a a a - a a a a a a - 0,0,1 0,1,0 1,0,1 1,2,0 1,2,1 0,0,0 0,1,0 0,1,1 1,0,1 1,2,0 1,2,1 ------------------------------------------------------------------------ 2 a a a a a + a a a a a a - 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 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 ------------------------------------------------------------------------ 2 2 2 a a a a + a a a a a + 0,0,1 0,1,0 1,0,0 1,2,1 0,0,0 0,1,0 0,1,1 1,0,0 1,2,1 ------------------------------------------------------------------------ 2 2 2 a a a a a - a a a a 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) |