Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math.util
Class MultidimensionalCounter

    java.lang.Object
      org.apache.commons.math.util.MultidimensionalCounter

All Implemented Interfaces:
  Iterable<Integer>

    public class MultidimensionalCounter

extends Object
implements Iterable<Integer>

Converter between unidimensional storage structure and multidimensional conceptual structure. This utility will convert from indices in a multidimensional structure to the corresponding index in a one-dimensional array. For example, assuming that the ranges (in 3 dimensions) of indices are 2, 4 and 3, the following correspondences, between 3-tuples indices and unidimensional indices, will hold:

- (0, 0, 0) corresponds to 0
- (0, 0, 1) corresponds to 1
- (0, 0, 2) corresponds to 2
- (0, 1, 0) corresponds to 3
- ...
- (1, 0, 0) corresponds to 12
- ...
- (1, 3, 2) corresponds to 23

Since:
  2.2
Version:
  $Revision$ $Date$

Nested Class Summary
`class` | `MultidimensionalCounter.Iterator` Perform iteration over the multidimensional counter.

Constructor Summary
`MultidimensionalCounter(int... size)` Create a counter.

Method Summary
`int` | `getCount(int... c)` Convert to unidimensional counter.
`int[]` | `getCounts(int index)` Convert to multidimensional counter.
`int` | `getDimension()` Get the number of dimensions of the multidimensional counter.
`int` | `getSize()` Get the total number of elements.
`int[]` | `getSizes()` Get the number of multidimensional counter slots in each dimension.
`MultidimensionalCounter.Iterator` | `iterator()` Create an iterator over this counter.
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### MultidimensionalCounter

    public MultidimensionalCounter(int... size)

  Create a counter.

  Parameters:
    `size` - Counter sizes (number of slots in each dimension).
  Throws:
    `NotStrictlyPositiveException` - if one of the sizes is negative or zero.

Method Detail

### iterator

    public MultidimensionalCounter.Iterator iterator()

  Create an iterator over this counter.

  Specified by:
    `iterator` in interface `Iterable<Integer>`
  Returns:
    the iterator.

### getDimension

    public int getDimension()

  Get the number of dimensions of the multidimensional counter.

  Returns:
    the number of dimensions.

### getCounts

    public int[] getCounts(int index)

  Convert to multidimensional counter.

  Parameters:
    `index` - Index in unidimensional counter.
  Returns:
    the multidimensional counts.
  Throws:
    `OutOfRangeException` - if `index` is not between `0` and the value returned by `getSize()` (excluded).

### getCount

    public int getCount(int... c)
                 throws OutOfRangeException

  Convert to unidimensional counter.

  Parameters:
    `c` - Indices in multidimensional counter.
  Returns:
    the index within the unidimensionl counter.
  Throws:
    `DimensionMismatchException` - if the size of `c` does not match the size of the array given in the constructor.
    `OutOfRangeException` - if a value of `c` is not in the range of the corresponding dimension, as defined in the `constructor`.

### getSize

    public int getSize()

  Get the total number of elements.

  Returns:
    the total size of the unidimensional counter.

### getSizes

    public int[] getSizes()

  Get the number of multidimensional counter slots in each dimension.

  Returns:
    the sizes of the multidimensional counter in each dimension.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.