/** * @brief Creates the transformation. */ static coco_problem_t *transform_obj_oscillate(coco_problem_t *inner_problem) { coco_problem_t *problem; problem = coco_problem_transformed_allocate(inner_problem, NULL, NULL); problem->evaluate_function = transform_obj_oscillate_evaluate; /* Compute best value */ /* Maybe not the most efficient solution */ transform_obj_oscillate_evaluate(problem, problem->best_parameter, problem->best_value); return problem; }
/** * Oscillate the objective value of the inner problem. * * Caveat: this can change best_parameter and best_value. */ static coco_problem_t *f_transform_obj_oscillate(coco_problem_t *inner_problem) { coco_problem_t *self; self = coco_transformed_allocate(inner_problem, NULL, NULL); self->evaluate_function = transform_obj_oscillate_evaluate; /* Compute best value */ /* Maybe not the most efficient solution */ transform_obj_oscillate_evaluate(self, self->best_parameter, self->best_value); return self; }