I can't do everything simultaneously. But enabling vectorization is definitely possible. So I create this MR so that you can work on this too. It's a work in progress, but I don't use
WIP: in title so that the pipeline will compile
make_SSE which I just added.
The current compilation errors indicate that we will need to make a few small adjustments in the AlignedVector3, make another small merge request to libeigen and perhaps have another small patch in debian libeigen3-dev package.
The ThinRealWrapper.hpp file can serve as a cheatsheet about what missing constructors and operators we might need to add to AlignedVector3
EDIT: I have enabled vectorization without using AlignedVector3. So we have the benefit of using SSE, but without the super-optimized version of AlignedVector3. See the comment below for details. It is ready. Later we can improve this if necessary.