IAP GITLAB

Skip to content

WIP: simplified process sequence based on std::tuple

Hans Dembinski requested to merge simplify_process_sequence into master

Please have a look at this proposal for a simpler ProcessSequence system. The original ProcessSequence was actually a binary process tree. The new implementation is now a real sequence based on std::tuple. This has several advantages.

  • greatly simplified implementation
  • less boilerplate code
  • a sequence can be created with the natural syntax ProcessSequence seq(proc1, proc2, ...)
  • we can apply algorithms which work with std::tuple, like boost::mp11::tuple_for_each
  • we can internally reorder the items in the sequence

The last point is very important one for speed optimizations. The sequence in general will follow the order provided by the user, but it makes sense to sort the processes so that all continuous processes are next to each other, for example. This allows the compiler to better optimize the code and potentially reduces cache misses.

The code compiles and can be inspected. I haven't yet implemented SelectInteraction and SelectDecay, because I am not sure how these are supposed to work.

Edited by Ralf Ulrich

Merge request reports