What are the rules for SplineR2R/C2R/C2C logic?
QMCPACK has 3 spline classes: SplineR2R, SplineC2R, and SplineC2C. But it is not clear in all cases given an input exactly which spline class will be created. For example, in src/QMCWaveFunctions/test_einset.cpp, if QMC_COMPLEX is set, then a SplineC2C is made. And if QMC_COMPLEX is not set, then a SplineR2R is made. But the test uses the diamond_1x1x1.pwscf.h5 file, which is a gamma point wavefunction. In this case, why is a SplineC2C made instead of a C2R? Is splineC2R ever tested?
I think the choice is made here, based on if the twists are special points: https://github.com/QMCPACK/qmcpack/blob/e7fd649ae2fcd569feced8cf853f45d8dc003827/src/QMCWaveFunctions/EinsplineSetBuilderCommon.cpp#L632-L642