I am a passionate programmer in C++ since I am student that I intensively use on a daily basis. My PhD thesis is about implementing fast tensor operations on shared memory systems using C++ (C++14) and OpenCL for GPUs. By tensor operations I mean those that are relevant in the realm of numerical multilinear algebra. I have already implemented tensor contractions and elementwise tensor operations for tensors and tensor views with arbitrary number of dimensions where the rank can be compile-time or runtime variable. For testing purposes I have implemented tensor data structures that allow to set the rank, dimensions and the layout at runtime (They could also be changed to be compile-time parameters).
I also want to implement common tensor algorithms such as the higher-order singular value decomposition, orthogonal iterator in order to support new algorithms for different types of applications. Using my library I have generalized and implemented the biconjugate gradient and Jacobi methods for multilinear systems that are described in
I presented the implementation and design of tensor template functions using iterators in MeetingC++ in Berlin 2017: https://youtu.be/8P-sDH9XJAc
If your are interested in the details of my current implementation, please have a look at https://arxiv.org/abs/1711.
I would love to contribute to uBlas and to adjust the data structures according to the needs of the Boost community.
Best regards,
Cem