#!/usr/bin/perl

use constant two_pi_sqrt_inverse => 1 / sqrt(8 * atan2(1, 1));

sub gaussian {
    my ($x, $mean, $variance) = @_;
    return two_pi_sqrt_inverse *
        exp( -( ($x - $mean) ** 2 ) / (2 * $variance) ) /
            sqrt $variance;
}

print gaussian( 0, 0, 5 ), "\n";
