@Override public int getDimensions() { return coord.getDimensions(); }
protected static final float distance(Coordinate a, Coordinate b) { float s = 0; for (int i = 0; i < a.getDimensions(); i++) { final float fa = a.getOrdinate(i).floatValue(); final float fb = b.getOrdinate(i).floatValue(); s += (fa - fb) * (fa - fb); } return s; }
protected static final float distance(Coordinate a, Coordinate b) { float s = 0; for (int i = 0; i < a.getDimensions(); i++) { final float fa = a.getOrdinate(i).floatValue(); final float fb = b.getOrdinate(i).floatValue(); s += (fa - fb) * (fa - fb); } return s; }
private Stack<KDNode<T>> walkdown(Coordinate point) { if (_root == null) return null; else { final Stack<KDNode<T>> stack = new Stack<KDNode<T>>(); int discriminate, dimensions; KDNode<T> curNode, tmpNode; double ordinate1, ordinate2; curNode = _root; do { tmpNode = curNode; stack.push(tmpNode); if (tmpNode._point == point) return stack; discriminate = tmpNode._discriminate; ordinate1 = point.getOrdinate(discriminate).doubleValue(); ordinate2 = tmpNode._point.getOrdinate(discriminate).doubleValue(); if (ordinate1 > ordinate2) curNode = tmpNode._right; else curNode = tmpNode._left; } while (curNode != null); dimensions = point.getDimensions(); if (++discriminate >= dimensions) discriminate = 0; return stack; } }
private Stack<KDNode<T>> walkdown(Coordinate point) { if (_root == null) return null; else { final Stack<KDNode<T>> stack = new Stack<KDNode<T>>(); int discriminate, dimensions; KDNode<T> curNode, tmpNode; double ordinate1, ordinate2; curNode = _root; do { tmpNode = curNode; stack.push(tmpNode); if (tmpNode._point == point) return stack; discriminate = tmpNode._discriminate; ordinate1 = point.getOrdinate(discriminate).doubleValue(); ordinate2 = tmpNode._point.getOrdinate(discriminate).doubleValue(); if (ordinate1 > ordinate2) curNode = tmpNode._right; else curNode = tmpNode._left; } while (curNode != null); dimensions = point.getDimensions(); if (++discriminate >= dimensions) discriminate = 0; return stack; } }
/** * Determines if a point is contained within a given k-dimensional bounding * box. */ static final boolean isContained( Coordinate point, Coordinate lower, Coordinate upper) { int dimensions; double ordinate1, ordinate2, ordinate3; dimensions = point.getDimensions(); for (int i = 0; i < dimensions; ++i) { ordinate1 = point.getOrdinate(i).doubleValue(); ordinate2 = lower.getOrdinate(i).doubleValue(); ordinate3 = upper.getOrdinate(i).doubleValue(); if (ordinate1 < ordinate2 || ordinate1 > ordinate3) return false; } return true; }
/** * Determines if a point is contained within a given k-dimensional bounding * box. */ static final boolean isContained( Coordinate point, Coordinate lower, Coordinate upper) { int dimensions; double ordinate1, ordinate2, ordinate3; dimensions = point.getDimensions(); for (int i = 0; i < dimensions; ++i) { ordinate1 = point.getOrdinate(i).doubleValue(); ordinate2 = lower.getOrdinate(i).doubleValue(); ordinate3 = upper.getOrdinate(i).doubleValue(); if (ordinate1 < ordinate2 || ordinate1 > ordinate3) return false; } return true; }
} while (curNode != null); dimensions = point.getDimensions();
} while (curNode != null); dimensions = point.getDimensions();
affineMatrixND(List<? extends IndependentPair<? extends Coordinate, ? extends Coordinate>> data) final int dim = data.get(0).firstObject().getDimensions(); final int nItems = data.size();
List<? extends IndependentPair<? extends Coordinate, ? extends Coordinate>> data) final int dim = data.get(0).firstObject().getDimensions(); final int nitems = data.size();