INNER CODE UNIT · JavaScript
z
lh3/psmc · utils/split-time.js:144
let z = 0.0; // C_pi
for (let i = k0; i < r.a.length; ++i)
z += r.a[i].n * (alpha[i - k0] - alpha[i - k0 + 1]);
const C_pi = z;
z = C_pi * r.theta0 / scale;
// calculate posterior heterozygosity
let y = 0.0, f = 0.0;
for (let i = k0; i < r.a.length; ++i) {
let t;
if (i == r.a.length - 1) {
t = r.a[i].n;
} else {
let tao = r.a[i+1].t - r.a[i].t;
let x = tao / r.a[i].n;
let tmp = 1.0 / x - 1.0 / (Math.exp(x) - 1);
if (tmp < 0.0) {
warn(`Warning: approximation failure at interval ${i}: ${tmp} < 0 (x=${x})`);
tmp = 0.0;