9 push @pos, [ splice(@l, 0, 3) ];
10 push @vel, [ splice(@l, 0, 3) ];
11 push @acc, [ splice(@l, 0, 3) ];
14 use List::Util qw(sum);
15 my ($mina, $minv, $minp, $mini);
16 for my $i (0 .. $#acc) {
17 my $a = sum map { abs } @{ $acc[$i] };
18 my $v = sum map { abs } @{ $vel[$i] };
19 my $p = sum map { abs } @{ $pos[$i] };
21 if (!defined $mini || $a < $mina) {
26 } elsif (defined $mini && $a == $mina && $v < $minv) {
30 } elsif (defined $mini && $a == $mina && $v == $minv && $p < $minp) {
40 for my $i (0 .. @acc) {
42 push @v, $vel[$i][$_] + $acc[$i][$_] for 0 .. 2;
45 push @p, $pos[$i][$_] + $v[$_] for 0 .. 2;