EinSum is a class library that extends C++ with index notation for tensors.
The following rules for index notation are used:
- Indices of tensors on the left hand side are free, and looped over in assignments.
- 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.