public double Evaluate( IChromosome chromosome )
{
double[] xy;
// do native translation first
xy = Translate( chromosome );
// get function value
double functionValue = OptimizationFunction( xy[0], xy[1] );
// return fitness value
return ( mode == Modes.Maximization ) ? functionValue : 1 / functionValue;
}