INNER CODE UNIT · JavaScript
z
lh3/psmc · utils/split-time.js:148
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;
} else if (tmp >= 1.0) {
warn(`Warning: approximation failure at interval ${i}: ${tmp} >= 1 (x=${x})`);
tmp = 1.0;
}