@Override public IntFloatPair searchNN(final short[] query) { final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); return search(query, queue, list).get(0); }
@Override public List<IntFloatPair> searchKNN(short[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search return search(query, queue, list); }
@Override public List<IntFloatPair> searchKNN(short[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search return search(query, queue, list); }
@Override public IntFloatPair searchNN(final short[] query) { final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); return search(query, queue, list).get(0); }
@Override public void searchKNN(final List<short[]> qus, int K, int [][] indices, float [][] distances) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final int N = qus.size(); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search on each query for (int n = 0; n < N; ++n) { List<IntFloatPair> result = search(qus.get(n), queue, list); for (int k = 0; k < K; ++k) { final IntFloatPair p = result.get(k); indices[n][k] = p.first; distances[n][k] = p.second; } } }
@Override public void searchKNN(final short [][] qus, int K, int [][] indices, float [][] distances) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final int N = qus.length; final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search on each query for (int n = 0; n < N; ++n) { List<IntFloatPair> result = search(qus[n], queue, list); for (int k = 0; k < K; ++k) { final IntFloatPair p = result.get(k); indices[n][k] = p.first; distances[n][k] = p.second; } } }
@Override public void searchNN(final List<short[]> qus, int [] indices, float [] distances) { final int N = qus.size(); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); for (int n=0; n < N; ++n) { List<IntFloatPair> result = search(qus.get(n), queue, list); final IntFloatPair p = result.get(0); indices[n] = p.first; distances[n] = p.second; } }
@Override public void searchNN(final List<short[]> qus, int [] indices, float [] distances) { final int N = qus.size(); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); for (int n=0; n < N; ++n) { List<IntFloatPair> result = search(qus.get(n), queue, list); final IntFloatPair p = result.get(0); indices[n] = p.first; distances[n] = p.second; } }
@Override public void searchKNN(final short [][] qus, int K, int [][] indices, float [][] distances) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final int N = qus.length; final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search on each query for (int n = 0; n < N; ++n) { List<IntFloatPair> result = search(qus[n], queue, list); for (int k = 0; k < K; ++k) { final IntFloatPair p = result.get(k); indices[n][k] = p.first; distances[n][k] = p.second; } } }
@Override public void searchKNN(final List<short[]> qus, int K, int [][] indices, float [][] distances) { // Fix for when the user asks for too many points. K = Math.min(K, pnts.length); final int N = qus.size(); final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(K, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(K + 1); for (int i = 0; i < K + 1; i++) { list.add(new IntFloatPair()); } // search on each query for (int n = 0; n < N; ++n) { List<IntFloatPair> result = search(qus.get(n), queue, list); for (int k = 0; k < K; ++k) { final IntFloatPair p = result.get(k); indices[n][k] = p.first; distances[n][k] = p.second; } } }
@Override public void searchNN(final short [][] qus, int [] indices, float [] distances) { final int N = qus.length; final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); for (int n=0; n < N; ++n) { List<IntFloatPair> result = search(qus[n], queue, list); final IntFloatPair p = result.get(0); indices[n] = p.first; distances[n] = p.second; } }
@Override public void searchNN(final short [][] qus, int [] indices, float [] distances) { final int N = qus.length; final BoundedPriorityQueue<IntFloatPair> queue = new BoundedPriorityQueue<IntFloatPair>(1, IntFloatPair.SECOND_ITEM_ASCENDING_COMPARATOR); //prepare working data List<IntFloatPair> list = new ArrayList<IntFloatPair>(2); list.add(new IntFloatPair()); list.add(new IntFloatPair()); for (int n=0; n < N; ++n) { List<IntFloatPair> result = search(qus[n], queue, list); final IntFloatPair p = result.get(0); indices[n] = p.first; distances[n] = p.second; } }