Designing a Generic Tensor Library for Boost.uBlas
- Mentors
- David Bellot, Stefan Seefeld
- Organization
- Boost C++ Libraries
Tensors provide a natural and compact representation for massive multidimensional data with a high dimensionality which occur in disciplines like computational neuroscience, neuroinformatics, pattern/image recognition, signal processing and machine learning. My tensor project proposal is based on the foundations Boost’s uBlas implementation and focuses on extending uBLAS by a tensor and tensor operations. The extension shall primarily support dense tensors that can be projected on subtensors with ranges or slices. I also want to provide expressions templates for basic tensors operations using static polymorphism with generic lambdas. The library shall support all basic multilinear algebra operations such as the modal tensor contractions and tensor transpositions. Tensor object shall be able to communicate with Boost’s matrix and vector objects through expression templates and free functions. Repeating the primary design goals of uBlas, the tensor library shall be efficient with almost no abstraction penalties, functional, compatible and provide a convenient mathematical notation.