diff options
author | Lester Solbakken <lesters@yahoo-inc.com> | 2016-10-26 17:15:58 +0200 |
---|---|---|
committer | Lester Solbakken <lesters@yahoo-inc.com> | 2016-10-26 17:15:58 +0200 |
commit | b6da0a949fe988c77ea2b97e99f3a6b402951de8 (patch) | |
tree | 6e2088810c16ba70fa94cadfe5726750c245d237 /searchlib | |
parent | 96711fe6066efe4b82c59fb4fb09126479f8f0a3 (diff) |
Add relu and sigmoid functions
Diffstat (limited to 'searchlib')
3 files changed, 9 insertions, 1 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 da2e4c87e05..0bdd02c85b5 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 @@ -29,6 +29,8 @@ public enum Function implements Serializable { 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; } }, + relu { public double evaluate(double x, double y) { return max(x,0); } }, + sigmoid { public double evaluate(double x, double y) { return 1.0 / (1.0 + exp(-1.0 * 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); } }, diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index 8431903f30b..78ad665c414 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -103,6 +103,8 @@ TOKEN : <IN: "in"> | <SUM: "sum"> | <MATCH: "match"> | + <RELU: "relu"> | + <SIGMOID: "sigmoid"> | <IDENTIFIER: (["A"-"Z","a"-"z","0"-"9","_","@"](["A"-"Z","a"-"z","0"-"9","_","@","$"])*)> } @@ -352,7 +354,9 @@ Function unaryFunctionName() : { } <CEIL> { return Function.ceil; } | <FABS> { return Function.fabs; } | <FLOOR> { return Function.floor; } | - <ISNAN> { return Function.isNan; } + <ISNAN> { return Function.isNan; } | + <RELU> { return Function.relu; } | + <SIGMOID> { return Function.sigmoid; } } Function binaryFunctionName() : { } diff --git a/searchlib/src/tests/rankingexpression/rankingexpressionlist b/searchlib/src/tests/rankingexpression/rankingexpressionlist index 2ff1350025b..327f2b161cd 100644 --- a/searchlib/src/tests/rankingexpression/rankingexpressionlist +++ b/searchlib/src/tests/rankingexpression/rankingexpressionlist @@ -84,6 +84,8 @@ sqrt(10) ceil(10) fabs(10) floor(10) +relu(10) +sigmoid(10) atan2(10, 20); atan2(10,20) ldexp(10, 20); ldexp(10,20) pow(10, 20); pow(10,20) |