where X and S represent vectors of truncated log-normal size distribution parameters ( xi and s i ) and P represents a vector of fractional prevalences of each of three particle types (p i ), totaling eight or nine degrees of freedom depending on the combination of constraints. We will refer to the compositional and permutation constraints as "comp" and "order", respectively. Log-normal distributions are computed as given in scipy.stats.lognorm with x ≡ scale and s ≡ shape (Appendix B). The truncated probability density function is given by: