EinSum
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.
Examples
We present a few examples that show how EinSum may be used.
Documentation
The header files are documented here.
A post script document is found here.
Distribution
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