diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-11-23 18:45:25 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-11-23 18:45:25 +0100 |
commit | 437a2dc519cc991302c01acb8cd1df1e96b1283d (patch) | |
tree | 8282c90916f985b68469ab7e820ed6d210015d24 /searchlib/src/main/java/com | |
parent | eb7a97abcdf72222d37459a986217ec5ad5cdacd (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.java | 33 |
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; |