content: package com.klibisz.elastiknn.vectors;
  
  public class BooleanVectorOps {
  
      /**
       * Compute the number of intersecting (i.e. identical) elements between two int arrays.
       * IMPORTANT: Assumes the given arrays are already sorted in ascending order and _does not_ check if this is true.
       * If the given arrays are not sorted, the answer will be wrong.
       * This is implemented in Java because for some reason Scala will Box the ints in some cases which is unnecessary
       * and far slower.
       * @param v1
       * @param v2
       * @return The number of identical elements in the two arrays. For example {1,2,3}, {2,3,4} would return 2.
       */
      public static int sortedIntersectionCount(int[] v1, int[] v2) {
          int n = 0;
          int xi = 0;
          int yi = 0;
          while (xi < v1.length && yi < v2.length) {
              int x = v1[xi];
              int y = v2[yi];
              if (x < y) xi += 1;
              else if (x > y) yi += 1;
              else {
                  n += 1;
                  xi += 1;
                  yi += 1;
              }
          }
          return n;
      }
  
  }
  