
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 ObjectHeap<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 ObjectHeap<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 ObjectHeap<HilOut.HilFeature> out
private ObjectHeap<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