This method helps to construct special types of sparse discriminants. For instance, the hyperdeterminant of a generic $(k_1\times\cdots\times k_n)$-matrix can be obtained with the code: sparseDiscriminant genericMultihomogeneousPolynomial((k_1,...,k_n),(1,...,1)).
i1 : genericMultihomogeneousPolynomial((2,2,3),(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,0,2 0 0 2 0,1,0 0 1 0 0,1,1 0 1 1 0,1,2 0 1 2 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,0,2 1 0 2 1,1,0 1 1 0 1,1,1 1 1 1 1,1,2 1 1 2
o1 : ZZ[a ..a ][x ..y , z ..z ]
0,0,0 1,1,2 0 1 0 2
|
i2 : genericMultihomogeneousPolynomial((2,3),(3,1))
3 3 3 2 2 2 2 2 2 3
o2 = a x y + a x y + a x y + a x x y + a x x y + a x x y + a x x y + a x x y + a x x y + a x y +
0,0 0 0 0,1 0 1 0,2 0 2 1,0 0 1 0 1,1 0 1 1 1,2 0 1 2 2,0 0 1 0 2,1 0 1 1 2,2 0 1 2 3,0 1 0
----------------------------------------------------------------------------------------------------------------------------
3 3
a x y + a x y
3,1 1 1 3,2 1 2
o2 : ZZ[a ..a ][x ..x , y ..y ]
0,0 3,2 0 1 0 2
|
i3 : genericMultihomogeneousPolynomial((2,2),(1,1),CoefficientRing=>ZZ/33331)
o3 = a x y + a x y + a x y + a x y
0,0 0 0 0,1 0 1 1,0 1 0 1,1 1 1
ZZ
o3 : -----[a ..a ][x ..y ]
33331 0,0 1,1 0 1
|
The object genericMultihomogeneousPolynomial is a method function with options.