JIU 0.14.3

net.sourceforge.jiu.color.data
Class OnDemandHistogram3D

java.lang.Object
  extended by net.sourceforge.jiu.color.data.OnDemandHistogram3D
All Implemented Interfaces:
Histogram3D

public class OnDemandHistogram3D
extends Object
implements Histogram3D

A data class for a three-dimensional histogram, creating counters on demand only, not allocating counters for all possible entries at the beginning. The creation on demand happens to save space.

Note: Rewrote from scratch for version 0.15.0 to use hash tables instead of int arrays. New version creates and throws away a lot of objects, which had been a problem with early JVMs but should be OK these days.

Author:
Marco Schmidt

Constructor Summary
OnDemandHistogram3D(int max1, int max2, int max3)
          Creates a new histogram, internally creates the hash table for triplet values.
 
Method Summary
 void clear()
          Sets all counters to zero.
 int getEntry(int index1, int index2, int index3)
          Returns the counter value of (index1, index2, index3).
 int getMaxValue(int index)
          Returns the maximum index value for one of the three indexes.
 int getNumUsedEntries()
          Returns the number of used entries (those entries with a counter value larger than zero).
 void increaseEntry(int index1, int index2, int index3)
          Increases the counter value of (index1, index2, index3) by one.
 void setEntry(int index1, int index2, int index3, int newValue)
          Sets the counter value of (index1, index2, index3) to newValue.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OnDemandHistogram3D

public OnDemandHistogram3D(int max1,
                           int max2,
                           int max3)
Creates a new histogram, internally creates the hash table for triplet values.

Method Detail

clear

public void clear()
Description copied from interface: Histogram3D
Sets all counters to zero.

Specified by:
clear in interface Histogram3D

getEntry

public int getEntry(int index1,
                    int index2,
                    int index3)
Description copied from interface: Histogram3D
Returns the counter value of (index1, index2, index3).

Specified by:
getEntry in interface Histogram3D
Parameters:
index1 - first of the three values forming the threedimensional index
index2 - second of the three values forming the threedimensional index
index3 - three of the three values forming the threedimensional index
Returns:
the counter value of the desired index

getMaxValue

public int getMaxValue(int index)
                throws IllegalArgumentException
Description copied from interface: Histogram3D
Returns the maximum index value for one of the three indexes.

Specified by:
getMaxValue in interface Histogram3D
Throws:
IllegalArgumentException - if the index formed by the arguments is invalid

getNumUsedEntries

public int getNumUsedEntries()
Description copied from interface: Histogram3D
Returns the number of used entries (those entries with a counter value larger than zero).

Specified by:
getNumUsedEntries in interface Histogram3D
Returns:
number of non-zero counter values

increaseEntry

public void increaseEntry(int index1,
                          int index2,
                          int index3)
Description copied from interface: Histogram3D
Increases the counter value of (index1, index2, index3) by one. This method can be implemented by the one-liner setEntry(index1, index2, index3, getEntry(index1, index2, index3) + 1); However, implementations of this method may take advantage of implementation details to provide a more efficient approach.

Specified by:
increaseEntry in interface Histogram3D
Parameters:
index1 - first of the three values forming the threedimensional index
index2 - second of the three values forming the threedimensional index
index3 - three of the three values forming the threedimensional index

setEntry

public void setEntry(int index1,
                     int index2,
                     int index3,
                     int newValue)
Description copied from interface: Histogram3D
Sets the counter value of (index1, index2, index3) to newValue.

Specified by:
setEntry in interface Histogram3D
Parameters:
index1 - first of the three values forming the threedimensional index
index2 - second of the three values forming the threedimensional index
index3 - three of the three values forming the threedimensional index
newValue - the counter value that is assigned to the argument index

JIU 0.14.3

Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Marco Schmidt