summaryrefslogtreecommitdiff
path: root/quad_reg.awk
diff options
context:
space:
mode:
authorwukong <wukong@longaeva>2018-11-04 10:59:44 -0800
committerwukong <wukong@longaeva>2018-11-04 10:59:44 -0800
commite14342e827e2b42e43c006df90c7ad99e5124b3c (patch)
treec73e930f3b111bb659957df1509e7d9f5a3c8493 /quad_reg.awk
parent72fdb25210c579beaabc35cae7ec803436887f20 (diff)
added gaussian.awk based on hamming script;
added pwr(x,p) function to sterling_approx; minor clean up all around;
Diffstat (limited to '')
-rw-r--r--quad_reg.awk19
1 files changed, 10 insertions, 9 deletions
diff --git a/quad_reg.awk b/quad_reg.awk
index 4267412..ede06a4 100644
--- a/quad_reg.awk
+++ b/quad_reg.awk
@@ -32,18 +32,16 @@ NF > 0 {
sum2[y] += $y*$y
sum3[y] += $y*$y*$y
sum4[y] += $y*$y*$y*$y
- mean[y] = sum[y]/count[y]
- mean2[y] = sum2[y]/count[y]
-
- ### delta, difference from the mean
- delta[y] = $y - mean[y]
- delta2[y] = $y*$y - mean2[y]
+ delta0[y] = $y - mean[y]
+ mean[y] += delta0[y]/count[y]
+ delta1[y] = $y - mean[y]
+ delta[y] = delta1[y]
+ delta2[y] = delta0[y]*delta[1]
sum_delta[y] += delta[y]
- sum2_delta[y] += delta[y]*delta[y]
sum_delta2[y] += delta2[y]
### sample variance
- (count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = ""
+ #(count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = ""
# x = row, y = col, trendline: y = A + Bx + Cx^2
for (x=1; x<=nf_max; x++) {
@@ -122,7 +120,10 @@ END {
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])
printf(" [" OFMT "," OFMT "][" OFMT "," OFMT "][" OFMT "," OFMT "]" OFS" [" OFMT "," OFMT "]",
- rx0[x,y], 0, rx1[x,y], 0, 0, a[x,y], xv[x,y], yv[x,y])
+ 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]),
+ 0, a[x,y],
+ xv[x,y], yv[x,y])
printf(" [" OFMT "," OFMT "]", xf[x,y], yf[x,y])
printf(" [" OFMT "]" ORS, sqrt((yf[x,y] - yv[x,y])*(yf[x,y] - yv[x,y])))
}