40 using View =
typename Accumulator::View;
41 using ParameterView = Parameters::DataType;
43 auto concatenated_range_constraints_0 = View(in.concatenated_range_constraints_0);
44 auto concatenated_range_constraints_1 = View(in.concatenated_range_constraints_1);
45 auto concatenated_range_constraints_2 = View(in.concatenated_range_constraints_2);
46 auto concatenated_range_constraints_3 = View(in.concatenated_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 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
52 const auto& gamma = ParameterView(params.gamma);
53 const auto& beta = ParameterView(params.beta);
55 auto chosen_set = lagrange_masking * beta;
56 auto chosen_set2 = lagrange_ordered_masking * beta;
57 return (concatenated_range_constraints_0 + chosen_set + gamma) *
58 (concatenated_range_constraints_1 + chosen_set + gamma) *
59 (concatenated_range_constraints_2 + chosen_set + gamma) *
60 (concatenated_range_constraints_3 + chosen_set + gamma) *
61 (ordered_extra_range_constraints_numerator + chosen_set2 + gamma);
67 using View =
typename Accumulator::View;
68 using ParameterView = Parameters::DataType;
70 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
71 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
72 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
73 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
74 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
76 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
78 const auto& gamma = ParameterView(params.gamma);
79 const auto& beta = ParameterView(params.beta);
81 auto chosen_set = lagrange_ordered_masking * beta;
82 return (ordered_range_constraints_0 + chosen_set + gamma) * (ordered_range_constraints_1 + chosen_set + gamma) *
83 (ordered_range_constraints_2 + chosen_set + gamma) * (ordered_range_constraints_3 + chosen_set + gamma) *
84 (ordered_range_constraints_4 + chosen_set + gamma);