class HilOut.HilbertFeatures extends Object
Modifier and Type | Field and Description |
---|---|
(package private) double |
diameter
Data space diameter
|
(package private) double[] |
min
Data space minimums
|
private Heap<HilOut.HilFeature> |
out
"OUT"
|
(package private) HilOut.HilFeature[] |
pf
Hilbert representation ("point features")
|
(package private) Relation<O> |
relation
Relation indexed
|
(package private) double |
shift
Current curve shift
|
private Set<HilOut.HilFeature> |
top
Top candidates
|
private Heap<HilOut.HilFeature> |
wlb
"WLB"
|
Constructor and Description |
---|
HilOut.HilbertFeatures(Relation<O> relation,
double[] min,
double diameter)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private double |
boxRadius(int i,
int a,
int b)
boxRadius function calculate the Boxradius
|
private double |
fastUpperBound(int i)
fastUpperBound function calculates an upper Bound as k*maxDist(pf[i],
smallest neighborhood)
|
private double |
getDimForObject(NumberVector<?> obj,
int dim)
Get the (projected) position of the object in dimension dim.
|
private void |
initialize(double shift)
Hilbert function to fill pf with shifted Hilbert values.
|
private double |
maxDistLevel(DBID id,
int level)
maxDist function calculate the maximal Distance from Vector p to the
border of the corresponding r-region at the given level
|
private int |
maxRegLevel(int ref,
int q)
Level of the maximum region containing ref but not q
|
private double |
minDistLevel(DBID id,
int level)
minDist function calculate the minimal Distance from Vector p to the
border of the corresponding r-region at the given level
|
private int |
minRegLevel(int a,
int b)
minReg function calculate the minimal r-region level containing two
points
|
private int |
numberSharedLevels(long[] a,
long[] b)
Number of levels shared
|
private void |
updateOUT(int i)
updateOUT function inserts pf[i] in out.
|
private void |
updateWLB(int i)
updateWLB function inserts pf[i] in wlb.
|
Relation<O extends NumberVector<?>> relation
HilOut.HilFeature[] pf
double[] min
double diameter
double shift
private Set<HilOut.HilFeature> top
private Heap<HilOut.HilFeature> out
private Heap<HilOut.HilFeature> wlb
private void initialize(double shift)
shift
- the new shift factorprivate void updateOUT(int i)
i
- position in pf of the feature to be insertedprivate void updateWLB(int i)
i
- position in pf of the feature to be insertedprivate double fastUpperBound(int i)
i
- position in pf of the feature for which the bound should be
calculatedprivate double minDistLevel(DBID id, int level)
id
- Object IDlevel
- Level of the corresponding r-regionprivate double maxDistLevel(DBID id, int level)
id
- Object IDlevel
- Level of the corresponding r-regionprivate int numberSharedLevels(long[] a, long[] b)
a
- First bitsetb
- Second bitsetprivate int minRegLevel(int a, int b)
a
- index of first point in pfb
- index of second point in pfprivate int maxRegLevel(int ref, int q)
ref
- Reference pointq
- Query pointprivate double boxRadius(int i, int a, int b)
i
- index of first pointa
- index of second pointb
- index of third pointprivate double getDimForObject(NumberVector<?> obj, int dim)
obj
- Objectdim
- Dimension