Background
The usage of template parameters in ABACUS is relatively confusing. Here are a few examples:
-
complex<FPTYPE> is used uniformly in PW code, that is, FPYTPE cannot take complex<double>;
-
There is complex<T> in the DiagoBPCG written by @denghuilu, so T here cannot be complex<double> too;
-
However: T in HamiltonLCAO<T> can be complex<double>;
-
And In the new ESolver_LR module, FPTYPE can also be complex<double>...
Describe the solution you'd like
In the PW calculation, we employ a unified numerical type template represented by 'T' instead of 'FPTYPE' to denote the calculation's numerical type. This 'T' template is designed to accommodate various data types, including 'std::complex' and others.
Additional Context
No response
Task list for Issue attackers
Background
The usage of template parameters in ABACUS is relatively confusing. Here are a few examples:
complex<FPTYPE>is used uniformly in PW code, that is,FPYTPEcannot takecomplex<double>;There is
complex<T>in the DiagoBPCG written by @denghuilu, soThere cannot becomplex<double>too;However:
TinHamiltonLCAO<T>can becomplex<double>;And In the new
ESolver_LRmodule,FPTYPEcan also becomplex<double>...Describe the solution you'd like
In the PW calculation, we employ a unified numerical type template represented by 'T' instead of 'FPTYPE' to denote the calculation's numerical type. This 'T' template is designed to accommodate various data types, including 'std::complex' and others.
Additional Context
No response
Task list for Issue attackers