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