public void Generate( GPGeneType type )
{
// gene type
this.type = type;
// gene value
val = rand.Next( ( type == GPGeneType.Function ) ? FunctionsCount : variablesCount );
// arguments count
argumentsCount = ( type == GPGeneType.Argument ) ? 0 :
( val <= (int) Functions.Divide ) ? 2 : 1;
}