
static class ALOCI.ALOCIQuadTree extends Object
| Modifier and Type | Field and Description |
|---|---|
private double[] |
min
Tree parameters
|
private int |
nmin
Maximum fill for a page before splitting
|
private Relation<? extends NumberVector<?>> |
relation
Relation indexed.
|
(package private) ALOCI.Node |
root
Tree root
|
private double[] |
shift
Tree parameters
|
private double[] |
width
Tree parameters
|
| Constructor and Description |
|---|
ALOCI.ALOCIQuadTree(double[] min,
double[] max,
double[] shift,
int nmin,
Relation<? extends NumberVector<?>> relation)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
bulkLoad(double[] lmin,
double[] lmax,
List<ALOCI.Node> children,
ArrayModifiableDBIDs ids,
int start,
int end,
int dim,
int level,
int code)
Bulk load the tree
|
ALOCI.Node |
findClosestNode(NumberVector<?> vec,
int tlevel)
Find the closest node (of depth tlevel or above, if there is no node at
this depth) for the given vector.
|
private double |
getShiftedDim(NumberVector<?> obj,
int dim,
int level)
Shift and wrap a single dimension.
|
private double[] shift
private double[] min
private double[] width
private int nmin
ALOCI.Node root
private Relation<? extends NumberVector<?>> relation
public ALOCI.ALOCIQuadTree(double[] min,
double[] max,
double[] shift,
int nmin,
Relation<? extends NumberVector<?>> relation)
min - Minimum coordinatesmax - Maximum coordinatesshift - Tree shift offsetnmin - Maximum size for a page to splitrelation - Relation to indexprivate void bulkLoad(double[] lmin,
double[] lmax,
List<ALOCI.Node> children,
ArrayModifiableDBIDs ids,
int start,
int end,
int dim,
int level,
int code)
lmin - Subtree minimum (unshifted, will be modified)lmax - Subtree maximum (unshifted, will be modified)children - List of children for current parentids - IDs to processstart - Start of ids subintervalend - End of ids subintervaldim - Current dimensionlevel - Current tree levelcode - Bit code of node positionprivate double getShiftedDim(NumberVector<?> obj, int dim, int level)
obj - Objectdim - Dimensionlevel - Level (controls scaling/wraping!)public ALOCI.Node findClosestNode(NumberVector<?> vec, int tlevel)
vec - Query vectortlevel - Target level