* Folded exp_radius_base into exp_radius (it was only local to the module).
* Reworked exp_radius to allow Bisection (1), GSS (2), or equidistant sampling (4). The advantage is to utilize small vectors that translate to vectorized implementation of EXP function. Documented source of performance regression (RPA/MP2) which is about returning radius=0 when taking the early exit.
* Corrected documentation of exp_radius argument (threshold). Check for progress to fix cases where requested epsilon is too small wrt achievable precision.
* All revised reference values are on top of the very original reference values (before any exp_radius related PRs).
* Perf. regression was caused by different termination criterion (reinstated g(r) < t OR rd < eps).
* Introduced mixed precision (EXP iteration).
* Reverted ref. values changed as part of PR #444 (TEST_FILES), and updated according to this PR.
* Rely on bisection to keep internal parameters as in previous implementation of exp_radius.
* Renamed exp_radius_fast to exp_radius_base, removed exp_radius_simple (unused/dead code).
* More robust implementation of exp_radius_fast relying on an estimation of sampling width plus additional knowledge such as no distraction from local maximum value ahead (threshold can be reached at infinity). Previously, exp_radius_fast used integration method based on derivatives of the Gaussian. However, the latter was not possible to get stable across all tests plus was not able to reliably converge.
* Introduced, tuned, and commented internal parameters that balance accuracy and speed of exp_radius_fast function.
* Facilitate early exit in exp_radius by an optional lower bound radius (many code locations exist where exp_radius is executed inside of loop to search for maximum radius). It appears to have a good impact when relying on rlow argument.
* Separated exp_radius_fast and exp_radius such that exp_radius is responsible for reaching the threshold while exp_radius is responsible for minimizing interval width, i.e., bracketing the radius on top of the threshold argument. Also, exp_radius leverages/calls exp_radius_fast (the latter code is now relocated into the same module).
* Adjusted/updated reference/test values (all values look reasonable).
This PR enables ELPA by default when incorporated at compile-time:
1. Enables ELPA by default (if compiled into the binary),
2. Selects ELPA-kernel according to CPUID.
The code uses m_cpuid (machine module) and introduced get_elpa_kernel_index (cp_fm_elpa module) to select the ELPA-kernel according to the CPUID.
The GLOBAL entry `PREFERRED_DIAG_LIBRARY SL` is given for a number of tests that would otherwise exceed tolerances as currently used (mostly CDFT tests). Slightly adjusted some tolerances of non-CDFT tests when reasonable, and one for the PSMP case.
Other (unrelated) changes: fixed some typos (source code comments).