EinSum is a class library that extends C++ with index notation for tensors. The following rules for index notation are used:
  1. Indices of tensors on the left hand side are free, and looped over in assignments.
  2. When evaluating tensor expressions, summation indices are summed over. Summation indices are those that are repeated in a term, at least once as an upper index and once as a lower index.

Papers on EinSum

The basic ideas behind EinSum and our interpretation of index notation is described in Einstein summation for Multi-dimensional arrays. A slightly revised version of the paper in the proceedings of NIK 2000, Norsk Informatikk Konferanse, Bod°, Norway, 20 - 22 November 2000, pp 67 - 78.

The mechanisms for supporting tensor symmetries in EinSum is described in Supporting tensor symmetries in EinSum, Technical Report 212, Dept of Informatics, University of Bergen, Norway, June 2001.


We present a few examples that show how EinSum may be used.


The header files are documented here. A post script document is found here.


The software is still under development. Please contact me if you are interested in using a beta version. Current version compiles with Sun's and SGI's compilators.

Krister ┼hlander
Email: krister@ii.uib.no
Email: krister@tdb.uu.se