Data science and deep learning heavily involve operations on multi-dimensional arrays (“tensors”), and Einstein notation is a compact and declarative way of expressing such operations.
For example, matrix multiplication can be expressed as a b, b a -> a c, where a b represents a matrix with a rows and b columns.
Since then, more expressive notations have been developed, including NumPy’s einsum, and the einops and einx libraries.
Read the papers on einx and tensor calculus.
Try out einx and write the same examples in both einx and other notations, like einops or pure Python with explicit for-loops.
Your seminar paper should give an introduction to tensor programming in general and einx specifically, and discuss advantages and limitations of the library.
Links