summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cov.awk2
-rw-r--r--diff.awk4
-rw-r--r--diff1.awk2
-rw-r--r--kalman.awk4
-rw-r--r--kalman_init.awk14
-rw-r--r--lin_reg.awk10
-rw-r--r--lin_reg1.awk4
-rw-r--r--lin_reg2.awk4
-rw-r--r--mean.awk2
-rw-r--r--mean_avg.awk2
-rw-r--r--sum1.awk2
-rw-r--r--sum2.awk2
-rw-r--r--sum4.awk7
13 files changed, 30 insertions, 29 deletions
diff --git a/cov.awk b/cov.awk
index 176fd96..9b79d11 100644
--- a/cov.awk
+++ b/cov.awk
@@ -52,7 +52,7 @@ END {
printf(header[y] OFS)
### rows
for (x=1; x<=nf_max; x++) {
- printf("%.18g", cov_samp[x,y])
+ printf(OFMT, cov_samp[x,y])
if (x < nf_max)
printf(OFS)
}
diff --git a/diff.awk b/diff.awk
index c79a5c3..580e2d2 100644
--- a/diff.awk
+++ b/diff.awk
@@ -44,7 +44,7 @@ NF {
if ($y == header[y] || $y == dheader[y])
continue
if ($y ~ number)
- printf("%.18g", $y)
+ printf(OFMT, $y)
else
printf("")
printf(OFS)
@@ -58,7 +58,7 @@ NF {
data[y] = $y
(data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = ""
data_prev[y] = data[y]
- printf("%.18g", diff[y])
+ printf(OFMT, diff[y])
}
else
diff[y] = ""
diff --git a/diff1.awk b/diff1.awk
index 4132bf7..15c04fb 100644
--- a/diff1.awk
+++ b/diff1.awk
@@ -41,7 +41,7 @@ NF {
data[y] = $y
(data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = ""
data_prev[y] = data[y]
- printf("%.18g", diff[y])
+ printf(OFMT, diff[y])
}
else
diff[y] = ""
diff --git a/kalman.awk b/kalman.awk
index b951d11..062dfd9 100644
--- a/kalman.awk
+++ b/kalman.awk
@@ -1,6 +1,6 @@
#!/usr/bin/awk -f
-### lin_reg.awk
+### kalman.awk
# simple linear regression between columns
BEGIN {
@@ -98,7 +98,7 @@ END {
for (y=1; y<=max_nf; y++) {
for (x=1; x<=max_nf; x++) {
if (x != y && r[x,y]) {
- printf("\n %.18g %.18g \t (%s) \t = (%.18g +/- %.18g)(%s) \t + (%.18g +/- %.18g)",
+ printf(OFMT OFS OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")"ORS,
meas_cov[x,y], est_err_cov[x,y], header[y], b[x,y], b_err[x,y], header[x],
a[x,y], a_err[x,y])
}
diff --git a/kalman_init.awk b/kalman_init.awk
index 0ed72a6..0321c4d 100644
--- a/kalman_init.awk
+++ b/kalman_init.awk
@@ -20,8 +20,7 @@ NR == 1 {
}
NF != 0 {
- #print "\n"
- print "\n" NR ": \t" $0
+ print ORS NR ":" OFS $0 ORS
if (NF > max_nf)
max_nf = NF
@@ -68,11 +67,12 @@ NF != 0 {
est_err[n] = (1.0 - KG[n])*est_err_last[n]
### visual check
- printf "meas: \t%.18g %.18g %.18g", $n, meas_err[n], count[n]
- printf "\nd1: \t%.18g", diff[n]
- printf "\nd2: \t%.18g", diff2[n]
- printf "\nest: \t%.18g %.18g %.18g", est[n], est_err[n], KG[n]
+ printf "meas: " OFS OFMT OFS OFMT OFS OFMT, $n, meas_err[n], count[n]
+ printf "d1: " OFS OFMT, diff[n]
+ printf "d2: " OFS OFMT, diff2[n]
+ printf "est: " OFS OFMT OFS OFMT OFS OFMT, est[n], est_err[n], KG[n]
+ ### update previously remembered values
last2[n] = last[n]
last[n] = $n
diff_last2[n] = diff_last[n]
@@ -83,7 +83,7 @@ NF != 0 {
delta2_last[n] = delta2[n]
est_last[n] = est[n]
est_error_last[n] = est_error[n]
- printf "\n"
+ printf ORS
}
}
}
diff --git a/lin_reg.awk b/lin_reg.awk
index 56114a2..0e51266 100644
--- a/lin_reg.awk
+++ b/lin_reg.awk
@@ -4,7 +4,7 @@
# simple linear regression between columns
BEGIN {
- OFMT = "%.18g"
+ OFMT = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
@@ -23,6 +23,8 @@ NF > 0 {
### iterate over columns
for (y=1; y<=nf_max; y++) {
+ if ($y == header[n])
+ continue
if ($y ~ number) {
### mean
@@ -42,10 +44,10 @@ NF > 0 {
for (x=1; x<=nf_max; x++) {
count[x,y] += 1
sum_xy[x,y] += $x*$y
- sum_delta_xy[x,y] += delta[x]*delta[y]
+ sum_delta_xy[x,y] += delta0[x]*delta1[y]
# covariance
- #(count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = ""
+ (count[x,y] > 1) ? cov[x,y] = sum_delta_xy[x,y]/(count[x,y] - 1) : cov[x,y] = ""
# correlation
r_den[x,y] = sqrt(sum_delta2[x]*sum_delta2[y])
@@ -84,7 +86,7 @@ END {
for (y=1; y<=nf_max; y++) {
for (x=1; x<=nf_max; x++) {
if (x != y && r[x,y]) {
- printf("%.9g "OFS" (%s) "OFS" = (%.9g +/- %.9g)(%s) "OFS" + (%.9g +/- %.9g)%s",
+ printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- "OFMT ")%s",
10.0*log(r[x,y]*r[x,y])/log(10.0), header[y], b[x,y],
b_err[x,y], header[x], a[x,y], a_err[x,y], ORS)
}
diff --git a/lin_reg1.awk b/lin_reg1.awk
index 8b03e2f..776a370 100644
--- a/lin_reg1.awk
+++ b/lin_reg1.awk
@@ -67,8 +67,8 @@ END {
for (x=1; x<=nf_max; x++) {
if (x != y && r[x,y]) {
r2[x,y] = r[x,y]*r[x,y]
- printf("\n %.18g \t (%s) \t = %.18g(%s) \t + %.18g",
- 10.0*log(r2[x,y])/log(10), header[y], b[x,y], header[x], a[x,y])
+ printf(OFMT OFS "(%s)" OFS " = " OFMT "(%s)" OFS " + " OFMT ORS,
+ 10.0*log(r2[x,y])/log(10.0), header[y], b[x,y], header[x], a[x,y])
}
}
}
diff --git a/lin_reg2.awk b/lin_reg2.awk
index 7c00fe8..ef0fe57 100644
--- a/lin_reg2.awk
+++ b/lin_reg2.awk
@@ -4,7 +4,7 @@
# simple linear regression between columns
BEGIN {
- OFMT = "%.18g"
+ OFMT = "%.8g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
@@ -82,7 +82,7 @@ END {
for (y=1; y<=nf_max; y++) {
for (x=1; x<=nf_max; x++) {
if (x != y && r[x,y]) {
- printf("\n %.18g \t (%s) \t = (%.18g +/- %.18g)(%s) \t + (%.18g +/- %.18g)",
+ printf(OFMT OFS "(%s)" OFS " = (" OFMT " +/- " OFMT ")(%s)" OFS " + (" OFMT " +/- " OFMT ")" ORS,
10.0*log(r[x,y]*r[x,y])/log(10), header[y], b[x,y], b_err[x,y], header[x],
a[x,y], a_err[x,y])
}
diff --git a/mean.awk b/mean.awk
index 6f16d8d..f8c4361 100644
--- a/mean.awk
+++ b/mean.awk
@@ -4,7 +4,7 @@
# calculate mean average
BEGIN {
- OFMT = "%.18g"
+ #OFMT = "%.18g"
sign = "[+-±]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
diff --git a/mean_avg.awk b/mean_avg.awk
index 565dcc2..0d61558 100644
--- a/mean_avg.awk
+++ b/mean_avg.awk
@@ -4,7 +4,7 @@
# average columns of numerical data
BEGIN {
- OFMT = "%.18g"
+ #OFMT = "%.18g"
#sign = "[+-]?"
#decimal = "[0-9]+[.]?[0-9]*"
#fraction = "[.][0-9]*"
diff --git a/sum1.awk b/sum1.awk
index 8617e50..61d96e0 100644
--- a/sum1.awk
+++ b/sum1.awk
@@ -14,7 +14,7 @@
END {
for (i=1; i<=nf_max; i++) {
- printf("%.18g", sum[i])
+ printf(OFMT, sum[i])
printf((i < nf_max) ? OFS : ORS)
}
}
diff --git a/sum2.awk b/sum2.awk
index 413f633..979d133 100644
--- a/sum2.awk
+++ b/sum2.awk
@@ -14,5 +14,5 @@ NR==1 { nf_max = NF }
END {
for (i=1; i<=NF; i++)
- printf("%.18g%s", sum[i], i < nf_max ? OFS : ORS)
+ printf(OFMT "%s", sum[i], i < nf_max ? OFS : ORS)
}
diff --git a/sum4.awk b/sum4.awk
index f9037da..2c3a41b 100644
--- a/sum4.awk
+++ b/sum4.awk
@@ -5,7 +5,7 @@
# output: sums of numeric columns
function isnum(n) {
- OFMT = "%.18g"
+ #OFMT = "%.18g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]+"
@@ -31,8 +31,7 @@ NR==1 {
END {
for (i=1; i<=nf_max; i++) {
if (header[i])
- printf("%s: \t", header[i])
- printf("%.18g\n", sum[i])
- printf(i < nf_max ? "" : OFS )
+ printf("%s:" OFS, header[i])
+ printf(OFMT ORS, sum[i])
}
}