From e14342e827e2b42e43c006df90c7ad99e5124b3c Mon Sep 17 00:00:00 2001 From: wukong Date: Sun, 4 Nov 2018 10:59:44 -0800 Subject: added gaussian.awk based on hamming script; added pwr(x,p) function to sterling_approx; minor clean up all around; --- sterling_approx.awk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sterling_approx.awk') diff --git a/sterling_approx.awk b/sterling_approx.awk index ca119ac..62825b3 100644 --- a/sterling_approx.awk +++ b/sterling_approx.awk @@ -12,12 +12,17 @@ ### sterling_approx.awk # https://en.wikipedia.org/wiki/Stirling%27s_approximation +function pwr(x, p) { + return p ? exp(p*log(x)) : 1 +} + BEGIN { + #OFMT = "%.18g" ARGV[1] ? n = ARGV[1] : n = 0 pi = 4*atan2(1,1) f = 0 if (n > 0) { - f = sqrt(2*pi*n)*exp(n*log(n*exp(-1)))*(1 + 1/(12*n) + 1/(288*n*n) - 139/(51840*n*n*n) - 571/(2488320*n*n*n*n)) + f = sqrt(2*pi*n)*pwr(n*exp(-1), n)*(1 + 1/(12*n) + 1/(288*n*n) - 139/(51840*n*n*n) - 571/(2488320*n*n*n*n)) } printf(OFMT ORS, f) } -- cgit v1.2.3