
class HilOut.HilbertFeatures extends Object
| Modifier and Type | Field and Description | 
|---|---|
| (package private) double | diameterData space diameter | 
| (package private) double[] | minData space minimums | 
| private Heap<HilOut.HilFeature> | out"OUT" | 
| (package private) HilOut.HilFeature[] | pfHilbert representation ("point features") | 
| (package private) Relation<O> | relationRelation indexed | 
| (package private) double | shiftCurrent curve shift | 
| private Set<HilOut.HilFeature> | topTop 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