BioUtil
view release on metacpan or search on metacpan
lib/BioUtil/Util.pm view on Meta::CPAN
=head2 mean_and_stdev
return mean and stdev of a list
Example:
my @list = qq/1 2 3/;
mean_and_stdev(\@list);
=cut
sub mean_and_stdev($) {
my ($list) = @_;
return ( 0, 0 ) if @$list == 0;
my $sum = 0;
$sum += $_ for @$list;
my $sum_square = 0;
$sum_square += $_ * $_ for @$list;
my $mean = $sum / @$list;
my $variance = $sum_square / @$list - $mean * $mean;
my $std = sqrt $variance;
return ( $mean, $std );
( run in 0.656 second using v1.01-cache-2.11-cpan-65fba6d93b7 )