13 #include <type_traits>
33 using FullParameterSet =
typename detail::full_parset::type;
85 static constexpr
unsigned int NPars =
90 "parameter identifiers are not sorted");
93 static_cast<unsigned int>(params)...>::
value,
94 "parameter identifiers must be greater or "
95 "equal to zero and smaller than the total number of parameters");
96 static_assert(
NPars > 0,
"number of stored parameters can not be zero");
99 "number of stored parameters can not exceed number of total parameters");
121 template <
typename... Tail>
168 if (
copy.m_optCovariance) {
206 swap(first.m_optCovariance,
second.m_optCovariance);
218 template <ParID_t parameter>
220 return detail::get_position<
ParID_t, parameter, params...>
::value;
234 template <
size_t index>
248 template <ParID_t parameter>
270 template <ParID_t parameter>
300 template <ParID_t parameter>
302 return detail::is_contained<
ParID_t, parameter, params...>
::value;
329 template <ParID_t parameter>
332 size_t index = getIndex<parameter>();
414 return projector() * fullParSet.getParameters();
457 return detail::residual_calculator<params...>::result(
494 return detail::residual_calculator<params...>::result(
532 detail::value_corrector<params...>::result(values);
551 ParameterSet<params...>::sProjector = detail::make_projection_matrix<