Skip to content

Commit e26d360

Browse files
Fix overflow
1 parent 3775166 commit e26d360

2 files changed

Lines changed: 17 additions & 13 deletions

File tree

pineappl/src/grid.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,7 +1531,12 @@ impl Grid {
15311531
let conv_to_fix = &self.convolutions[conv_idx];
15321532
let (new_orders, order_map) = {
15331533
let mut unique_orders = Vec::new();
1534-
let other_conv_idx = 1 - conv_idx;
1534+
1535+
let other_conv_idx_opt = if self.convolutions.len() == 2 {
1536+
Some(1 - conv_idx)
1537+
} else {
1538+
None
1539+
};
15351540

15361541
let map: Vec<usize> = self
15371542
.orders
@@ -1541,22 +1546,21 @@ impl Grid {
15411546

15421547
if conv_to_fix.conv_type().is_ff() {
15431548
new_o.logxia = 0;
1544-
} else if self.convolutions.len() == 2
1545-
&& self.convolutions[other_conv_idx].conv_type().is_ff()
1546-
{
1547-
new_o.logxif = 0;
1549+
} else if let Some(other_conv_idx) = other_conv_idx_opt {
1550+
if conv_to_fix.conv_type().is_pdf()
1551+
&& self.convolutions[other_conv_idx].conv_type().is_ff()
1552+
{
1553+
new_o.logxif = 0;
1554+
}
15481555
}
15491556

15501557
unique_orders
15511558
.iter()
15521559
.position(|uo| uo == &new_o)
1553-
.map_or_else(
1554-
|| {
1555-
unique_orders.push(new_o);
1556-
unique_orders.len() - 1
1557-
},
1558-
|pos| pos,
1559-
)
1560+
.unwrap_or_else(|| {
1561+
unique_orders.push(new_o);
1562+
unique_orders.len() - 1
1563+
})
15601564
})
15611565
.collect();
15621566
(unique_orders, map)

pineappl_cli/src/helpers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ pub fn convolve_scales(
346346
.normalizations()
347347
.into_iter()
348348
.enumerate()
349-
.filter(|(index, _)| (bins.is_empty() || bins.contains(index)))
349+
.filter(|(index, _)| bins.is_empty() || bins.contains(index))
350350
.flat_map(|(_, norm)| iter::repeat(norm).take(scales.len())),
351351
)
352352
.for_each(|(value, norm)| *value *= norm);

0 commit comments

Comments
 (0)