com.flaptor.hist4j
Class HistogramForkNode

java.lang.Object
  extended by com.flaptor.hist4j.HistogramNode
      extended by com.flaptor.hist4j.HistogramForkNode
All Implemented Interfaces:
java.io.Serializable

public class HistogramForkNode
extends HistogramNode

The HistogramForkNode splits the data range in two at a given value, pointing to two subtrees, one for values smaller than the split value, and one for values larger than the split value. It implements the recursive calls necesary to obtain the data from the tree structure.

Author:
Jorge Handl
See Also:
Serialized Form

Constructor Summary
HistogramForkNode(float splitValue, HistogramNode left, HistogramNode right)
          Creates a fork node with the given split value and subtrees.
 
Method Summary
 HistogramNode addValue(AdaptiveHistogram root, float value)
          Adds a value to the histogram by recursively adding the value to either subtree, depending on the split value.
 void apply(AdaptiveHistogram.ValueConversion valueConversion)
          Applies a convertion function to the values stored in the histogram.
 long getAccumCount(float value)
          Returns the cumulative density function for a given data point.
 long getCount(float value)
          Returns the number of data points stored in the same bucket as a given value.
 java.lang.Float getValueForAccumCount(long[] accumCount)
          Returns the data point where the running cumulative count reaches the target cumulative count.
 void reset()
          Clears the fork node, recursively erasing the subtrees.
 void show(int level)
          Prints the data for the nodes in its subtrees.
 void toTable(java.util.ArrayList<Cell> table)
          Build the table representing the histogram data adding the data from each subtree.
 
Methods inherited from class com.flaptor.hist4j.HistogramNode
margin
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HistogramForkNode

public HistogramForkNode(float splitValue,
                         HistogramNode left,
                         HistogramNode right)
Creates a fork node with the given split value and subtrees.

Parameters:
splitValue - the value that splits both subtrees.
left - the left subtree.
right - the right subtree.
Method Detail

reset

public void reset()
Clears the fork node, recursively erasing the subtrees.

Specified by:
reset in class HistogramNode

addValue

public HistogramNode addValue(AdaptiveHistogram root,
                              float value)
Adds a value to the histogram by recursively adding the value to either subtree, depending on the split value.

Specified by:
addValue in class HistogramNode
Parameters:
root - a reference to the adaptive histogram instance that uses this structure.
value - the value for which the count is to be incremented.
Returns:
A reference to itself.

getCount

public long getCount(float value)
Returns the number of data points stored in the same bucket as a given value.

Specified by:
getCount in class HistogramNode
Parameters:
value - the reference data point.
Returns:
the number of data points stored in the same bucket as the reference point.

getAccumCount

public long getAccumCount(float value)
Returns the cumulative density function for a given data point.

Specified by:
getAccumCount in class HistogramNode
Parameters:
value - the reference data point.
Returns:
the cumulative density function for the reference point.

getValueForAccumCount

public java.lang.Float getValueForAccumCount(long[] accumCount)
Returns the data point where the running cumulative count reaches the target cumulative count.

Specified by:
getValueForAccumCount in class HistogramNode
Parameters:
accumCount - accumCount[0] the running cumulative count. accumCount[1] the target cumulative count.
Returns:
the data point where the running cumulative count reaches the target cumulative count.

apply

public void apply(AdaptiveHistogram.ValueConversion valueConversion)
Applies a convertion function to the values stored in the histogram.

Specified by:
apply in class HistogramNode
Parameters:
valueConversion - a class that defines a function to convert the value.

show

public void show(int level)
Prints the data for the nodes in its subtrees.

Specified by:
show in class HistogramNode
Parameters:
level - the level of this node in the tree.

toTable

public void toTable(java.util.ArrayList<Cell> table)
Build the table representing the histogram data adding the data from each subtree.

Specified by:
toTable in class HistogramNode