Just a brief recap. I have been working on bringing the library to work with more modern C++ standards. Having settled on C++14, I believe the work is almost complete.
- The documentation also builds, but is missing some new functions and a more gentle introduction. I should fix this and ensure that the GitHub Actions also include a rule to build the Doxygen documentation.
Among the changes implemented, the most dramatic ones relate constructors and iteration.
- To support braced list initialization I have had to remove many constructor options, which are now available as static functions (e.g. Tensor::empty(dimensions) vs. Tensor(dimensions)).
- Tensor views now rely on references to tensors to ensure lifetime of the tensors they refer to. They also use a different type of iterators that is not polymorphic, because this enables optimizing certain cases, such as when copying columns (Tensor A = B(range(_), range(13)) where data is contiguous. Performance wise, we seem to be on-par with Numpy on this front, and slightly better for smaller tensors.
It still remains the problem that neither vcpkg nor the Arpack developers have accepted my patches to build arpack in Microsoft Visual C and properly register the library's dependencies.
On the Arpack front the excuse is that there are rules that are broken on their CI/CD system and someone must fix them before pull requests are accepted. If anyone can help on this, you're welcome. However, given the situation, it seems I may have to find an alternative solution, such as FetchModule + own patches (although the vcpkg crowd argue that this goes against the sofware's license).
Cheers,
--