You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2019/01/20 18:29:38 UTC
[lucene-solr] branch branch_7x updated: SOLR-13146: Allow
derivatives to be computed for the oscillate Stream Evaluator
This is an automated email from the ASF dual-hosted git repository.
jbernste pushed a commit to branch branch_7x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_7x by this push:
new ead6de5 SOLR-13146: Allow derivatives to be computed for the oscillate Stream Evaluator
ead6de5 is described below
commit ead6de55f2b7ac72f3484dd6465893157851ee68
Author: Joel Bernstein <jb...@apache.org>
AuthorDate: Sun Jan 20 13:18:54 2019 -0500
SOLR-13146: Allow derivatives to be computed for the oscillate Stream Evaluator
---
.../org/apache/solr/client/solrj/io/eval/OscillateEvaluator.java | 7 +++++--
.../apache/solr/client/solrj/io/stream/MathExpressionTest.java | 8 +++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OscillateEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OscillateEvaluator.java
index 6fdd3c5..ce6478c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OscillateEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OscillateEvaluator.java
@@ -44,14 +44,17 @@ public class OscillateEvaluator extends RecursiveNumericEvaluator implements Man
HarmonicOscillator pf = new HarmonicOscillator(amp, om, phase);
+ double[] x = new double[128];
List list = new ArrayList();
for(int i=0; i<128; i++) {
double yvalue= pf.value(i);
list.add(yvalue);
+ x[i] = i;
}
- return new VectorFunction(pf, list);
-
+ VectorFunction func = new VectorFunction(pf, list);
+ func.addToContext("x", x);
+ return func;
}
}
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
index 1e3c40b..e11c75e 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
@@ -2736,7 +2736,8 @@ public class MathExpressionTest extends SolrCloudTestCase {
" e=harmfit(a)," +
" f=getAmplitude(e)," +
" g=getAngularFrequency(e)," +
- " h=getPhase(e))";
+ " h=getPhase(e)," +
+ " i=derivative(a))";
ModifiableSolrParams paramsLoc = new ModifiableSolrParams();
paramsLoc.set("expr", cexpr);
paramsLoc.set("qt", "/stream");
@@ -2764,6 +2765,11 @@ public class MathExpressionTest extends SolrCloudTestCase {
assertEquals(amp.doubleValue(), 10, .1);
assertEquals(freq.doubleValue(), .3, .1);
assertEquals(pha.doubleValue(), 2.9, .1);
+
+ List<Number> der = (List<Number>)tuples.get(0).get("i");
+ assertEquals(der.size(), 128);
+ assertEquals(der.get(0).doubleValue(), -0.7177479876419472, 0);
+ assertEquals(der.get(127).doubleValue(), 0.47586800641412696, 0);
}
@Test