summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conv.awk1
-rw-r--r--diff.awk46
-rw-r--r--diff1.awk1
-rw-r--r--hamming.awk6
-rw-r--r--kalman.awk1
-rw-r--r--kalman_init.awk1
-rw-r--r--lin_reg.awk2
-rw-r--r--lin_reg1.awk1
8 files changed, 35 insertions, 24 deletions
diff --git a/conv.awk b/conv.awk
index 2248927..b1e9e62 100644
--- a/conv.awk
+++ b/conv.awk
@@ -4,6 +4,7 @@
# [PoC] linear convolution (with hardcoded IR window).
BEGIN {
+ OFMT = "%.9g"
X = ARGV[1]
input_size = split(X, X_arr)
#H = "1.0 1.0 1.0" # rect
diff --git a/diff.awk b/diff.awk
index 6dc427d..fb93b57 100644
--- a/diff.awk
+++ b/diff.awk
@@ -4,6 +4,7 @@
# numerical diff along columns
BEGIN {
+ OFMT = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
@@ -12,44 +13,49 @@ BEGIN {
}
NR == 1 {
- header_nf = NF
+ ### orig columns
for (n=1; n<=NF; n++) {
- printf("%s", $n)
- ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol_" n
+ ($n !~ number) ? header[n] = $n : header[n] = "col" n
+ printf(header[n])
+ ($n !~ number) ? dheader[n] = "d" $n : dheader[n] = "dcol" n
if (n <= NF)
- printf("%s", OFS)
+ printf(OFS)
}
+ ### diff columns
for (n=1; n<=NF; n++) {
- printf("%s", dheader[n])
+ printf(dheader[n])
if (n < NF)
- printf("%s", OFS)
+ printf(OFS)
}
}
-NF != 0 {
- if (NF > max_nf)
- max_nf = NF
+NF {
+ if (NF > nf_max)
+ nf_max = NF
- ### iterate over columns
- for (y=1; y<=max_nf; y++) {
- if (match(dheader[y], $y))
+ ### orig columns
+ for (y=1; y<=nf_max; y++) {
+ if ($y == header[y] || $y == dheader[y])
continue
if ($y ~ number)
- printf("%g", $y)
- if (y <= max_nf)
- printf("%s", OFS)
+ printf($y)
+ else
+ printf("")
+ printf(OFS)
}
- for (y=1; y<=max_nf; y++) {
+ ### diff columns
+ for (y=1; y<=nf_max; y++) {
if ($y ~ number) {
data[y] = $y
- (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = "nan"
+ (data_prev[y] ~ number) ? diff[y] = data[y] - data_prev[y] : diff[y] = ""
data_prev[y] = data[y]
- printf("%g", diff[y])
- if (y < max_nf)
- printf("%s", OFS)
+ printf(diff[y])
+ if (y < nf_max)
+ printf(OFS)
}
+ diff[y] = ""
}
printf("\n")
}
diff --git a/diff1.awk b/diff1.awk
index cb86e00..42cc5a8 100644
--- a/diff1.awk
+++ b/diff1.awk
@@ -4,6 +4,7 @@
# numerical diff along columns
BEGIN {
+ OFMT = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
diff --git a/hamming.awk b/hamming.awk
index 21d241e..84dacd3 100644
--- a/hamming.awk
+++ b/hamming.awk
@@ -6,10 +6,10 @@
# 'a0' and 'a1' parameters of the raised cosine.
BEGIN {
-
+ OMFT = "%.9g"
N = ARGV[1]
-
pi = 4*(4*atan2(1,5) - atan2(1,239))
+
#a0 = (25.0/46.0)
#a1 = (21.0/46.0)
@@ -25,7 +25,7 @@ BEGIN {
w[n] = a0 - a1*cos((2*pi*n)/(N - 1))
sum_w += w[n]
}
- printf("%g %g\n", w[n], 2.0*(w[n])/(N + 1))
+ print 2.0*(w[n])/(N + 1)
}
}
diff --git a/kalman.awk b/kalman.awk
index f67e9de..41936e2 100644
--- a/kalman.awk
+++ b/kalman.awk
@@ -4,6 +4,7 @@
# simple linear regression between columns
BEGIN {
+ OMFT = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
diff --git a/kalman_init.awk b/kalman_init.awk
index f1dcac4..9e0cd14 100644
--- a/kalman_init.awk
+++ b/kalman_init.awk
@@ -4,6 +4,7 @@
# kalman csv experiemnt
BEGIN {
+ OMFT = "%.9"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"
diff --git a/lin_reg.awk b/lin_reg.awk
index e1cb722..51f2e87 100644
--- a/lin_reg.awk
+++ b/lin_reg.awk
@@ -39,7 +39,7 @@ NF != 0 {
sum_delta2[y] += delta[y]*delta[y]
### sample variance
- (count[y] - 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = 0
+ (count[y] > 1) ? var[y] = sum_delta2[y]/(count[y] - 1) : var[y] = 0
# x = row, y = col
for (x=1; x<=max_nf; x++) {
diff --git a/lin_reg1.awk b/lin_reg1.awk
index de1189f..cd3db8e 100644
--- a/lin_reg1.awk
+++ b/lin_reg1.awk
@@ -4,6 +4,7 @@
# simple linear regression between individual text columns
BEGIN {
+ OFS = "%.9g"
sign = "[+-]?"
decimal = "[0-9]+[.]?[0-9]*"
fraction = "[.][0-9]*"