Package ec.gp
Class GPSetType
java.lang.Object
ec.gp.GPType
ec.gp.GPSetType
- All Implemented Interfaces:
Clique,Setup,Serializable
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.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleancompatibleWith(GPInitializer initializer, GPType t) Am I compatible with ("fit" with) t? For two atomic types, this is done by direct pointer equality.voidpostProcessSetType(int totalAtomicTypes) Sets up the packed and sparse arrays based on the hashtablevoidsetup(EvolutionState state, Parameter base) Sets up the object by reading it from the parameters stored in state, built off of the parameter base base.
-
Field Details
-
P_MEMBER
- See Also:
-
P_SIZE
- See Also:
-
types_packed
public int[] types_packedA packed, sorted array of atomic types in the set -
types_sparse
public boolean[] types_sparseA sparse array of atomic types in the set -
types_h
The hashtable of types in the set
-
-
Constructor Details
-
GPSetType
public GPSetType()You should not construct new types.
-
-
Method Details
-
postProcessSetType
public void postProcessSetType(int totalAtomicTypes) Sets up the packed and sparse arrays based on the hashtable -
setup
Description copied from interface:SetupSets 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. -
compatibleWith
Description copied from class:GPTypeAm 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:
compatibleWithin classGPType
-