Tensor support for H5CPP C++

H5CPP has an extensive support for popular linear algebra libraries, to take it to next level C++ tensor libraries will be considered.

This list is lifted from StackOverflow and I am interested in hearing what others would like to add, or suggestions/feedback if any.

As for now this is an initial survey, you can directly write your observations here or onto this github page.

best wishes,
steven

Just a word of caution on tensors: The terminology of a “tensor” is often used by engineers to describe a multi-dimensional array, but the mathematical notion of a “tensor” is an object that behaves transforms under coordinate transformations in a special (actually the most easy) way. A consequence is that if a tensor is zero in all components in one coordinate systems, then it will be zero in all components in any coordinate systems. This property is not the case for non-tensors, they can be all zero in one coordinate system, but not in others. Still, such non-tensor objects are represented numerically in a coordinate system as a multi-dimensional array just as well. A prominent example are the Christoffel symbols, which is a geometric object of order three, i.e. represented by a three-dimensional array, but it’s not a tensor. They are all zero in special coordinate systems, the so-called “inertial systems”, but non-zero in other coordinate systems (for instance, rotating coordinate systems). So when dealing with tensors and library implementations, it’s one of the questions what they actually mean by “tensor” and whether they know about this distinction of tensors vs. multi-dimensional arrays.

Another category that would fit in here is Geometric Algebra of course, for which a multitude of libraries exist as well:



http://www-igm.univ-mlv.fr/~vnozick/data/breuils_AGACSE_2018.pdf

Certainly, it would be great to have an HDF5 representation of a common denominator across all those libraries to enable them to share data. Ideally, also having it inter-operable with the tensor libraries.

I would believe that can only be done if a representation of those quantities in HDF5 is mathematically complete and not bound to any specific library to draw upon implicit assumptions within such a library.