예제 #1
0
파일: opt_func.c 프로젝트: btbytes/ci
/************************************************************
*     Function:
*
*   Parameters:
*
*      Returns:
*
*  Description:
*
*************************************************************/
double OPT_Function_Routines (int fun_idx,int dim, double *para)
{
    double result;
    switch (fun_idx)
    {
        case F6:
          result = f6(para);
          break;
        case SPHERE:
          result = sphere(dim,para);
          break;
        case ROSENBROCK:
          result = rosenbrock(dim,para);
          break;
        case RASTRIGRIN:
          result = rastrigrin(dim,para);
          break;
        case GRIEWANK:
          result = griewank(dim,para);
          break;
        default:
          break;
    }

    return(result);
}
double MyHCJob19::basic_func(int func_no, double *x,int length) {
	double result = 0.0;
	switch(func_no) {
		case 0:
		case 1:
			result = ackley(x,length);
			break;
		case 2:
		case 3:
			result = rastrigin(x,length);
			break;
		case 4:
		case 5:
			result = sphere(x,length);
			break;
		case 6:
		case 7:
			result = weierstrass(x,length);
			break;
		case 8:
		case 9:
			result = griewank(x,length);
			break;
		default:
			printf("func_no is out of range.");
			exit(-1);
	}
	return (result);
}
double MyHCJob24::basic_func(int func_no, double *x,int length) {
	double result = 0.0;
	// This part is according to Matlab reference code
	switch(func_no) {
		case 0:
			result = weierstrass(x,length);
			break;
		case 1:
			result = EScafferF6(x,length);
			break;
		case 2:
			result = F8F2(x,length);
			break;
		case 3:
			result = ackley(x,length);
			break;
		case 4:
			result = rastrigin(x,length);
			break;
		case 5:
			result = griewank(x,length);
			break;
		case 6:
			result = EScafferF6NonCont(x,length);
			break;
		case 7:
			result = rastriginNonCont(x,length);
			break;
		case 8:
			result = elliptic(x,length);
			break;
		case 9:
			result = sphere_noise(x,length);
			break;
		default:
			puts("func_no is out of range.");
			exit(-1);
	}
	return (result);
}