diff options
author | Lester Solbakken <lesters@oath.com> | 2020-06-18 19:25:35 +0200 |
---|---|---|
committer | Lester Solbakken <lesters@oath.com> | 2020-06-18 19:25:35 +0200 |
commit | 06bde5687b214a97c72e41ee40ac76ad837a3d7d (patch) | |
tree | 2d7ef9a8a2017d4f986744dfde82f8b671f4227b /searchlib | |
parent | 5688a50eb92fc4459e51dccca45858aecca8264a (diff) |
Add erf (the error function)
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/abi-spec.json | 2 | ||||
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java | 3 | ||||
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/searchlib/abi-spec.json b/searchlib/abi-spec.json index 6bce791914c..c22d906e2b2 100644 --- a/searchlib/abi-spec.json +++ b/searchlib/abi-spec.json @@ -1024,6 +1024,7 @@ "public static final int SQRT", "public static final int TAN", "public static final int TANH", + "public static final int ERF", "public static final int ATAN2", "public static final int FMOD", "public static final int LDEXP", @@ -1373,6 +1374,7 @@ "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function sqrt", "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function tan", "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function tanh", + "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function erf", "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function atan2", "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function fmod", "public static final enum com.yahoo.searchlib.rankingexpression.rule.Function ldexp", 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 c3c1c371a68..99afb3b38d0 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 @@ -1,6 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchlib.rankingexpression.rule; +import com.yahoo.tensor.functions.ScalarFunctions; + import java.io.Serializable; import static java.lang.Math.*; @@ -36,6 +38,7 @@ public enum Function implements Serializable { 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); } }, + erf { public double evaluate(double x, double y) { return ScalarFunctions.Erf.erf(x); } }, atan2(2) { public double evaluate(double x, double y) { return atan2(x,y); } }, fmod(2) { public double evaluate(double x, double y) { return x % y; } }, diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index 8aa10bf7b34..5f27bbcbeee 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -115,6 +115,7 @@ TOKEN : <SQRT: "sqrt"> | <TAN: "tan"> | <TANH: "tanh"> | + <ERF: "erf"> | <ATAN2: "atan2"> | <FMOD: "fmod"> | @@ -727,7 +728,8 @@ Function unaryFunctionName() : { } <SQUARE> { return Function.square; } | <SQRT> { return Function.sqrt; } | <TAN> { return Function.tan; } | - <TANH> { return Function.tanh; } + <TANH> { return Function.tanh; } | + <ERF> { return Function.erf; } } Function binaryFunctionName() : { } |