@Override
	protected int recombine(
		final MSeq<Phenotype<G, C>> population,
		final int[] individuals,
		final long generation
	) {
		final Phenotype<G, C> pt1 = population.get(individuals[0]);
		final Phenotype<G, C> pt2 = population.get(individuals[1]);
		final Genotype<G> gt1 = pt1.genotype();
		final Genotype<G> gt2 = pt2.genotype();

		//Choosing the Chromosome index for crossover.
		final int ci = RandomRegistry.random()
			.nextInt(min(gt1.length(), gt2.length()));

		final MSeq<Chromosome<G>> c1 = MSeq.of(gt1);

		// Calculate the mean value of the gene array.
		final MSeq<G> mean = combine(c1.get(ci), gt2.get(ci), _combiner);

		c1.set(ci, c1.get(ci).newInstance(mean.toISeq()));
		population.set(individuals[0], Phenotype.of(Genotype.of(c1), generation));

		return 1;
	}
Return the combiner function, used by {@code this} alterer.

@return the combiner function, used by {@code this} alterer
jenetics/src/main/java/io/jenetics/CombineAlterer.java