public static void apply(Program program, LGP manager, RandEngine randEngine)
   {
      double micro_mutate_operator_rate = manager.getMicroMutateOperatorRate();
      double micro_mutate_register_rate = manager.getMicroMutateRegisterRate();
      double micro_mutate_constant_rate = manager.getMicroMutateConstantRate();

      double sum = micro_mutate_constant_rate + micro_mutate_operator_rate + micro_mutate_register_rate;

      micro_mutate_register_rate /= sum;
      micro_mutate_operator_rate /= sum;

      double operator_sector = micro_mutate_operator_rate;
      double register_sector = operator_sector + micro_mutate_register_rate;

      double r = randEngine.uniform();
      if (r < operator_sector)
      {
         mutateInstructionOperator(program, randEngine);
      }
      else if (r < register_sector)
      {
         mutateInstructionRegister(program,randEngine);
      }
      else
      {
         mutateInstructionConstant(program, manager, randEngine);
      }

      program.invalidateCost();
   }
public static void apply ( Program program , LGP manager , RandEngine randEngine ) { double micro_mutate_operator_rate = manager . getMicroMutateOperatorRate ( ) ; double micro_mutate_register_rate = manager . getMicroMutateRegisterRate ( ) ; double micro_mutate_constant_rate = manager . getMicroMutateConstantRate ( ) ; double sum = micro_mutate_constant_rate + micro_mutate_operator_rate + micro_mutate_register_rate ; micro_mutate_register_rate /= sum ; micro_mutate_operator_rate /= sum ; double operator_sector = micro_mutate_operator_rate ; double register_sector = operator_sector + micro_mutate_register_rate ; double r = randEngine . uniform ( ) ; if ( r < operator_sector ) { mutateInstructionOperator ( program , randEngine ) ; } else if ( r < register_sector ) { mutateInstructionRegister ( program , randEngine ) ; } else { mutateInstructionConstant ( program , manager , randEngine ) ; } program . invalidateCost ( ) ; }
/ </summary>