summaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-11-23 18:45:25 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2016-11-23 18:45:25 +0100
commit437a2dc519cc991302c01acb8cd1df1e96b1283d (patch)
tree8282c90916f985b68469ab7e820ed6d210015d24 /searchlib/src/main/java/com
parenteb7a97abcdf72222d37459a986217ec5ad5cdacd (diff)
Implement more functions
Diffstat (limited to 'searchlib/src/main/java/com')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java33
1 files changed, 20 insertions, 13 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java
index 0bdd02c85b5..cbea2ad627e 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java
@@ -12,31 +12,38 @@ import static java.lang.Math.*;
*/
public enum Function implements Serializable {
- cosh { public double evaluate(double x, double y) { return cosh(x); } },
- sinh { public double evaluate(double x, double y) { return sinh(x); } },
- tanh { public double evaluate(double x, double y) { return tanh(x); } },
- cos { public double evaluate(double x, double y) { return cos(x); } },
- sin { public double evaluate(double x, double y) { return sin(x); } },
- tan { public double evaluate(double x, double y) { return tan(x); } },
+ abs { public double evaluate(double x, double y) { return abs(x); } },
acos { public double evaluate(double x, double y) { return acos(x); } },
asin { public double evaluate(double x, double y) { return asin(x); } },
atan { public double evaluate(double x, double y) { return atan(x); } },
- exp { public double evaluate(double x, double y) { return exp(x); } },
- log10 { public double evaluate(double x, double y) { return log10(x); } },
- log { public double evaluate(double x, double y) { return log(x); } },
- sqrt { public double evaluate(double x, double y) { return sqrt(x); } },
ceil { public double evaluate(double x, double y) { return ceil(x); } },
+ cos { public double evaluate(double x, double y) { return cos(x); } },
+ cosh { public double evaluate(double x, double y) { return cosh(x); } },
+ elu { public double evaluate(double x, double y) { return x<0 ? exp(x)-1 : x; } },
+ exp { public double evaluate(double x, double y) { return exp(x); } },
fabs { public double evaluate(double x, double y) { return abs(x); } },
floor { public double evaluate(double x, double y) { return floor(x); } },
isNan { public double evaluate(double x, double y) { return Double.isNaN(x) ? 1.0 : 0.0; } },
+ log { public double evaluate(double x, double y) { return log(x); } },
+ log10 { public double evaluate(double x, double y) { return log10(x); } },
relu { public double evaluate(double x, double y) { return max(x,0); } },
+ round { public double evaluate(double x, double y) { return round(x); } },
sigmoid { public double evaluate(double x, double y) { return 1.0 / (1.0 + exp(-1.0 * x)); } },
+ sign { public double evaluate(double x, double y) { return x >= 0 ? 1 : -1; } },
+ sin { public double evaluate(double x, double y) { return sin(x); } },
+ sinh { public double evaluate(double x, double y) { return sinh(x); } },
+ square { public double evaluate(double x, double y) { return x*x; } },
+ sqrt { public double evaluate(double x, double y) { return sqrt(x); } },
+ tan { public double evaluate(double x, double y) { return tan(x); } },
+ tanh { public double evaluate(double x, double y) { return tanh(x); } },
+
atan2(2) { public double evaluate(double x, double y) { return atan2(x,y); } },
- pow(2) { public double evaluate(double x, double y) { return pow(x,y); } },
- ldexp(2) { public double evaluate(double x, double y) { return x*pow(2,y); } },
fmod(2) { public double evaluate(double x, double y) { return IEEEremainder(x,y); } },
+ ldexp(2) { public double evaluate(double x, double y) { return x*pow(2,y); } },
+ max(2) { public double evaluate(double x, double y) { return max(x,y); } },
min(2) { public double evaluate(double x, double y) { return min(x,y); } },
- max(2) { public double evaluate(double x, double y) { return max(x,y); } };
+ mod(2) { public double evaluate(double x, double y) { return x % y; } },
+ pow(2) { public double evaluate(double x, double y) { return pow(x,y); } };
private final int arity;