35 template <
unsigned int N>
42 template <
unsigned int N>
44 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
45 static void bid(
const std::tuple<T...>& obs_tuple,
46 const propagator_state_t& state,
const stepper_t&
stepper,
47 std::array<
int,
sizeof...(
T)>& bids) {
48 std::get<
N - 1>(bids) = std::get<N - 1>(obs_tuple).bid(state, stepper);
55 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
56 static bool k(std::tuple<T...>& obs_tuple,
const propagator_state_t& state,
57 const stepper_t& stepper,
Vector3D& knew,
59 const std::array<
bool,
sizeof...(
T)>& validExtensions,
60 const int i = 0,
const double h = 0,
63 if (!std::get<N - 1>(validExtensions)) {
65 obs_tuple, state, stepper, knew, bField, kQoP, validExtensions, i,
h,
70 if (std::get<N - 1>(obs_tuple).
k(state, stepper, knew, bField, kQoP, i,
h,
73 obs_tuple, state, stepper, knew, bField, kQoP, validExtensions, i,
h,
84 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
85 static bool finalize(
const std::tuple<T...>& obs_tuple,
86 propagator_state_t& state,
const stepper_t& stepper,
88 const std::array<
bool,
sizeof...(
T)>& validExtensions) {
90 if (!std::get<N - 1>(validExtensions)) {
92 obs_tuple, state, stepper, h, D, validExtensions);
96 if (std::get<N - 1>(obs_tuple).
finalize(state, stepper, h, D)) {
98 obs_tuple, state, stepper, h, D, validExtensions);
108 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
109 static bool finalize(
const std::tuple<T...>& obs_tuple,
110 propagator_state_t& state,
const stepper_t& stepper,
112 const std::array<
bool,
sizeof...(
T)>& validExtensions) {
114 if (!std::get<N - 1>(validExtensions)) {
116 obs_tuple, state, stepper, h, validExtensions);
120 if (std::get<N - 1>(obs_tuple).
finalize(state, stepper, h)) {
122 obs_tuple, state, stepper, h, validExtensions);
134 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
135 static void bid(
const std::tuple<T...>& ,
136 const propagator_state_t& ,
138 std::array<
int,
sizeof...(
T)>& ) {}
141 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
142 static bool k(std::tuple<T...>& ,
143 const propagator_state_t& ,
145 const Vector3D& , std::array<double, 4>& ,
146 const std::array<
bool,
sizeof...(
T)>& ,
147 const int ,
const double ,
153 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
155 propagator_state_t& ,
156 const stepper_t& ,
const double ,
158 const std::array<
bool,
sizeof...(
T)>& ) {
163 template <
typename propagator_state_t,
typename stepper_t,
typename...
T>
165 propagator_state_t& ,
166 const stepper_t& ,
const double ,
167 const std::array<
bool,
sizeof...(
T)>& ) {