data = {
const data = [];
fnDataInitial.map((d) => data.push(d));
let gnt, d1, d2, d33, a, b, fnt;
for (let t = 5; t < 60; t += tStep) {
d1 = data
.filter((d) => (d.t < t) & (d.t > t - 0.3))
.map((d) => d.f * tStep);
d2 = data
.filter((d) => (d.t < t) & (d.t > t - 0.25))
.map((d) => d.f * tStep);
d33 = data
.filter((d) => (d.t < t - 0.5) & (d.t > t - 0.75))
.map((d) => d.f * tStep);
a = Math.log(1 + d3.sum(d1) / numPopulation / 0.3) / Math.log(2);
b = d3.sum(d2) / numPopulation - d3.sum(d33) / numPopulation;
for (let n = 0; n < numPopulation; ++n) {
gnt = funcGn(n, t);
fnt = gnt * a * 0.5 * (1 + tanh(paraM * (10 * b + paraN))) + 0.001 * gnt;
data.push({ t, n, f: fnt });
}
}
return data;
}