From 868471c873bb133165db9e21893d90a255177197 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Mon, 12 Oct 2020 11:07:43 +0200 Subject: [PATCH] fixed staticsequence_example --- .../Examples/staticsequence_example.cc | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/Documentation/Examples/staticsequence_example.cc b/Documentation/Examples/staticsequence_example.cc index 13dcd6de1..02749b498 100644 --- a/Documentation/Examples/staticsequence_example.cc +++ b/Documentation/Examples/staticsequence_example.cc @@ -23,43 +23,43 @@ using namespace std; const int nData = 10; -class Process1 : public BaseProcess<Process1> { +class Process1 : public ContinuousProcess<Process1> { public: Process1() {} - template <typename D, typename T, typename S> - EProcessReturn DoContinuous(D& d, T&, S&) const { + template <typename D, typename T> + EProcessReturn DoContinuous(D& d, T&) const { for (int i = 0; i < nData; ++i) d.p[i] += 1; return EProcessReturn::eOk; } }; -class Process2 : public BaseProcess<Process2> { +class Process2 : public ContinuousProcess<Process2> { public: Process2() {} - template <typename D, typename T, typename S> - inline EProcessReturn DoContinuous(D& d, T&, S&) const { + template <typename D, typename T> + inline EProcessReturn DoContinuous(D& d, T&) const { for (int i = 0; i < nData; ++i) d.p[i] -= 0.1 * i; return EProcessReturn::eOk; } }; -class Process3 : public BaseProcess<Process3> { +class Process3 : public ContinuousProcess<Process3> { public: Process3() {} - template <typename D, typename T, typename S> - inline EProcessReturn DoContinuous(D&, T&, S&) const { + template <typename D, typename T> + inline EProcessReturn DoContinuous(D&, T&) const { return EProcessReturn::eOk; } }; -class Process4 : public BaseProcess<Process4> { +class Process4 : public ContinuousProcess<Process4> { public: Process4(const double v) : fV(v) {} - template <typename D, typename T, typename S> - inline EProcessReturn DoContinuous(D& d, T&, S&) const { + template <typename D, typename T> + inline EProcessReturn DoContinuous(D& d, T&) const { for (int i = 0; i < nData; ++i) d.p[i] *= fV; return EProcessReturn::eOk; } @@ -78,25 +78,32 @@ struct DummyTrajectory {}; void modular() { - Process1 m1; - Process2 m2; - Process3 m3; - Process4 m4(0.9); - + // = 0 + Process1 m1; // + 1.0 + Process2 m2; // - (0.1*i) + Process3 m3; // * 1.0 + Process4 m4(1.5); // * 1.5 + auto sequence = m1 % m2 % m3 % m4; DummyData particle; DummyTrajectory track; - const int n = 1000; - for (int i = 0; i < n; ++i) { sequence.DoContinuous(particle, track); } + double check[nData] = {0,0,0,0,0,0,0,0,0,0}; + + const int nEv = 10; + for (int iEv = 0; iEv < nEv; ++iEv) { sequence.DoContinuous(particle, track); + for (int i = 0; i < nData; ++i) { + check[i] += 1. - 0.1*i; + check[i] *= 1.5; + } + } for (int i = 0; i < nData; ++i) { - // cout << p.p[i] << endl; - assert(particle.p[i] == n-i*100); + assert(particle.p[i] == check[i]); } - cout << " done (nothing...) " << endl; + cout << " done (checking...) " << endl; } int main() { -- GitLab