From 7ab9ca8f57c44e812d3c782209a9e600dc513fbc Mon Sep 17 00:00:00 2001 From: wukong Date: Mon, 12 Nov 2018 22:35:51 -0800 Subject: added optional precision argv to other scripts; --- conv.awk | 3 ++- fib.awk | 3 ++- gaussian.awk | 3 ++- hamming.awk | 12 +++++++----- lin_reg.awk | 2 +- pi.awk | 5 ++--- quad_reg.awk | 2 +- sterling_approx.awk | 3 +-- 8 files changed, 18 insertions(+), 15 deletions(-) diff --git a/conv.awk b/conv.awk index 2248927..b7e48eb 100644 --- a/conv.awk +++ b/conv.awk @@ -4,7 +4,8 @@ # [PoC] linear convolution (with hardcoded IR window). BEGIN { - X = ARGV[1] + ARGV[1] ? X = ARGV[1] : X = 0 + ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g" input_size = split(X, X_arr) #H = "1.0 1.0 1.0" # rect #H = "0.25 0.50 0.25" # von Hann diff --git a/fib.awk b/fib.awk index d599caa..654921c 100644 --- a/fib.awk +++ b/fib.awk @@ -4,7 +4,8 @@ # fib sol'n from Hamming BEGIN { - n = ARGV[1] + ARGV[1] ? n = ARGV[1] : n = 0 + ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g" print (1/sqrt(5))*(0.5*(1 + sqrt(5)))^n - (1/sqrt(5))*(0.5*(1 - sqrt(5)))^n } diff --git a/gaussian.awk b/gaussian.awk index ef81b68..48c3f9a 100644 --- a/gaussian.awk +++ b/gaussian.awk @@ -6,7 +6,8 @@ BEGIN { - N = ARGV[1] + ARGV[1] ? N = ARGV[1] : N = 0 + ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g" M = 0.5*(N - 1) # sigma <= 0.5 diff --git a/hamming.awk b/hamming.awk index fd6d89c..f7ff9f7 100644 --- a/hamming.awk +++ b/hamming.awk @@ -7,14 +7,16 @@ BEGIN { - ### R.W. Hamming, "Digital Filters" - # H = "0.23 0.54 0.23" + ARGV[1] ? N = ARGV[1] : N = 0 + ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g" - N = ARGV[1] # window interval goes from -M to M M = 0.5*(N - 1) pi = 4*atan2(1,1) + ### R.W. Hamming, "Digital Filters" + # H = "0.23 0.54 0.23" + a0 = (25.0/46.0) a1 = (21.0/46.0) @@ -29,10 +31,10 @@ BEGIN { for (n=-M; n<=M; n++) { if (N > 1 && M > 0) { w[n] = a0 + a1*cos((pi*n)/M) - print n, w[n]/M + print n + M, w[n]/M } else { - print n, 1.0 + print n + M, 1.0 } } diff --git a/lin_reg.awk b/lin_reg.awk index 205c43f..aa94b0a 100644 --- a/lin_reg.awk +++ b/lin_reg.awk @@ -87,7 +87,7 @@ END { for (x=1; x<=nf_max; x++) { if (x != y && r[x,y]) { printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")" ORS, - 10.0*log(r[x,y]*r[x,y])/log(10.0), + (r[x,y]*r[x,y]), header[y], b[x,y], b_err[x,y], header[x], a[x,y], a_err[x,y]) } diff --git a/pi.awk b/pi.awk index cb476ac..69eb36e 100644 --- a/pi.awk +++ b/pi.awk @@ -16,7 +16,6 @@ function pi() { } BEGIN { - (ARGV[1] > 0) ? fig = ARGV[1] : fig = 6 - str = "%." fig "g\n" - printf(str, pi()) + ARGV[1] ? OFMT = "%." ARGV[1] "g" : OFMT = "%g" + printf(OFMT ORS, pi()) } diff --git a/quad_reg.awk b/quad_reg.awk index ede06a4..a587a3a 100644 --- a/quad_reg.awk +++ b/quad_reg.awk @@ -118,7 +118,7 @@ END { for (y=1; y<=nf_max; y++) { if (x != y && r[x,y]) { printf(OFMT OFS "(%s)" OFS " = (" OFMT ")(%s)^2" OFS " + (" OFMT ")(%s)" OFS " + (" OFMT ")", - 10.0*log(r[x,y]*r[x,y])/log(10), header[y], c[x,y], header[x], b[x,y], header[x], a[x,y]) + (r[x,y]*r[x,y]), header[y], c[x,y], header[x], b[x,y], header[x], a[x,y]) printf(" [" OFMT "," OFMT "][" OFMT "," OFMT "][" OFMT "," OFMT "]" OFS" [" OFMT "," OFMT "]", rx0[x,y], (a[x,y] + b[x,y]*rx0[x,y] + c[x,y]*rx0[x,y]*rx0[x,y]), rx1[x,y], (a[x,y] + b[x,y]*rx1[x,y] + c[x,y]*rx1[x,y]*rx1[x,y]), diff --git a/sterling_approx.awk b/sterling_approx.awk index aa0a748..cb5f563 100644 --- a/sterling_approx.awk +++ b/sterling_approx.awk @@ -18,8 +18,7 @@ function pwr(x, p) { BEGIN { ARGV[1] ? n = ARGV[1] : n = 0 - ARGV[2] ? prec = ARGV[2] : prec = "" - prec ? OFMT = "%." prec "g" : OFMT = "%g" + ARGV[2] ? OFMT = "%." ARGV[2] "g" : OFMT = "%g" pi = 4*atan2(1,1) f = 0 if (n > 0) { -- cgit v1.2.3