Blob Blame History Raw
#!/usr/bin/perl

#
# Treat each line as a sequence of comma and/or space delimited
# floating point numbers, and compute basic statistics on them.
# These are written to standard output

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

$min = 1.7976931348623157E+308;
$max = 2.2250738585072014E-308;
$sum = $num = 0;

while(<>) {
    chomp;

    @nums = split(/[\s,]+/, $_);
    next if($#nums < 0);

    $num += scalar @nums;
    foreach (@nums) {
	$min = $_ if($_ < $min);
	$max = $_ if($_ > $max);
	$sum += $_;
    }
}

if($num) {
    $avg = $sum / $num;
} else {
    $min = $max = 0;
}

printf "%d\tmin=%.2f, avg=%.2f, max=%.2f, sum=%.2f\n",
    $num, $min, $avg, $max, $sum;

# end