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

## Synopsis

• Usage:
hyperdeterminantMatrix f
• Inputs:
• Outputs:

## 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.