40 using View =
typename Accumulator::View;
41 using ParameterView = Parameters::DataType;
43 auto interleaved_range_constraints_0 = View(in.interleaved_range_constraints_0);
44 auto interleaved_range_constraints_1 = View(in.interleaved_range_constraints_1);
45 auto interleaved_range_constraints_2 = View(in.interleaved_range_constraints_2);
46 auto interleaved_range_constraints_3 = View(in.interleaved_range_constraints_3);
48 auto ordered_extra_range_constraints_numerator = View(in.ordered_extra_range_constraints_numerator);
50 auto lagrange_masking = View(in.lagrange_masking);
51 const auto& gamma = ParameterView(params.gamma);
52 const auto& beta = ParameterView(params.beta);
53 return (interleaved_range_constraints_0 + lagrange_masking * beta + gamma) *
54 (interleaved_range_constraints_1 + lagrange_masking * beta + gamma) *
55 (interleaved_range_constraints_2 + lagrange_masking * beta + gamma) *
56 (interleaved_range_constraints_3 + lagrange_masking * beta + gamma) *
57 (ordered_extra_range_constraints_numerator + lagrange_masking * beta + gamma);
63 using View =
typename Accumulator::View;
64 using ParameterView = Parameters::DataType;
66 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
67 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
68 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
69 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
70 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
72 auto lagrange_masking = View(in.lagrange_masking);
74 const auto& gamma = ParameterView(params.gamma);
75 const auto& beta = ParameterView(params.beta);
76 return (ordered_range_constraints_0 + lagrange_masking * beta + gamma) *
77 (ordered_range_constraints_1 + lagrange_masking * beta + gamma) *
78 (ordered_range_constraints_2 + lagrange_masking * beta + gamma) *
79 (ordered_range_constraints_3 + lagrange_masking * beta + gamma) *
80 (ordered_range_constraints_4 + lagrange_masking * beta + gamma);