rmuir commented on code in PR #913:
URL: https://github.com/apache/lucene/pull/913#discussion_r878562615


##########
lucene/core/src/java/org/apache/lucene/util/VectorUtil.java:
##########
@@ -213,4 +213,21 @@ public static void add(float[] u, float[] v) {
       u[i] += v[i];
     }
   }
+
+  public static float dotProduct(BytesRef a, int aOffset, BytesRef b, int 
bOffset, int len) {
+    // fixme -- move to codec? What if later we want to access the bytes some 
other way?
+    int total = 0;
+    for (int i = 0; i < len; i++) {
+      total += a.bytes[aOffset++] * b.bytes[bOffset++];

Review Comment:
   I think our result vector could be ShortVector and to try to use conversion 
(in some way that isnt slow) such as 
https://docs.oracle.com/en/java/javase/16/docs/api/jdk.incubator.vector/jdk/incubator/vector/VectorOperators.html#B2S
 in a way that is efficient? 
   
   for the adding-up part, with the floats we did reduceLanes(), so I think 
we'd have to use same trick with conversion of result to IntVector/LongVector 
to create the sum.
   
   There are gigantic paragraphs on Vector.java javadoc on how to do these 
conversions (maybe they are actually efficient?), but I haven't tried.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to