We have decided to use xtensor instead of Eigen for the C++ code, for a few reasons:
Eigen doesn't really support tensors (3 or more dimensions) all that well, and we need tensor support. xtensor has better support.
Eigen uses Fortran-ordering, whereas xtensor uses C-ordering. Numpy also uses C-ordering, so we sometimes must make deep copies when converting to Eigen, but we do not need to for xtensor.
xtensor maintains xsimd, which we are already using anyways
Adding xtensor support is a great step towards accelerating other functions.
We have decided to use xtensor instead of Eigen for the C++ code, for a few reasons:
Adding xtensor support is a great step towards accelerating other functions.