Single-precision EXX
Summary
Single-precision routines, primarily the FFTs, can be used to calculate the exact exchange with little loss in accuracy. The reduction in runtime and memory usage is approximately the expected factor of 2. The limit of single-precision ~1d-7 can be compared to the relative error in the exact exchange dexx/exxen. This has been implemented in a modified version of qe-6.5 (see https://gitlab.com/jtv3/q-e/-/tree/exx-single) using ACE. For high-precision calculations, the code can automatically switch back to DP when dexx is low enough.
TODO before merge:
- More sensible input names(?)
- Input control for SGL-DP crossover
- Tests
TODO longer term
- Non-collinear spin and non-norm-conserving
- Implement for non-ACE?
- Localization?