We use the classical Fedorov exchange algorithm for optimization, implemented in R and adapted from prior work . To begin the Fedorov exchange process, we first generate a random design which is a seed design suitable for optimization. The random seed design, or what we will refer to as a 'random' design, is randomly generated until it passes a few tests. First, the seed design's covariance matrix, 𝐂, and by extension the Fisher information matrix, ℱ , must be nondegenerate, meaning that no eigenvalues are equal to zero (see Eq. 8) . Hence, we test if