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 F4::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]; } // for (int i = 0; i < dimension; ++i) // { // cout<<anotherz[i]<<endl; // } // cout<<endl; // // T_{osz} // transform_osz(anotherz); // 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] * elliptic(anotherz1, s[i]); delete []anotherz1; // cout<<result<<endl; } // one separable part without rotation double* z = new double[dimension-c]; for (i = c; i < dimension; i++) { // cout<<i-c<<" "<<Pvector[i]<<" "<<anotherz[Pvector[i]]<<endl; z[i-c] = anotherz[Pvector[i]]; } // cout<<"sep\n"<<elliptic(z, dimension-c)<<endl; result += elliptic(z, dimension-c); delete[] z; // printf("Rotated Part = %1.16E\n", rot_elliptic(anotherz1,nonSeparableGroupSize) * 1e6); // printf("Separable Part = %1.16E\n", elliptic(anotherz2,dimension - nonSeparableGroupSize)); return(result); }
double F7::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] * schwefel(anotherz1, s[i]); delete []anotherz1; // cout<<result<<endl; } // one separable part without rotation double* z = new double[dimension-c]; for (i = c; i < dimension; i++) { // cout<<i-c<<" "<<Pvector[i]<<" "<<anotherz[Pvector[i]]<<endl; z[i-c] = anotherz[Pvector[i]]; } result += sphere(z, dimension-c); delete []z; return(result); }
double F14::compute(double*x){ int i; double result=0.0; if(OvectorVec == NULL) { s = readS(s_size); OvectorVec = readOvectorVec(); // // inspect OvectorVec // for (int i = 0; i < s_size; ++i) // { // for (int j=0; j< s[i]; j++) // { // printf("%.1f\t",OvectorVec[i][j]); // } // printf("\n"); // } Pvector = readPermVector(); r25 = readR(25); r50 = readR(50); r100 = readR(100); w = readW(s_size); } // s_size non-separable part with rotation int c = 0; for (i = 0; i < s_size; i++) { // cout<<"c="<<c<<", i="<<i<<endl; anotherz1 = rotateVectorConflict(i, c, x); // cout<<"done rot"<<endl; result += w[i] * schwefel(anotherz1, s[i]); delete []anotherz1; // cout<<result<<endl; } update(result); return(result); }
int main(int argc, char *argv[]) { FILE *fp1, *fp2; char *str; int i; fp1 = fopen("test1.in", "r"); str = readW(fp1, '\n', '\n'); printf("%s\n", str); free(str); str = readW(fp1, '\n', '\n'); printf("%s\n", str); free(str); for(i = 0; i < 3; i++) { str = readW(fp1, ',', '\n'); printf("%s ", str); free(str); } printf("\n"); for(i = 0; i < 3; i++) { str = readW(fp1, ' ', '\n'); printf("%s ", str); free(str); } printf("\n"); for(i = 0; i < 3; i++) { str = readW(fp1, '-', '\n'); printf("%s ", str); free(str); } printf("\n"); fp2 = fopen("teste2.in", "r"); str = readW(fp2, '\n', ';'); printf("%s\n", str); free(str); str = readW(fp2, '\n', ';'); printf("%s\n", str); free(str); for(i = 0; i < 3; i++) { str = readW(fp2, ',', ';'); printf("%s ", str); free(str); } printf("\n"); for(i = 0; i < 3; i++) { str = readW(fp2, ' ', ';'); printf("%s ", str); free(str); } printf("\n"); for(i = 0; i < 3; i++) { str = readW(fp2, '-', ';'); printf("%s ", str); free(str); } printf("\n"); fclose(fp1); fclose(fp2); return 0; }