cern.jet.stat.quantile
Interface DoubleQuantileFinder

All Superinterfaces:
java.io.Serializable

public interface DoubleQuantileFinder
extends java.io.Serializable

The interface shared by all quantile finders, no matter if they are exact or approximate. It is usually completely sufficient to operate on this interface only. Also see QuantileBin1D, demonstrating how this package can be used.


Method Summary
 void add(double value)
          Adds a value to the receiver.
 void addAllOf(DoubleArrayList values)
          Adds all values of the specified list to the receiver.
 void addAllOfFromTo(DoubleArrayList values, int from, int to)
          Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver.
 void clear()
          Removes all elements from the receiver.
 java.lang.Object clone()
          Returns a deep copy of the receiver.
 boolean forEach(DoubleProcedure procedure)
          Applies a procedure to each element of the receiver, if any.
 long memory()
          Returns the number of elements currently needed to store all contained elements.
 double phi(double element)
          Returns how many percent of the elements contained in the receiver are <= element.
 DoubleArrayList quantileElements(DoubleArrayList phis)
          Computes the specified quantile elements over the values previously added.
 long size()
          Returns the number of elements currently contained in the receiver (identical to the number of values added so far).
 long totalMemory()
          Returns the number of elements currently needed to store all contained elements.
 

Method Detail

add

void add(double value)
Adds a value to the receiver.

Parameters:
value - the value to add.

addAllOf

void addAllOf(DoubleArrayList values)
Adds all values of the specified list to the receiver.

Parameters:
values - the list of which all values shall be added.

addAllOfFromTo

void addAllOfFromTo(DoubleArrayList values,
                    int from,
                    int to)
Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver.

Parameters:
values - the list of which elements shall be added.
from - the index of the first element to be added (inclusive).
to - the index of the last element to be added (inclusive).

clear

void clear()
Removes all elements from the receiver. The receiver will be empty after this call returns, and its memory requirements will be close to zero.


clone

java.lang.Object clone()
Returns a deep copy of the receiver.

Returns:
a deep copy of the receiver.

forEach

boolean forEach(DoubleProcedure procedure)
Applies a procedure to each element of the receiver, if any. Iterates over the receiver in no particular order.

Parameters:
procedure - the procedure to be applied. Stops iteration if the procedure returns false, otherwise continues.
Returns:
false if the procedure stopped before all elements where iterated over, true otherwise.

memory

long memory()
Returns the number of elements currently needed to store all contained elements. This number usually differs from the results of method size(), according to the underlying datastructure.


phi

double phi(double element)
Returns how many percent of the elements contained in the receiver are <= element. Does linear interpolation if the element is not contained but lies in between two contained elements. Writing a wrapper is a good idea if you can think of better ways of doing interpolation. Same if you want to keep min,max and other such measures.

Parameters:
the - element to search for.
Returns:
the percentage p of elements <= element (0.0 <= p <=1.0).

quantileElements

DoubleArrayList quantileElements(DoubleArrayList phis)
Computes the specified quantile elements over the values previously added.

Parameters:
phis - the quantiles for which elements are to be computed. Each phi must be in the interval [0.0,1.0]. phis must be sorted ascending.
Returns:
the quantile elements.

size

long size()
Returns the number of elements currently contained in the receiver (identical to the number of values added so far).


totalMemory

long totalMemory()
Returns the number of elements currently needed to store all contained elements. This number usually differs from the results of method size(), according to the underlying datastructure.