Templatize Input

This commit is contained in:
Alejandro Gallo 2022-01-27 20:46:23 +01:00
parent 75ecd53e18
commit f8dd6b3f31

View File

@ -1964,8 +1964,9 @@ namespace atrip {
static int np; static int np;
static void init(); static void init();
template <typename F=double>
struct Input { struct Input {
CTF::Tensor<double> *ei = nullptr CTF::Tensor<F> *ei = nullptr
, *ea = nullptr , *ea = nullptr
, *Tph = nullptr , *Tph = nullptr
, *Tpphh = nullptr , *Tpphh = nullptr
@ -1976,13 +1977,13 @@ namespace atrip {
int maxIterations = 0, iterationMod = -1, percentageMod = -1; int maxIterations = 0, iterationMod = -1, percentageMod = -1;
bool barrier = false; bool barrier = false;
bool chrono = false; bool chrono = false;
Input& with_epsilon_i(CTF::Tensor<double> * t) { ei = t; return *this; } Input& with_epsilon_i(CTF::Tensor<F> * t) { ei = t; return *this; }
Input& with_epsilon_a(CTF::Tensor<double> * t) { ea = t; return *this; } Input& with_epsilon_a(CTF::Tensor<F> * t) { ea = t; return *this; }
Input& with_Tai(CTF::Tensor<double> * t) { Tph = t; return *this; } Input& with_Tai(CTF::Tensor<F> * t) { Tph = t; return *this; }
Input& with_Tabij(CTF::Tensor<double> * t) { Tpphh = t; return *this; } Input& with_Tabij(CTF::Tensor<F> * t) { Tpphh = t; return *this; }
Input& with_Vabij(CTF::Tensor<double> * t) { Vpphh = t; return *this; } Input& with_Vabij(CTF::Tensor<F> * t) { Vpphh = t; return *this; }
Input& with_Vijka(CTF::Tensor<double> * t) { Vhhhp = t; return *this; } Input& with_Vijka(CTF::Tensor<F> * t) { Vhhhp = t; return *this; }
Input& with_Vabci(CTF::Tensor<double> * t) { Vppph = t; return *this; } Input& with_Vabci(CTF::Tensor<F> * t) { Vppph = t; return *this; }
Input& with_maxIterations(int i) { maxIterations = i; return *this; } Input& with_maxIterations(int i) { maxIterations = i; return *this; }
Input& with_iterationMod(int i) { iterationMod = i; return *this; } Input& with_iterationMod(int i) { iterationMod = i; return *this; }
Input& with_percentageMod(int i) { percentageMod = i; return *this; } Input& with_percentageMod(int i) { percentageMod = i; return *this; }
@ -1993,7 +1994,8 @@ namespace atrip {
struct Output { struct Output {
double energy; double energy;
}; };
static Output run(Input const& in); template <typename F=double>
static Output run(Input<F> const& in);
}; };
} }