Macaulay2 » Documentation
Packages » TensorComplexes :: hyperdeterminantMatrix
next | previous | forward | backward | up | index | toc

hyperdeterminantMatrix -- computes a matrix whose determinant equals the hyperdeterminant of a boundary format tensor

Synopsis

Description

This constructs a matrix whose determinant equals the hyperdeterminant of a tensor of boundary format, where we say that a $a\times b_1\times \dots \times b_n$ has boundary format if $$ a-\sum_{i=1}^n (b_i-1)=1. $$ The entries of the output matrix correspond to entries of the input tensor.

i1 : f=flattenedGenericTensor({3,2,2},QQ);

                                4                          3
o1 : Matrix (QQ[x     ..x     ])  <--- (QQ[x     ..x     ])
                 0,0,0   2,1,1              0,0,0   2,1,1
i2 : S=ring f;
i3 : M=hyperdeterminantMatrix f

o3 = | x_(0,0,0) 0         x_(1,0,0) 0         x_(2,0,0) 0         |
     | x_(0,0,1) x_(0,0,0) x_(1,0,1) x_(1,0,0) x_(2,0,1) x_(2,0,0) |
     | 0         x_(0,0,1) 0         x_(1,0,1) 0         x_(2,0,1) |
     | x_(0,1,0) 0         x_(1,1,0) 0         x_(2,1,0) 0         |
     | x_(0,1,1) x_(0,1,0) x_(1,1,1) x_(1,1,0) x_(2,1,1) x_(2,1,0) |
     | 0         x_(0,1,1) 0         x_(1,1,1) 0         x_(2,1,1) |

             6      6
o3 : Matrix S  <-- S
i4 : det(M)==hyperdeterminant f

o4 = true

Caveat

There is bug involving the graded structure of the output. Namely, the code assumes that all entries of f have degree 1, and gives the wrong graded structure if this is not the case. If ring f is not graded, then the code gives an error.

See also

Ways to use hyperdeterminantMatrix :

For the programmer

The object hyperdeterminantMatrix is a method function.