ec.gp
Class GPSetType

java.lang.Object
  extended by ec.gp.GPType
      extended by ec.gp.GPSetType
All Implemented Interfaces:
Clique, Setup, java.io.Serializable

public final class GPSetType
extends GPType

A GPSetType is a GPType which contains GPAtomicTypes in a set, and is used as a generic GP type. For more information, see GPType GPSetTypes implement their set using both a hash table and an array. if the size of the set is "significantly big", then the hash table is used to look up membership in the set (O(1), but with a big constant). If the size is small, then the array is used (O(n)). The dividing line is determined by the constant START_USING_HASH_BEYOND, which you might play with to optimize for your system.

Version:
1.0
Author:
Sean Luke
See Also:
GPType, Serialized Form

Field Summary
static java.lang.String P_MEMBER
           
static java.lang.String P_SIZE
           
 java.util.Hashtable types_h
          The hashtable of types in the set
 int[] types_packed
          A packed, sorted array of atomic types in the set
 boolean[] types_sparse
          A sparse array of atomic types in the set
 
Fields inherited from class ec.gp.GPType
name, P_NAME, type
 
Constructor Summary
GPSetType()
          You should not construct new types.
 
Method Summary
 boolean compatibleWith(GPInitializer initializer, GPType t)
          Am I compatible with ("fit" with) t? For two atomic types, this is done by direct pointer equality.
 void postProcessSetType(int totalAtomicTypes)
          Sets up the packed and sparse arrays based on the hashtable
 void setup(EvolutionState state, Parameter base)
          Sets up the object by reading it from the parameters stored in state, built off of the parameter base base.
 
Methods inherited from class ec.gp.GPType
toString, typeFor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

P_MEMBER

public static final java.lang.String P_MEMBER
See Also:
Constant Field Values

P_SIZE

public static final java.lang.String P_SIZE
See Also:
Constant Field Values

types_packed

public int[] types_packed
A packed, sorted array of atomic types in the set


types_sparse

public boolean[] types_sparse
A sparse array of atomic types in the set


types_h

public java.util.Hashtable types_h
The hashtable of types in the set

Constructor Detail

GPSetType

public GPSetType()
You should not construct new types.

Method Detail

postProcessSetType

public void postProcessSetType(int totalAtomicTypes)
Sets up the packed and sparse arrays based on the hashtable


setup

public void setup(EvolutionState state,
                  Parameter base)
Description copied from interface: Setup
Sets up the object by reading it from the parameters stored in state, built off of the parameter base base. If an ancestor implements this method, be sure to call super.setup(state,base); before you do anything else.

Specified by:
setup in interface Setup
Overrides:
setup in class GPType

compatibleWith

public final boolean compatibleWith(GPInitializer initializer,
                                    GPType t)
Description copied from class: GPType
Am I compatible with ("fit" with) t? For two atomic types, this is done by direct pointer equality. For two set types, this is done by determining if the intersection is nonempty. A set type is compatible with an atomic type if it contains the atomic type in its set.

Specified by:
compatibleWith in class GPType