A compiler for dense and sparse linear and tensor algebra expressions

The Tensor Algebra Compiler (taco) is a library for compiling dense and sparse linear and tensor algebra expressions. The expressions can range from simple kernels like SpMV to more complex kernels like MTTKRP, where the operands can be dense, sparse or a mix of dense and sparse. taco automatically generates efficient compute kernels (loops) to evaluate these expressions and several of these kernels have been shown to match the performance of widely used hand-optimized library implementations, while simultaneously supporting a much larger set of expressions and tensor/matrix formats.