Tensors.m2, with Claudiu Raicu

Tensors, or for people who like bases, arrays of numbers, naturally arise everywhere in statistics, data sciences, and of course the physical sciences. Often, very high-dimensional tensors are constructed, by humans or by nature, as combinations of lower-dimensional tensors. For example, directed graphical models of causality are simply composition rules for defining a joint probability distribution — a high-dimensional tensor — from parent-to-child conditional distributions — low-dimensional tensors. A tensor network is a rule for combining tensors, and in fact every discrete graphical model, directed or undirected, is a tensor network. Matrix product state models in quantum information are also examples of tensor networks.

Tensors.m2 is a package I am developing with Claudiu Raicu to make it easier for commutative algebraists and algebraic geometers to study tensor composition models. For example, it allows the user to input tensor composition rules using abstract index notation, the way multi-index tensors are usually written in practice. The reason for making it a Macaulay2 package is that there are already many mathematicians in the CA/AG community who use Macaulay2 to construct and manipulate commutative rings, modules, chain complexes, Betti tables, algebraic and projective varieties, coherent sheaves, and other objects intrinsic to algebraic geometry. All of these objects arise also in conjunction with tensor networks, and I would like to know what they encode about how the world works.