Package hep.aida.bin

Class AbstractBin1D

All Implemented Interfaces:
DoubleBufferConsumer, Serializable, Cloneable
Direct Known Subclasses:
StaticBin1D

public abstract class AbstractBin1D extends AbstractBin implements DoubleBufferConsumer
Abstract base class for all 1-dimensional bins consumes double elements. First see the package summary and javadoc tree view to get the broad picture.

This class is fully thread safe (all public methods are synchronized). Thus, you can have one or more threads adding to the bin as well as one or more threads reading and viewing the statistics of the bin while it is filled. For high performance, add data in large chunks (buffers) via method addAllOf rather than piecewise via method add.

Version:
0.9, 03-Jul-99
See Also:
  • Field Summary

    Fields inherited from class cern.colt.PersistentObject

    serialVersionUID
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Makes this class non instantiable, but still let's others inherit from it.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    add(double element)
    Adds the specified element to the receiver.
    final void
    Adds all values of the specified list to the receiver.
    void
    addAllOfFromTo(DoubleArrayList list, int from, int to)
    Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver.
    buffered(int capacity)
    Constructs and returns a streaming buffer connected to the receiver.
    Computes the deviations from the receiver's measures to another bin's measures.
    boolean
    equals(Object object)
    Returns whether two bins are equal; They are equal if the other object is of the same class or a subclass of this class and both have the same size, minimum, maximum, sum and sumOfSquares.
    abstract double
    max()
    Returns the maximum.
    double
    Returns the arithmetic mean, which is Sum( x[i] ) / size().
    abstract double
    min()
    Returns the minimum.
    protected double
    relError(double measure1, double measure2)
    Computes the relative error (in percent) from one measure to another.
    double
    rms()
    Returns the rms (Root Mean Square), which is Math.sqrt( Sum( x[i]*x[i] ) / size() ).
    double
    Returns the sample standard deviation, which is Math.sqrt(variance()).
    double
    Returns the sample standard error, which is Math.sqrt(variance() / size())
    abstract double
    sum()
    Returns the sum of all elements, which is Sum( x[i] ).
    abstract double
    Returns the sum of squares, which is Sum( x[i] * x[i] ).
    Returns a String representation of the receiver.
    void
    Trims the capacity of the receiver to be the receiver's current size.
    double
    Returns the sample variance, which is Sum( (x[i]-mean())2 ) / (size()-1).

    Methods inherited from class hep.aida.bin.AbstractBin

    center, center, clear, error, error, isRebinnable, offset, offset, size, value, value

    Methods inherited from class cern.colt.PersistentObject

    clone

    Methods inherited from class java.lang.Object

    finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AbstractBin1D

      protected AbstractBin1D()
      Makes this class non instantiable, but still let's others inherit from it.
  • Method Details

    • add

      public abstract void add(double element)
      Adds the specified element to the receiver.
      Parameters:
      element - element to be appended.
    • addAllOf

      public final void addAllOf(DoubleArrayList list)
      Adds all values of the specified list to the receiver.
      Specified by:
      addAllOf in interface DoubleBufferConsumer
      Parameters:
      list - the list of which all values shall be added.
    • addAllOfFromTo

      public void addAllOfFromTo(DoubleArrayList list, int from, int to)
      Adds the part of the specified list between indexes from (inclusive) and to (inclusive) to the receiver. You may want to override this method for performance reasons.
      Parameters:
      list - 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).
      Throws:
      IndexOutOfBoundsException - if list.size()>0 invalid input: '&'invalid input: '&' (from<0 || from>to || to>=list.size()).
    • buffered

      public DoubleBuffer buffered(int capacity)
      Constructs and returns a streaming buffer connected to the receiver. Whenever the buffer is full it's contents are automatically flushed to this. (Addding elements via a buffer to a bin is significantly faster than adding them directly.)
      Parameters:
      capacity - the number of elements the buffer shall be capable of holding before overflowing and flushing to the receiver.
      Returns:
      a streaming buffer having the receiver as target.
    • compareWith

      public String compareWith(AbstractBin1D other)
      Computes the deviations from the receiver's measures to another bin's measures.
      Parameters:
      other - the other bin to compare with
      Returns:
      a summary of the deviations.
    • equals

      public boolean equals(Object object)
      Returns whether two bins are equal; They are equal if the other object is of the same class or a subclass of this class and both have the same size, minimum, maximum, sum and sumOfSquares.
      Overrides:
      equals in class AbstractBin
    • max

      public abstract double max()
      Returns the maximum.
    • mean

      public double mean()
      Returns the arithmetic mean, which is Sum( x[i] ) / size().
    • min

      public abstract double min()
      Returns the minimum.
    • relError

      protected double relError(double measure1, double measure2)
      Computes the relative error (in percent) from one measure to another.
    • rms

      public double rms()
      Returns the rms (Root Mean Square), which is Math.sqrt( Sum( x[i]*x[i] ) / size() ).
    • standardDeviation

      public double standardDeviation()
      Returns the sample standard deviation, which is Math.sqrt(variance()).
    • standardError

      public double standardError()
      Returns the sample standard error, which is Math.sqrt(variance() / size())
    • sum

      public abstract double sum()
      Returns the sum of all elements, which is Sum( x[i] ).
    • sumOfSquares

      public abstract double sumOfSquares()
      Returns the sum of squares, which is Sum( x[i] * x[i] ).
    • toString

      public String toString()
      Returns a String representation of the receiver.
      Overrides:
      toString in class AbstractBin
    • trimToSize

      public void trimToSize()
      Trims the capacity of the receiver to be the receiver's current size. Releases any superfluos internal memory. An application can use this operation to minimize the storage of the receiver. This default implementation does nothing.
      Overrides:
      trimToSize in class AbstractBin
    • variance

      public double variance()
      Returns the sample variance, which is Sum( (x[i]-mean())2 ) / (size()-1).