INNER CODE UNIT · JavaScript
psmc_parse
lh3/psmc · utils/split-time.js:97
function psmc_parse(fn, round, scale) {
let r = { theta0:-1, rho0:-1, C_pi:-1, ri:-1, a:[] };
let s = 0;
for (const line of k8_readline(fn)) {
let m;
if ((m = /^RD\t(\d+)/.exec(line)) != null) {
if (parseInt(m[1]) == round)
s = 1;
} else if (s == 1 && (m = /^TR\t(\S+)\t(\S+)/.exec(line)) != null) {
r.theta0 = parseFloat(m[1]);
r.rho0 = parseFloat(m[2]);
} else if (s == 1 && (m = /^RI\t(\S+)/.exec(line)) != null) {
r.ri = parseFloat(m[1]);
} else if (s == 1 && (m = /^MM\tC_pi: (\S+)/.exec(line)) != null) {
r.C_pi = parseFloat(m[1]);
} else if (s == 1 && (m = /^RS\t(\d+)\t(\S+)\t(\S+)\t\S+\t(\S+)\t(\S+)/.exec(line)) != null) {
let i = parseInt(m[1]);
r.a[i] = { t:parseFloat(m[2]), n:parseFloat(m[3]), sigma0:parseFloat(m[4]), sigma1:parseFloat(m[5]), d:0, theta:0 };