Get rid of "kernels", and switch from Eigen3 to Blaze?
There are pros and cons to using an abstraction layer for matrix arithmentcs (#16 (closed)):
Pro
- Seamless switching between different implementations of matrix arithmetics.
Con
- The abstraction layer interface must be made generic, which requires quite some work to implement it for every underlying library.
- The abstraction layer interface must be documented.
- The user may be familiar with a specific matrix library syntax, but not with the abstraction layer interface.
- It is difficult (if at all possible) on the level of "kernel" to implement a nice matrix initialization which would use initializer-list. The
Eigen3
library does not support it.
On the other hand, Blaze
seems to have a nice syntax, very good performance, and all features needed. Why not to stick to it?