void operator_mutate_erc_start ( population *oldpop, void *data ) { mutate_erc_data * md; select_context_func_ptr select_con; md = (mutate_erc_data *)data; select_con = get_select_context ( md->sname ); md->sc = select_con ( SELECT_INIT, NULL, oldpop, md->sname ); }
void operator_crossover_start ( population *oldpop, void *data ) { crossover_data * cd; select_context_func_ptr select_con; cd = (crossover_data *)data; select_con = get_select_context ( cd->sname ); cd->sc = select_con ( SELECT_INIT, NULL, oldpop, cd->sname ); /* if there is a separate selection method specified for the second parent... */ if ( cd->sname2 != cd->sname ) { /* ...then initialize it too. */ select_con = get_select_context ( cd->sname2 ); cd->sc2 = select_con ( SELECT_INIT, NULL, oldpop, cd->sname2 ); } else /* ...otherwise use the first context. */ cd->sc2 = cd->sc; }