next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
TensorComplexes :: hyperdeterminantMatrix

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×b1×…×bn has boundary format if

a-∑i=1n (bi-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     , x     , x     , x     , x     , x     , x     , x     , x     , x     , x     ])  <--- (QQ[x     , x     , x     , x     , x     , x     , x     , x     , x     , x     , x     , x     ])
                 0,0,0   0,0,1   0,1,0   0,1,1   1,0,0   1,0,1   1,1,0   1,1,1   2,0,0   2,0,1   2,1,0   2,1,1              0,0,0   0,0,1   0,1,0   0,1,1   1,0,0   1,0,1   1,1,0   1,1,1   2,0,0   2,0,1   2,1,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 :

  • hyperdeterminantMatrix(LabeledModuleMap)