private double selectBirth(RandomGenerator e, C conf, M modif, double[] in) { int beg = conf.size(clazz) - modif.getDeath().size() + 1; int end = beg + this.n; int denom = 1; int current = 0; for (int size = beg; size < end; ++size) { double[] v = new double[this.dimension]; for (int i = 0; i < this.dimension; i++) { v[i] = in[i + current]; } modif.insertBirth(this.builder.build(v)); current += this.dimension; denom *= size; } return 1. / (double) denom; }