1 package net.bmahe.genetics4j.gp.math;
2
3 import java.util.Collections;
4 import java.util.List;
5 import java.util.function.BiFunction;
6
7 import org.immutables.value.Value;
8 import org.immutables.value.Value.Parameter;
9
10 import net.bmahe.genetics4j.gp.Operation;
11
12 @Value.Immutable
13 public abstract class InputOperation<T> extends Operation<T> {
14
15 @Override
16 public List<Class> acceptedTypes() {
17 return Collections.emptyList();
18 }
19
20 @Override
21 public BiFunction<T[], Object[], Object> compute() {
22 return (input, parameter) -> input[index()];
23 }
24
25 @Parameter
26 public abstract int index();
27 }