public static DoubleChromosome of(final Iterable<DoubleGene> genes) {
		final ISeq<DoubleGene> values = ISeq.of(genes);
		checkGeneRange(values.stream().map(DoubleGene::range));
		return new DoubleChromosome(values, IntRange.of(values.length()));
	}
Create a new {@code DoubleChromosome} with the given genes.

@since 4.3

@param genes the genes of the chromosome.
@return a new chromosome with the given genes.
@throws NullPointerException if the given {@code genes} are {@code null}
@throws IllegalArgumentException if the of the genes iterable is empty or
        the given {@code genes} doesn't have the same range.
jenetics/src/main/java/io/jenetics/DoubleChromosome.java