@Override public IntFloatPair searchNN(int[] query) { final IntFloatPair[] nn = new IntFloatPair[1]; kdt.search(query, 1, nn, nchecks); return nn[0]; } }
@Override public void searchNN(int[][] qus, int[] argmins, float[] mins) { final int N = qus.length; IntFloatPair [] nn = new IntFloatPair[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 IntFloatPair searchNN(int[] query) { final IntFloatPair[] nn = new IntFloatPair[1]; kdt.search(query, 1, nn, nchecks); return nn[0]; } }
@Override public void searchNN(int[][] qus, int[] argmins, float[] mins) { final int N = qus.length; IntFloatPair [] nn = new IntFloatPair[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(int[][] qus, int K, int[][] argmins, float[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntFloatPair[] nns = new IntFloatPair[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<int[]> qus, int[] argmins, float[] mins) { final int N = qus.size(); IntFloatPair [] nn = new IntFloatPair[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 void searchNN(List<int[]> qus, int[] argmins, float[] mins) { final int N = qus.size(); IntFloatPair [] nn = new IntFloatPair[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<IntFloatPair> searchKNN(int[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); final IntFloatPair[] nns = new IntFloatPair[K]; kdt.search(query, K, nns, nchecks); return Arrays.asList(nns); }
@Override public void searchKNN(int[][] qus, int K, int[][] argmins, float[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntFloatPair[] nns = new IntFloatPair[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 List<IntFloatPair> searchKNN(int[] query, int K) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); final IntFloatPair[] nns = new IntFloatPair[K]; kdt.search(query, K, nns, nchecks); return Arrays.asList(nns); }
@Override public void searchKNN(List<int[]> qus, int K, int[][] argmins, float[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntFloatPair[] nns = new IntFloatPair[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<int[]> qus, int K, int[][] argmins, float[][] mins) { // Fix for when the user asks for too many points. K = Math.min(K, kdt.pnts.length); IntFloatPair[] nns = new IntFloatPair[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; } } }