hep.aida.bin

## Class AbstractBin1D

- java.lang.Object
- - cern.colt.PersistentObject
  - - hep.aida.bin.AbstractBin
    - - hep.aida.bin.AbstractBin1D

- All Implemented Interfaces:
    DoubleBufferConsumer, java.io.Serializable, java.lang.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:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class cern.colt.PersistentObject

      `serialVersionUID`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `add(double element)` Adds the specified element to the receiver.
    `void` | `addAllOf(DoubleArrayList list)` 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.
    `DoubleBuffer` | `buffered(int capacity)` Constructs and returns a streaming buffer connected to the receiver.
    `java.lang.String` | `compareWith(AbstractBin1D other)` Computes the deviations from the receiver's measures to another bin's measures.
    `boolean` | `equals(java.lang.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` | `mean()` Returns the arithmetic mean, which is `Sum( x[i] ) / size()`.
    `abstract double` | `min()` Returns the minimum.
    `double` | `rms()` Returns the rms (Root Mean Square), which is `Math.sqrt( Sum( x[i]*x[i] ) / size() )`.
    `double` | `standardDeviation()` Returns the sample standard deviation, which is `Math.sqrt(variance())`.
    `double` | `standardError()` 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` | `sumOfSquares()` Returns the sum of squares, which is `Sum( x[i] * x[i] )`.
    `java.lang.String` | `toString()` Returns a String representation of the receiver.
    `void` | `trimToSize()` Trims the capacity of the receiver to be the receiver's current size.
    `double` | `variance()` 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

      `getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### 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:
        `java.lang.IndexOutOfBoundsException` - if `list.size()>0 && (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 java.lang.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(java.lang.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.

    - #### 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 java.lang.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)`.

Jump to the Colt Homepage