View Javadoc
1   package net.bmahe.genetics4j.core.spec.combination;
2   
3   import org.apache.commons.lang3.Validate;
4   import org.immutables.value.Value;
5   
6   @Value.Immutable
7   public abstract class MultiPointArithmetic implements CombinationPolicy {
8   
9   	public static final double DEFAULT_ALPHA = 0.5d;
10  
11  	@Value.Parameter
12  	public abstract int numCrossovers();
13  
14  	@Value.Parameter
15  	@Value.Default
16  	public double alpha() {
17  		return DEFAULT_ALPHA;
18  	}
19  
20  	public static MultiPointArithmetic of(final int numCrossovers, final double alpha) {
21  		Validate.isTrue(numCrossovers > 0);
22  		return ImmutableMultiPointArithmetic.of(numCrossovers, alpha);
23  	}
24  
25  	public static MultiPointArithmetic of(final int numCrossovers) {
26  		return of(numCrossovers, DEFAULT_ALPHA);
27  	}
28  }