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 F11::compute(vector<double> x){ int i,k; double result=0.0; if(Ovector==NULL) { Ovector=createShiftVector(dimension,minX,maxX); Pvector=createPermVector(dimension); RotMatrix=createRotMatrix1D(nonSeparableGroupSize); } for(i=0;i<dimension;i++) { anotherz[i]=x[i]-Ovector[i]; } for(k=1;k<=dimension/(2*nonSeparableGroupSize);k++) { result+=rot_ackley(anotherz,nonSeparableGroupSize,k); } // printf("Rot Ackley = %1.16E\n", result); double sepSum = ackley(anotherz,dimension,2); // printf("Separable Ackley = %1.16E\n", sepSum); result+=sepSum; return(result); }
double F10::compute(double*x){ int i; double result=0.0; if(Ovector==NULL) { Ovector = readOvector(); Pvector = readPermVector(); r25 = readR(25); r50 = readR(50); r100 = readR(100); s = readS(s_size); w = readW(s_size); } for(i=0;i<dimension;i++) { anotherz[i]=x[i]-Ovector[i]; } // s_size non-separable part with rotation int c = 0; for (i = 0; i < s_size; i++) { // cout<<"c="<<c<<", i="<<i<<endl; anotherz1 = rotateVector(i, c); // cout<<"done rot"<<endl; result += w[i] * ackley(anotherz1, s[i]); delete []anotherz1; // cout<<result<<endl; } update(result); 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); }