View Javadoc
1   package net.bmahe.genetics4j.gp.math;
2   
3   import net.bmahe.genetics4j.gp.OperationFactories;
4   import net.bmahe.genetics4j.gp.OperationFactory;
5   
6   public final class Functions {
7   
8   	public static final String NAME_ADD = "Add";
9   	public static final String NAME_SUB = "Sub";
10  	public static final String NAME_MUL = "Mul";
11  	public static final String NAME_DIV = "Div";
12  	public static final String NAME_COS = "Cos";
13  	public static final String NAME_SIN = "Sin";
14  	public static final String NAME_EXP = "Exp";
15  	public static final String NAME_POW = "Pow";
16  	public static final String NAME_STR_TO_DOUBLE = "StrToDouble";
17  
18  	public static final OperationFactory COS = OperationFactories
19  			.ofUnary(NAME_COS, Double.class, Double.class, Math::cos);
20  	public static final OperationFactory SIN = OperationFactories
21  			.ofUnary(NAME_SIN, Double.class, Double.class, Math::sin);
22  	public static final OperationFactory EXP = OperationFactories
23  			.ofUnary(NAME_EXP, Double.class, Double.class, Math::exp);
24  
25  	public static final OperationFactory STR_TO_DOUBLE = OperationFactories
26  			.ofUnary(NAME_STR_TO_DOUBLE, String.class, Double.class, Double::parseDouble);
27  
28  	public static final OperationFactory ADD = OperationFactories
29  			.ofBinary(NAME_ADD, Double.class, Double.class, Double.class, (a, b) -> a + b);
30  
31  	public static final OperationFactory SUB = OperationFactories
32  			.ofBinary(NAME_SUB, Double.class, Double.class, Double.class, (a, b) -> a - b);
33  
34  	public static final OperationFactory MUL = OperationFactories
35  			.ofBinary(NAME_MUL, Double.class, Double.class, Double.class, (a, b) -> a * b);
36  
37  	public static final OperationFactory DIV = OperationFactories
38  			.ofBinary(NAME_DIV, Double.class, Double.class, Double.class, (a, b) -> a / b);
39  
40  	public static final OperationFactory POW = OperationFactories
41  			.ofBinary(NAME_POW, Double.class, Double.class, Double.class, Math::pow);
42  
43  }