parent
1d46682801
commit
0256689a02
@ -0,0 +1,31 @@ |
||||
# ---> Vim |
||||
# Swap |
||||
[._]*.s[a-v][a-z] |
||||
!*.svg # comment out if you don't need vector files |
||||
[._]*.sw[a-p] |
||||
[._]s[a-rt-v][a-z] |
||||
[._]ss[a-gi-z] |
||||
[._]sw[a-p] |
||||
|
||||
# Session |
||||
Session.vim |
||||
Sessionx.vim |
||||
|
||||
# Temporary |
||||
.netrwhist |
||||
*~ |
||||
# Auto-generated tag files |
||||
tags |
||||
# Persistent undo |
||||
[._]*.un~ |
||||
|
||||
subprojects |
||||
builddir |
||||
ttassets |
||||
backup |
||||
*.exe |
||||
*.dll |
||||
*.world |
||||
coverage |
||||
coverage/* |
||||
.venv |
||||
@ -0,0 +1,55 @@ |
||||
#pragma once |
||||
#include <cmath> |
||||
#include <chrono> |
||||
#include "stats.hpp" |
||||
|
||||
struct WelfordStats { |
||||
double Mean = 0.0; // LOL
|
||||
double n = 0.0; |
||||
double M2 = 0.0; |
||||
|
||||
double min = 0.0; |
||||
double max = 0.0; |
||||
|
||||
inline void reset() { |
||||
Mean = 0.0; |
||||
n = 0.0; |
||||
M2 = 0.0; |
||||
|
||||
min = 0.0; |
||||
max = 0.0; |
||||
} |
||||
|
||||
inline double mean() { |
||||
return Mean; |
||||
} |
||||
|
||||
inline double stddev() { |
||||
return std::sqrt(variance()); |
||||
} |
||||
|
||||
inline double variance() { |
||||
return M2 / n; |
||||
} |
||||
|
||||
inline double sample_variance() { |
||||
return M2 / (n - 1); |
||||
} |
||||
|
||||
inline void sample(double s) { |
||||
n += 1; |
||||
double old_mean = Mean; |
||||
Mean += (s - Mean) / n; |
||||
M2 += (s - old_mean) * (s - Mean); |
||||
|
||||
if (n == 0) { |
||||
min = s; |
||||
max = s; |
||||
} else { |
||||
if (min > s) min = s; |
||||
if (max < s) max = s; |
||||
} |
||||
} |
||||
|
||||
TTest t_test(WelfordStats& other); |
||||
}; |
||||
@ -0,0 +1,7 @@ |
||||
samples <- read.table("bad_samples.txt") |
||||
t.test(samples$V1, samples$V2) |
||||
|
||||
|
||||
samples <- read.table("samples.txt") |
||||
print(samples) |
||||
t.test(samples$V1, samples$V2) |
||||
Loading…
Reference in new issue