@Override public void searchNN(double[][] qus, int[] argmins, double[] mins) { final int N = qus.length; IntDoublePair [] nn = new IntDoublePair[1]; for (int n=0; n < N; ++n) { kdt.search(qus[n], 1, nn, nchecks); argmins[n] = nn[0].first; mins[n] = nn[0].second; } }
@Override public IntDoublePair searchNN(double[] query) { final IntDoublePair[] nn = new IntDoublePair[1]; kdt.search(query, 1, nn, nchecks); return nn[0]; } }
@Override public IntDoublePair searchNN(double[] query) { final IntDoublePair[] nn = new IntDoublePair[1]; kdt.search(query, 1, nn, nchecks); return nn[0]; } }
@Override public void searchNN(double[][] qus, int[] argmins, double[] mins) { final int N = qus.length; IntDoublePair [] nn = new IntDoublePair[1]; for (int n=0; n < N; ++n) { kdt.search(qus[n], 1, nn, nchecks); argmins[n] = nn[0].first; mins[n] = nn[0].second; } }
@Override public void searchKNN(double[][] qus, int K, int[][] argmins, double[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntDoublePair[] nns = new IntDoublePair[K]; final int N = qus.length; for (int n=0; n < N; ++n) { kdt.search(qus[n], K, nns, nchecks); for (int k=0; k < K; ++k) { argmins[n][k] = nns[k].first; mins[n][k] = nns[k].second; } } }
@Override public void searchKNN(double[][] qus, int K, int[][] argmins, double[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntDoublePair[] nns = new IntDoublePair[K]; final int N = qus.length; for (int n=0; n < N; ++n) { kdt.search(qus[n], K, nns, nchecks); for (int k=0; k < K; ++k) { argmins[n][k] = nns[k].first; mins[n][k] = nns[k].second; } } }
@Override public void searchNN(List<double[]> qus, int[] argmins, double[] mins) { final int N = qus.size(); IntDoublePair [] nn = new IntDoublePair[1]; for (int n=0; n < N; ++n) { kdt.search(qus.get(n), 1, nn, nchecks); argmins[n] = nn[0].first; mins[n] = nn[0].second; } }
@Override public List<IntDoublePair> searchKNN(double[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); final IntDoublePair[] nns = new IntDoublePair[K]; kdt.search(query, K, nns, nchecks); return Arrays.asList(nns); }
@Override public void searchNN(List<double[]> qus, int[] argmins, double[] mins) { final int N = qus.size(); IntDoublePair [] nn = new IntDoublePair[1]; for (int n=0; n < N; ++n) { kdt.search(qus.get(n), 1, nn, nchecks); argmins[n] = nn[0].first; mins[n] = nn[0].second; } }
@Override public List<IntDoublePair> searchKNN(double[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); final IntDoublePair[] nns = new IntDoublePair[K]; kdt.search(query, K, nns, nchecks); return Arrays.asList(nns); }
@Override public void searchKNN(List<double[]> qus, int K, int[][] argmins, double[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntDoublePair[] nns = new IntDoublePair[K]; final int N = qus.size(); for (int n=0; n < N; ++n) { kdt.search(qus.get(n), K, nns, nchecks); for (int k=0; k < K; ++k) { argmins[n][k] = nns[k].first; mins[n][k] = nns[k].second; } } }
@Override public void searchKNN(List<double[]> qus, int K, int[][] argmins, double[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntDoublePair[] nns = new IntDoublePair[K]; final int N = qus.size(); for (int n=0; n < N; ++n) { kdt.search(qus.get(n), K, nns, nchecks); for (int k=0; k < K; ++k) { argmins[n][k] = nns[k].first; mins[n][k] = nns[k].second; } } }