Avoid the SIMD module depending on non-trivial parts of Gromacs
We have already discussed having the SIMD module work independently of the rest of Gromacs so it can be used by other projects.
First, we should avoid adding any new dependencies on the code (don't include any more headers, and don't use more stuff from existing ones).
Simple things like classhelpers and real definitions should be trivial to fix.
Apart from this, the only major dependency introduced is ArrayRef. If this is absolutely necessary to have for SIMD, it should likely be moved out of the SIMD module.
#3 Updated by Mark Abraham about 1 month ago
Agree. Also things like separating utility module into some more layers (and adding checks to enforce that), and resolving dependency suppressions introduced between 2016 and 2018 need to go into such work plans. gpu_utils makes some sense sitting above utility, but perhaps not for all parts of it.