1function idx = ljd_linearize(nvec, cutoffs)
2% IDX = LJD_LINEARIZE(NVEC, CUTOFFS)
4% Convert per-
class population vector to linearized index
6% nvec: [n1, n2, ..., nK] - per-
class populations
7% cutoffs: [N1, N2, ..., NK] - per-
class cutoffs
9% Returns: 1-based linearized index
11% Index formula: idx = 1 + n1 + n2*(N1+1) + n3*(N1+1)*(N2+1) + ...
13% Copyright (c) 2012-2026, Imperial College London
17idx = 1; % 1-indexed
for MATLAB
21 nk = min(nvec(k), cutoffs(k)); % clamp to cutoff
22 idx = idx + nk * multiplier;
23 multiplier = multiplier * (cutoffs(k) + 1);