/** * @note Can be used to prevent unnecessary burning of CPU time. */ int coco_problem_final_target_hit(const coco_problem_t *problem) { assert(problem != NULL); if (coco_problem_get_number_of_objectives(problem) != 1 || coco_problem_get_evaluations(problem) < 1) return 0; if (problem->best_value == NULL) return 0; return problem->best_observed_fvalue[0] <= problem->best_value[0] + problem->final_target_delta[0] ? 1 : 0; }
/* The gateway function */ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { long long *ref; coco_problem_t *problem = NULL; const mwSize dims[2] = {1, 1}; int *res; /* check for proper number of arguments */ if(nrhs!=1) { mexErrMsgIdAndTxt("cocoProblemGetEvaluations:nrhs","One input required."); } /* get the problem */ ref = (long long *)mxGetData(prhs[0]); problem = (coco_problem_t *)(*ref); /* prepare the return value */ plhs[0] = mxCreateNumericArray(2, dims, mxINT32_CLASS, mxREAL); res = (int *)mxGetData(plhs[0]); res[0] = coco_problem_get_evaluations(problem); }