sub factln { my $x = (shift) + 1; my $tmp = $x + 5.5; $tmp -= ($x + .5) * log($tmp); my $ser = 1.000000000190015 + 76.18009172947146 / ++$x - 86.50532032941677 / ++$x + 24.01409824083091 / ++$x - 1.231739572450155 / ++$x + 0.12086509738661e-2 / ++$x - 0.5395239384953e-5 / ++$x; return log(2.5066282746310005*$ser/($x-6)) - $tmp; }