$self->get_selected_scan()
# If no boards were solved, then try with a larger quota
while ($num_solved_in_iter == 0)
{
my $q_more = shift(@$quotas);
if (!defined($q_more))
{
throw Shlomif::FCS::CalcMetaScan::Error::OutOfQuotas;
}
$iters_quota += $q_more;
(undef, $num_solved_in_iter, undef, $selected_scan_idx) =
PDL::minmaximum(
PDL::sumover(
($self->scans_data() <= $iters_quota) &
($self->scans_data() > 0)
)
);
}
return
(
quota => $iters_quota,
num_solved => $num_solved_in_iter,
scan_idx => $selected_scan_idx,
);
- PDL::sumover() sums the numbers column-wise.
- PDL::minmaximum() finds the maximal scan and its index.
- The boolean expression given to sumover as argument actually operates on the entire tensor.