Anonymous user
Deming's funnel: Difference between revisions
Updated D entry
(GP work-in-progress) |
(Updated D entry) |
||
Line 24:
<lang d>import std.stdio, std.math, std.algorithm, std.range, std.typecons;
auto mean(T)(in T[] xs) /*pure*/ {▼
▲auto mean(T)(in T[] xs) pure {
return xs.sum / xs.length;
}
auto stdDev(T)(in T[] xs) /*pure*/ {
immutable m = xs.mean;
return sqrt(xs.map!(x => (x - m) ^^ 2).sum / xs.length);
Line 37 ⟶ 35:
alias TF = double function(in double, in double) pure nothrow;
auto funnel(T)(in T[] dxs, in T[] dys, in TF rule) {
T x = 0, y = 0;
immutable(T)[] rxs, rys;
foreach (const dx, const dy; zip(dxs, dys)) {
immutable rx = x + dx;
immutable ry = y + dy;
x = rule(x, dx);
y = rule(y, dy);
rxs ~= rx;
rys ~= ry;
}
return tuple(rxs, rys);
}
void experiment(T)(in string label,
in T[] dxs, in T[] dys, in TF rule) {
//immutable (rxs, rys) = funnel(dxs, dys, rule);
immutable
label.writeln;
writefln("Mean x, y: %.4f, %.4f",
writefln("Std dev x, y: %.4f, %.4f",
writeln;
}
|