43 using ParameterView = Parameters::DataType;
45 auto concatenated_range_constraints_0 = View(in.concatenated_range_constraints_0);
46 auto concatenated_range_constraints_1 = View(in.concatenated_range_constraints_1);
47 auto concatenated_range_constraints_2 = View(in.concatenated_range_constraints_2);
48 auto concatenated_range_constraints_3 = View(in.concatenated_range_constraints_3);
50 auto ordered_extra_range_constraints_numerator = View(in.ordered_extra_range_constraints_numerator);
52 auto lagrange_masking = View(in.lagrange_masking);
53 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
54 const auto& gamma = ParameterView(params.gamma);
55 const auto& beta = ParameterView(params.beta);
59 auto chosen_set = lagrange_masking * beta;
60 auto chosen_set2 = lagrange_ordered_masking * beta;
61 auto product = Accumulator((concatenated_range_constraints_0 + chosen_set + gamma) *
62 (concatenated_range_constraints_1 + chosen_set + gamma)) *
63 Accumulator((concatenated_range_constraints_2 + chosen_set + gamma) *
64 (concatenated_range_constraints_3 + chosen_set + gamma));
65 product *= Accumulator(ordered_extra_range_constraints_numerator + chosen_set2 + gamma);
71 const Parameters& params,
75 using ParameterView = Parameters::DataType;
77 auto concatenated_range_constraints_0 = View(in.concatenated_range_constraints_0);
78 auto concatenated_range_constraints_1 = View(in.concatenated_range_constraints_1);
79 auto concatenated_range_constraints_2 = View(in.concatenated_range_constraints_2);
80 auto concatenated_range_constraints_3 = View(in.concatenated_range_constraints_3);
82 auto ordered_extra_range_constraints_numerator = View(in.ordered_extra_range_constraints_numerator);
84 auto lagrange_masking = View(in.lagrange_masking);
85 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
86 const auto& gamma = ParameterView(params.gamma);
87 const auto& beta = ParameterView(params.beta);
90 auto chosen_set = lagrange_masking * beta;
91 auto chosen_set2 = lagrange_ordered_masking * beta;
92 auto product = Accumulator(factor * (concatenated_range_constraints_0 + chosen_set + gamma)) *
93 Accumulator((concatenated_range_constraints_1 + chosen_set + gamma) *
94 (concatenated_range_constraints_2 + chosen_set + gamma));
95 product *= Accumulator((concatenated_range_constraints_3 + chosen_set + gamma) *
96 (ordered_extra_range_constraints_numerator + chosen_set2 + gamma));
104 using ParameterView = Parameters::DataType;
106 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
107 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
108 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
109 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
110 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
112 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
114 const auto& gamma = ParameterView(params.gamma);
115 const auto& beta = ParameterView(params.beta);
117 auto chosen_set = lagrange_ordered_masking * beta;
118 auto product = Accumulator((ordered_range_constraints_0 + chosen_set + gamma) *
119 (ordered_range_constraints_1 + chosen_set + gamma)) *
120 Accumulator((ordered_range_constraints_2 + chosen_set + gamma) *
121 (ordered_range_constraints_3 + chosen_set + gamma));
122 product *= Accumulator(ordered_range_constraints_4 + chosen_set + gamma);
128 const Parameters& params,
129 const Factor& factor)
132 using ParameterView = Parameters::DataType;
134 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
135 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
136 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
137 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
138 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
140 auto lagrange_ordered_masking = View(in.lagrange_ordered_masking);
142 const auto& gamma = ParameterView(params.gamma);
143 const auto& beta = ParameterView(params.beta);
146 auto chosen_set = lagrange_ordered_masking * beta;
147 auto product = Accumulator(factor * (ordered_range_constraints_0 + chosen_set + gamma)) *
148 Accumulator((ordered_range_constraints_1 + chosen_set + gamma) *
149 (ordered_range_constraints_2 + chosen_set + gamma));
150 product *= Accumulator((ordered_range_constraints_3 + chosen_set + gamma) *
151 (ordered_range_constraints_4 + chosen_set + gamma));