41 using View =
typename Accumulator::View;
42 using ParameterView = Parameters::DataType;
44 auto concatenated_range_constraints_0 = View(in.concatenated_range_constraints_0);
45 auto concatenated_range_constraints_1 = View(in.concatenated_range_constraints_1);
46 auto concatenated_range_constraints_2 = View(in.concatenated_range_constraints_2);
47 auto concatenated_range_constraints_3 = View(in.concatenated_range_constraints_3);
49 auto ordered_extra_range_constraints_numerator = View(in.ordered_extra_range_constraints_numerator);
51 auto lagrange_masking = View(in.lagrange_masking);
52 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
53 const auto& gamma = ParameterView(params.gamma);
54 const auto& beta = ParameterView(params.beta);
56 auto chosen_set = lagrange_masking * beta;
57 auto chosen_set2 = lagrange_ordered_masking * beta;
58 return (concatenated_range_constraints_0 + chosen_set + gamma) *
59 (concatenated_range_constraints_1 + chosen_set + gamma) *
60 (concatenated_range_constraints_2 + chosen_set + gamma) *
61 (concatenated_range_constraints_3 + chosen_set + gamma) *
62 (ordered_extra_range_constraints_numerator + chosen_set2 + gamma);
68 using View =
typename Accumulator::View;
69 using ParameterView = Parameters::DataType;
71 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
72 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
73 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
74 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
75 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
77 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
79 const auto& gamma = ParameterView(params.gamma);
80 const auto& beta = ParameterView(params.beta);
82 auto chosen_set = lagrange_ordered_masking * beta;
83 return (ordered_range_constraints_0 + chosen_set + gamma) * (ordered_range_constraints_1 + chosen_set + gamma) *
84 (ordered_range_constraints_2 + chosen_set + gamma) * (ordered_range_constraints_3 + chosen_set + gamma) *
85 (ordered_range_constraints_4 + chosen_set + gamma);