docs: private double[] generatePriors(Random r, int L, double z, boolean skew) {
          double P[] = new double[L];
          for (int i = 0; i < L; i++) {
              P[i] = r.nextDouble();
              //P[i] = 1.0; // @temp
          }
          // normalise to z
          do {
              double c = Utils.sum(P) / z;
              for (int i = 0; i < L; i++) {
                  P[i] = Math.min(1.0, P[i] / c); // must be in [0,1]
              }
          } while (Utils.sum(P) < z);
          return P;
      }