*************************************************************** * Date created: October 28, 2004* * * * Final * * * * TEST FUNCTIONS FOR UNCONSTRAINED OPTIMIZATION * * =============================================== * * * * 57 problems: October 28, 2004 * * 66 problems: March 29, 2005 * * 70 problems: April 28, 2005 * * 75 problems: April 19, 2006 * * * * Please see the paper: * * N. Andrei, "An unconstrained optimization test functions * * collection", Advanced Modeling and Optimization, vol.10, * * No.1, (2008) pp.147-161. * * http://www.ici.ro/camo/journal/v10n1.htm * * * * Neculai Andrei* *************************************************************** * subroutine evalfg(n,x,f,g, nexp) real*8 x(n), f, g(n) real*8 t1,t2,t3,t4, c, d real*8 s, temp(1000000), temp1, tsum, sum real*8 u(1000000), v(1000000), t(1000000) real*8 u1, v1, c1, c2 real*8 alpha, beta, gamma, delta integer k1, k2, k3, k4 * go to ( 1, 2, 3, 4, 5, 6, 7, 8, 9,10, * 11,12,13,14,15,16,17,18,19,20, * 21,22,23,24,25,26,27,28,29,30, * 31,32,33,34,35,36,37,38,39,40, * 41,42,43,44,45,46,47,48,49,50, * 51,52,53,54,55,56,57,58,59,60, * 61,62,63,64,65,66,67,68,69,70, * 71,72,73,74,75,76) nexp cF1 FREUROTH (CUTE) * Extended Freudenstein & Roth * * Initial Point: [0.5, -2, ...,0.5, -2]. * 1 continue f = 0.d0 j=1 do i=1,n/2 t1=-13.d0+x(2*i-1)+5.d0*x(2*i)*x(2*i)-x(2*i)**3-2.d0*x(2*i) t2=-29.d0+x(2*i-1)+x(2*i)**3+x(2*i)**2-14.d0*x(2*i) f = f + t1*t1 + t2*t2 *-- g(j) =2.d0*(t1+t2) g(j+1)=2.d0*t1*(10.d0*x(2*i)-3.d0*x(2*i)*x(2*i)-2.d0) + * 2.d0*t2*(3.d0*x(2*i)*x(2*i)+2.d0*x(2*i)-14.d0) j=j+2 end do return c******************************************************************** cF2 Extended Trigonometric Function * * Initial Point: [0.2, 0.2, ....,0.2]. 2 continue s= float(n) do i=1,n s = s - dcos(x(i)) end do do i=1,n temp(i) = s + float(i)*(1.d0-dcos(x(i))) - dsin(x(i)) end do f = 0.d0 do i=1,n f = f + temp(i)**2 end do *-- s=0.d0 do i=1,n s = s + temp(i) end do do i=1,n g(i) = 2.d0*s*dsin(x(i)) + + 2.d0*temp(i)*(float(i)*dsin(x(i))-dcos(x(i))) end do return ************************************************************** cF3 SROSENBR (CUTE) * Extended Rosenbrock function * * Initial point: [-1.2, 1, -1.2, 1, ..........., -1.2, 1] 3 continue c=100.d0 f=0.d0 do i=1,n/2 f = f + c*(x(2*i)-x(2*i-1)**2)**2 + (1.d0-x(2*i-1))**2 end do *-- j=1 do i=1,n/2 g(j) = -4.d0*c*x(2*i-1)*(x(2*i)-x(2*i-1)**2) - * 2.d0*(1.d0-x(2*i-1)) g(j+1) = 2.d0*c*(x(2*i)-x(2*i-1)**2) j = j + 2 end do return c****************************************************************** cF4 Extended White & Holst function * * Initial point: [-1.2, 1, -1.2, 1, ..........., -1.2, 1] 4 continue c=100.d0 f=0.d0 do i=1,n/2 f = f + c*(x(2*i)-x(2*i-1)**3)**2 + (1.d0-x(2*i-1))**2 end do *-- j=1 do i=1,n/2 g(j) = -6.d0*c*x(2*i-1)*x(2*i-1)*(x(2*i)-x(2*i-1)**3) - * 2.d0*(1.d0-x(2*i-1)) g(j+1) = 2.d0*c*(x(2*i)-x(2*i-1)**3) j = j + 2 end do return c****************************************************************** * cF5 Extended Beale Function BEALE (CUTE) * * Initial Point: [1, 0.8, ...., 1, 0.8] *-------------------------------------------------------------- * 5 continue * f=0.d0 j=1 do i=1,n/2 t1=1.5d0 -x(2*i-1)+x(2*i-1)*x(2*i) t2=2.25d0 -x(2*i-1)+x(2*i-1)*x(2*i)*x(2*i) t3=2.625d0-x(2*i-1)+x(2*i-1)*x(2*i)*x(2*i)*x(2*i) f = f + t1*t1 + t2*t2 + t3*t3 *-- g(j) =2.d0*t1*(-1.d0+x(2*i)) + * 2.d0*t2*(-1.d0+x(2*i)**2) + * 2.d0*t3*(-1.d0+x(2*i)**3) g(j+1)=2.d0*t1*x(2*i-1) + * 2.d0*t2*2.d0*x(2*i-1)*x(2*i) + * 2.d0*t3*3.d0*x(2*i-1)*x(2*i)*x(2*i) j=j+2 end do return cF6 Extended Penalty Function U52 (MatrixRom) * * Intial Point: [1,2,3,.....,n]. * 6 continue temp1=0.d0 do i=1,n temp1 = temp1 + x(i)**2 end do f = (temp1 - 0.25d0)**2 do i=1,n-1 f = f + (x(i)-1.d0)**2 end do *-- do i=1,n-1 g(i) = 2.d0*(x(i)-1.d0) + 4.d0*x(i)*(temp1-0.25d0) end do g(n) = 4.d0*x(n)*(temp1-0.25d0) return cF7 Perturbed Quadratic function * * Initial Point: [0.5, 0.5, ......, 0.5]. * 7 continue temp1 = 0.d0 do i=1,n temp1 = temp1 + x(i) end do f = temp1*temp1/100.d0 do i=1,n f = f + float(i)*x(i)**2 end do *-- do i=1,n g(i) = float(i) * 2.d0 * x(i) + temp1/50.d0 end do return cF8 Raydan 1 Function * * Initial point: [1, 1, ..., 1] 8 continue f=0.d0 do i=1,n f = f + float(i) * (dexp(x(i))-x(i)) / 10.d0 end do *-- do i=1,n g(i) = float(i) * (dexp(x(i)) - 1.d0) / 10.d0 end do return cF9 Raydan 2 Function * * Initial Point: [1, 1, .....,1] * 9 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - x(i) end do *-- do i=1,n g(i) = dexp(x(i)) - 1.d0 end do return cF10 Diagonal1 Function * * Initial Point: [0, 1 ....., 1] * 10 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - x(i)*float(i) end do *-- do i=1,n g(i) = dexp(x(i)) - float(i) end do return cF11 Diagonal2 Function * * Initial Point: [1/1, 1/2, ....., 1/n] * 11 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - x(i)/float(i) end do *-- do i=1,n g(i) = dexp(x(i)) - 1.d0/float(i) end do return cF12 Diagonal3 Function * * Initial Point: [1,1,...,1] 12 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - float(i)*dsin(x(i)) end do *-- do i=1,n g(i) = dexp(x(i)) - float(i)*dcos(x(i)) end do return cF13 Hager Function * * Initial Point: [1,1,...,1] 13 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - x(i)*sqrt(float(i)) end do *-- do i=1,n g(i) = dexp(x(i)) - sqrt(float(i)) end do return cF14 Generalized Tridiagonal-1 Function * * Initial Point: [2,2,...,2] 14 continue f=0.d0 do i=1,n-1 u(i) = x(i) + x(i+1) - 3.d0 v(i) = x(i) - x(i+1) + 1.d0 end do do i=1,n-1 f = f + u(i)**2 + v(i)**4 end do *-- g(1) = 2.d0*u(1) + 4.d0*v(1)**3 do i=2,n-1 g(i) = 2.d0*u(i-1) - 4.d0*v(i-1)**3 + 2.d0*u(i) + 4.d0*v(i)**3 end do g(n) = 2.d0*u(n-1) - 4.d0*v(n-1)**3 return cF15 Extended Tridiagonal-1 Function * * Initial Point: [2,2,...,2] 15 continue f=0.d0 do i=1,n/2 u(i) = x(2*i-1) + x(2*i) - 3.d0 v(i) = x(2*i-1) - x(2*i) + 1.d0 end do do i=1,n/2 f = f + u(i)**2 + v(i)**4 end do *-- j=1 do i=1,n/2 g(j) = 2.d0*u(i) + 4.d0*v(i)**3 g(j+1) = 2.d0*u(i) - 4.d0*v(i)**3 j=j+2 end do return cF16 Extended Three Exponential Terms * * Intial Point: [0.1,0.1,.....,0.1]. * 16 continue f=0.d0 j=1 do i=1,n/2 t1 = x(2*i-1) + 3.d0*x(2*i) - 0.1d0 t2 = x(2*i-1) - 3.d0*x(2*i) - 0.1d0 t3 = -x(2*i-1) - 0.1d0 f = f + dexp(t1) + dexp(t2) + dexp(t3) *-- g(j) = dexp(t1) + dexp(t2) - dexp(t3) g(j+1) = 3.d0*dexp(t1) - 3.d0*dexp(t2) j=j+2 end do return cF17 Generalized Tridiagonal-2 * * Initial point: [-1, -1, .........., -1., -1] 17 continue f = 0.d0 u(1) = 5.d0*x(1)-3.d0*x(1)**2-x(1)**3-3.d0*x(2)+1.d0 do i=2,n-1 u(i)=5.d0*x(i)-3.d0*x(i)**2-x(i)**3-x(i-1)-3.d0*x(i+1)+1.d0 end do u(n)=5.d0*x(n)-3.d0*x(n)**2-x(n)**3-x(n-1)+1.d0 * do i=1,n f = f + u(i)**2 v(i) = 5.d0 -6.d0*x(i) -3.d0*x(i)**2 end do *-- g(1) = 2.d0*u(1)*v(1) - 2.d0*u(2) do i=2,n-1 g(i) = -6.d0*u(i-1) + 2.d0*u(i)*v(i) -2.d0*u(i+1) end do g(n) = -6.d0*u(n-1) + 2.d0*u(n)*v(n) return cF18 Diagonal4 Function * * Initial point: [1, 1, .........., 1., 1] 18 continue c=100.d0 f = 0.d0 do i=1,n/2 f = f + (x(2*i-1)**2 + c*x(2*i)**2)/2.d0 end do *-- j=1 do i=1,n/2 g(j) = x(2*i-1) g(j+1) = c*x(2*i) j=j+2 end do return cF19 Diagonal5 Function (MatrixRom) * * Initial point: [1.1, 1.1, .........., 1.1] 19 continue f = 0.d0 do i=1,n f = f + dlog( dexp(x(i)) + dexp(-x(i)) ) end do *-- do i=1,n g(i) = (dexp(x(i)) - dexp(-x(i)))/(dexp(x(i)) + dexp(-x(i))) end do return cF20 HIMMELBC (CUTE) * Extended Himmelblau Function * * Initial Point: [1, 1, ....., 1] 20 continue f=0.d0 j=1 do i=1,n/2 u1 = x(2*i-1)**2 + x(2*i) - 11.d0 v1 = x(2*i-1) + x(2*i)**2 - 7.d0 f = f + u1*u1 + v1*v1 *-- g(j) = 4.d0*u1*x(2*i-1) + 2.d0*v1 g(j+1) = 2.d0*u1 + 4.d0*v1*x(2*i) j=j+2 end do return cF21 Generalized PSC1 Function * * Initial point: [3, 0.1, ..., 3, 0.1] 21 continue f = 0.d0 do i=1,n-1 f = f + (x(i)**2 +x(i+1)**2 +x(i)*x(i+1))**2 * + (dsin(x(i)))**2 + (dcos(x(i+1)))**2 end do g(1)= 2.d0*(x(1)**2+x(2)**2+x(1)*x(2))*(2.d0*x(1)+x(2)) * +2.d0 * dsin(x(1)) * dcos(x(1)) *-- do i=2,n-1 g(i) = 2.d0*(x(i-1)**2+x(i)**2+x(i-1)*x(i))*(2.d0*x(i)+x(i-1)) + +2.d0*(x(i)**2+x(i+1)**2+x(i)*x(i+1))*(2.d0*x(i)+x(i+1)) end do g(n) = 2.d0*(x(n-1)**2+x(n)**2+x(n-1)*x(n))*(2.d0*x(n)+x(n-1)) + -2.d0*dcos(x(n)) * dsin(x(n)) return cF22 Extended PSC1 Function * * Initial point: [3, 0.1, ..., 3, 0.1] 22 continue f = 0.d0 do i=1,n/2 f = f + (x(2*i-1)**2 +x(2*i)**2 +x(2*i-1)*x(2*i))**2 * + (dsin(x(2*i-1)))**2 + (dcos(x(2*i)))**2 end do *-- j=1 do i=1,n/2 g(j) = 2.d0*(x(2*i-1)**2+x(2*i)**2+x(2*i-1)*x(2*i)) * + (2.d0*x(2*i-1)+x(2*i)) + + 2.d0*(dsin(x(2*i-1)))*(dcos(x(2*i-1))) g(j+1) = 2.d0*(x(2*i-1)**2+x(2*i)**2+x(2*i-1)*x(2*i)) * + (2.d0*x(2*i)+x(2*i-1)) - + 2.d0*(dcos(x(2*i)))*(dsin(x(2*i))) j=j+2 end do return cF23 Extended Powell * * Initial Point: [3, -1, 0, 1, ......]. * * 23 continue f=0.d0 j=1 do i=1,n/4 t1= x(4*i-3) + 10.d0*x(4*i-2) t2= x(4*i-1) - x(4*i) t3= x(4*i-2) - 2.d0*x(4*i-1) t4= x(4*i-3) - x(4*i) f = f + t1*t1 + 5.d0*t2*t2 + t3**4 + 10.d0*t4**4 *- g(j) = 2.d0*t1 + 40.d0*t4**3 g(j+1)= 20.d0*t1 + 4.d0*t3**3 g(j+2)= 10.d0*t2 - 8.d0*t3**3 g(j+3)= -10.d0*t2 - 40.d0*t4**3 j=j+4 end do return cF24 Extended Block Diagonal BD1 Function * * Initial Point: [0.1, 0.1, ..., 0.1]. *-- * 24 continue f = 0.d0 j=1 do i=1,n/2 t1 = x(2*i-1)**2 + x(2*i)**2 - 2.d0 t2 = dexp(x(2*i-1)) - x(2*i) f = f + t1*t1 + t2*t2 *-- g(j) = 4.d0*t1*x(2*i-1) + 2.d0*t2*dexp(x(2*i-1)) g(j+1) = 4.d0*t1*x(2*i) - 2.d0*t2 j=j+2 end do return cF25 Extended Maratos Function * * Initial Point: [1.1, 0.1, ...,1.1, 0.1]. * 25 continue c = 100.d0 f = 0.d0 j=1 do i=1,n/2 t1 = x(2*i-1)**2 + x(2*i)**2 - 1.d0 f = f + (x(2*i-1) + c*t1*t1) *-- g(j) = 1.d0 + 4.d0 * c * t1 * x(2*i-1) g(j+1) = 4.d0 * c * t1 * x(2*i) j=j+2 end do return cF26 Extended Cliff CLIFF (CUTE) * * Initial Point: [0, -1, ......, 0, -1]. * 26 continue f=0.d0 j=1 do i=1,n/2 temp1 = (x(2*i-1)-3.d0)/100.d0 f = f+temp1*temp1-(x(2*i-1)-x(2*i))+dexp(20.d0*(x(2*i-1)-x(2*i))) *-- g(j) = temp1/50.d0 - 1.d0 + 20.d0*dexp(20.d0*(x(2*i-1)-x(2*i))) g(j+1) = 1.d0 - 20.d0*dexp(20.d0*(x(2*i-1)-x(2*i))) j=j+2 end do return cF27 Quadratic Diagonal Perturbed Function * * Initial Point: [0.5, 0.5, ......, 0.5]. * 27 continue temp1 = 0.d0 do i=1,n temp1 = temp1 + x(i) end do f = temp1*temp1 do i=1,n f = f + (float(i)/100.d0)*(x(i)**2) end do *-- do i=1,n g(i) = float(i)*x(i)/50.d0 + 2.d0*temp1 end do return cF28 Extended Wood Function * WOODS (CUTE) * * Initial Point: [-3,-1,-3,-1,......] * 28 continue f=0.d0 j=1 do i=1,n/4 f = f + 100.d0*(x(4*i-3)**2-x(4*i-2))**2 * + (x(4*i-3)-1.d0)**2 * + 90.d0*(x(4*i-1)**2-x(4*i))**2 * + (1.d0-x(4*i-1))**2 * + 10.1d0*(x(4*i-2)-1.d0)**2 * + 10.1d0*(x(4*i) -1.d0)**2 * + 19.8d0*(x(4*i-2)-1.d0)*(x(4*i)-1.d0) *-- g(j) = 400.d0*(x(4*i-3)**2-x(4*i-2))*x(4*i-3) * + 2.d0*(x(4*i-3)-1.d0) g(j+1) =-200.d0*(x(4*i-3)**2-x(4*i-2)) * + 20.2d0*(x(4*i-2)-1.d0) * + 19.8d0*(x(4*i)-1.d0) g(j+2) = 360.d0*(x(4*i-1)**2-x(4*i))*x(4*i-1) * - 2.d0*(1.d0-x(4*i-1)) g(j+3) =-180.d0*(x(4*i-1)**2-x(4*i)) * + 20.2d0*(x(4*i) -1.d0) * + 19.8d0*(x(4*i-2)-1.d0) j=j+4 end do return cF29 Extended Hiebert Function * * Initial Point: [0,0,...0]. 29 continue c1=10.d0 c2=500.d0 f = 0.d0 j=1 do i=1,n/2 f = f + (x(2*i-1)-c1)**2 + (x(2*i-1)*x(2*i)-c2)**2 *-- g(j) = 2.d0*(x(2*i-1)-c1) * + 2.d0*(x(2*i-1)*x(2*i)-c2)*x(2*i) g(j+1) = 2.d0*(x(2*i-1)*x(2*i)-c2)*x(2*i-1) j=j+2 end do return cF30 Quadratic Function QF1 * * Initial Point: [1,1,...1]. 30 continue f = 0.d0 do i=1,n f = f + float(i)*x(i)*x(i) g(i) = float(i) * x(i) end do f = f/2.d0 f = f - x(n) g(n) = g(n) - 1.d0 return cF31 Extended Quadratic Penalty QP1 Function * * Initial Point: [1, 1, ......,1]. * 31 continue t1=0.d0 do i=1,n t1 = t1 + x(i)*x(i) end do t1 = t1 - 0.5d0 f = 0.d0 do i=1,n-1 f = f + (x(i)*x(i) - 2.d0)**2 g(i) = 4.d0*(x(i)*x(i)-2.d0)*x(i) + 4.d0*t1*x(i) end do f = f + t1*t1 g(n) = 4.d0*t1*x(n) return cF32 Extended Quadratic Penalty QP2 Function * * Initial Point: [1, 1, ......,1]. * 32 continue t1=0.d0 do i=1,n t1 = t1 + x(i)*x(i) end do t1 = t1 - 100.d0 f = 0.d0 do i=1,n-1 f = f + (x(i)*x(i) - dsin(x(i)))**2 g(i) = 2.d0*(x(i)*x(i)-dsin(x(i)))*(2.d0*x(i)-dcos(x(i))) * + 4.d0*t1*x(i) end do f = f + t1*t1 g(n) = 4.d0*t1*x(n) return cF33 A Quadratic Function QF2 * * Initial Point: [0.5, 0.5, ......,0.5]. * 33 continue f=0.d0 do i=1,n f = f + float(i)*(x(i)**2 - 1.d0)**2 end do f = f/2.d0 f = f - x(n) *-- do i=1,n g(i) = float(i)*2.d0*x(i)*(x(i)**2 - 1.d0) end do g(n) = g(n) - 1.d0 return cF34 Extended EP1 Function * * Initial Point: [1.5.,1.5.,...,1.5]. * 34 continue * f=0.d0 j=1 do i=1,n/2 t1=dexp(x(2*i-1)-x(2*i)) - 5.d0 t2=x(2*i-1)-x(2*i) t3=x(2*i-1)-x(2*i)-11.d0 f = f + t1*t1 + (t2*t2)*(t3*t3) g(j) = 2.d0*t1*dexp(x(2*i-1)-x(2*i)) * + 2.d0*t2*t3*t3 * + 2.d0*t2*t2*t3 g(j+1) = - g(j) j=j+2 end do return cF35 Extended Tridiagonal-2 Function * * Initial Point: [1.,1.,...,1.]. * 35 continue * c=0.1d0 f=0.d0 do i=1,n-1 f = f + (x(i)*x(i+1)-1.d0)**2 + c*(x(i)+1.d0)*(x(i+1)+1.d0) end do *-- g(1) = 2.d0*(x(1)*x(2)-1.d0)*x(2) + c*(x(2)+1.d0) do i=2,n-1 g(i) = 2.d0*(x(i-1)*x(i)-1.d0)*x(i-1) + c*(x(i-1)+1.d0) + * 2.d0*(x(i)*x(i+1)-1.d0)*x(i+1) + c*(x(i+1)+1.d0) end do g(n) = 2.d0*(x(n-1)*x(n)-1.d0)*x(n-1) + c*(x(n-1)+1.d0) return cF36 BDQRTIC (CUTE) * * Initial point x0=[1.,1.,...,1.]. * 36 continue * n4=n-4 f=0.d0 do i=1,n4 temp(i) = x(i)**2 + 2.d0*x(i+1)**2 + 3.d0*x(i+2)**2 * + 4.d0*x(i+3)**2 + 5.d0*x(n)**2 end do do i=1,n4 f = f + (-4.d0*x(i)+3.d0)**2 + temp(i)**2 end do *-- g(1) = -8.d0*(-4.d0*x(1)+3.d0) + * (4.d0*temp(1))*x(1) g(2) = -8.d0*(-4.d0*x(2)+3.d0) + * (8.d0*temp(1)+ 4.d0*temp(2))*x(2) g(3) = -8.d0*(-4.d0*x(3)+3.d0) + * (12.d0*temp(1)+ 8.d0*temp(2)+ 4.d0*temp(3))*x(3) g(4) = -8.d0*(-4.d0*x(4)+3.d0) + * (16.d0*temp(1)+12.d0*temp(2) +8.d0*temp(3)+ * 4.d0*temp(4))*x(4) do i=5,n4 g(i) = -8.d0*(-4.d0*x(i)+3.d0) + * (16.d0*temp(i-3)+12.d0*temp(i-2)+ * 8.d0*temp(i-1)+4.d0*temp(i))*x(i) end do g(n4+1) =(16.d0*temp(n4-2)+12.d0*temp(n4-1)+8.d0*temp(n4))*x(n4+1) g(n4+2) =(16.d0*temp(n4-1)+12.d0*temp(n4))*x(n4+2) g(n4+3) =(16.d0*temp(n4))*x(n4+3) tsum=0.d0 do i=1,n4 tsum = tsum + temp(i) end do g(n) = 20.d0*tsum*x(n) return cF37 TRIDIA (CUTE) * * Initial point x0=[1,1,...,1]. * * 37 continue * alpha=2.d0 beta=1.d0 gamma=1.d0 delta=1.d0 f=gamma*(delta*x(1)-1.d0)**2 do i=2,n f = f + float(i)*(alpha*x(i)-beta*x(i-1))**2 end do *-- g(1) = 2.d0*gamma*(delta*x(1)-1.d0)*delta - * 4.d0*(alpha*x(2)-beta*x(1))*beta do i=2,n-1 g(i) = 2.d0*float(i)*(alpha*x(i)-beta*x(i-1))*alpha - * 2.d0*float(i+1)*(alpha*x(i+1)-beta*x(i))*beta end do g(n) = 2.d0*float(n)*(alpha*x(n)-beta*x(n-1))*alpha return cF38 ARWHEAD (CUTE) * * Initial point x0=[1,1,...,1]. * * 38 continue f=0.d0 do i=1,n-1 f = f + (-4.d0*x(i)+3.d0) + (x(i)**2+x(n)**2)**2 end do *-- do i=1,n-1 g(i) = -4.d0 + 4.d0*x(i)*(x(i)**2+x(n)**2) end do g(n) = 0.d0 do i=1,n-1 g(n) = g(n) + 4.d0*x(n)*(x(i)**2+x(n)**2) end do return cF39 * NONDIA (Shanno-78) (CUTE) * * Initial point x0=[-1,-1,...,-1]. * * 39 continue c=100.d0 f=(x(1)-1.d0)**2 + c*(x(1)-x(1)**2)**2 do i=2,n f = f + c*(x(1)-x(i)**2)**2 end do *-- g(1)=2.d0*(x(1)-1.d0) + 2.d0*c*(x(1)-x(1)**2)*(1.d0-2.d0*x(1)) do i=2,n g(1) = g(1) + 2.d0*c*(x(1)-x(i)**2) end do do i=2,n g(i) = -4.d0*c*x(i)*(x(1)-x(i)**2) end do return cF40 NONDQUAR (CUTE) * * Initial point x0=[1,-1,1,-1,...,]. * * 40 continue f = (x(1)-x(2))**2 + (x(n-1)+x(n))**2 do i=1,n-2 f = f + (x(i)+x(i+1)+x(n))**4 end do *-- g(1) = 2.d0*(x(1)-x(2))+4.d0*(x(1)+x(2)+x(n))**3 g(2) =-2.d0*(x(1)-x(2))+4.d0*(x(1)+x(2)+x(n))**3 + * 4.d0*(x(2)+x(3)+x(n))**3 do i=3,n-2 g(i) = 4.d0*(x(i-1)+x(i)+x(n))**3 + * 4.d0*(x(i)+x(i+1)+x(n))**3 end do g(n-1) = 4.d0*(x(n-2)+x(n-1)+x(n))**3 + * 2.d0*(x(n-1)+x(n)) g(n) = 2.d0*(x(n-1)+x(n)) do i=1,n-2 g(n) = g(n) + 4.d0*(x(i)+x(i+1)+x(n))**3 end do return cF41 DQDRTIC * * Initial point x0=[3,3,3...,3]. * * 41 continue c=100.d0 d=100.d0 f=0.d0 do i=1,n-2 f = f + (x(i)**2 + c*x(i+1)**2 + d*x(i+2)**2) end do *-- g(1) = 2.d0*x(1) g(2) = 2.d0*c*x(2) + 2.d0*x(2) do i=3,n-2 g(i) = 2.d0*(1.d0+d+c)*x(i) end do g(n-1) = 2.d0*(c+d)*x(n-1) g(n) = 2.d0*d*x(n) return cF42 EG2 (CUTE) * * Initial point x0=[1,1,1...,1]. * * 42 continue f=0.5d0*dsin(x(n)*x(n)) do i=1,n-1 f = f + dsin(x(1)+x(i)*x(i)-1.d0) end do *-- g(1)=(1.d0+2.d0*x(1))*dcos(x(1)+x(1)*x(1)-1.d0) do i=2,n-1 g(1) = g(1) + dcos(x(1)+x(i)*x(i)-1.d0) end do do i=2,n-1 g(i) = 2.d0*x(i)*dcos(x(1)+x(i)*x(i)-1.d0) end do g(n) = x(n)*dcos(x(n)*x(n)) return cF43 DIXMAANA (CUTE) * * Initial point x0=[2.,2.,2...,2.]. * Modified m=n/4 43 continue * alpha = 1.d0 beta = 0.d0 gamma = 0.125d0 delta = 0.125d0 k1 = 0 k2 = 0 k3 = 0 k4 = 0 m = n/4 f = 1.d0 do i=1,n f = f + alpha * x(i)*x(i)*((float(i)/float(n))**k1) end do do i=1,n-1 f = f + beta * x(i)*x(i)*((x(i+1)+x(i+1)*x(i+1))**2) * * ((float(i)/float(n))**k2) end do do i=1,2*m f = f + gamma * x(i)*x(i) * (x(i+m)**4) * * ((float(i)/float(n))**k3) end do do i=1,m f = f + delta * x(i) * x(i+2*m) * * ((float(i)/float(n))**k4) end do *-- do i=1,n g(i) =0.d0 end do c1 do i=1,n g(i) = g(i) + 2.d0*alpha*x(i)*((float(i)/float(n))**k1) end do c2 g(1) = g(1) + 2.d0*beta*x(1)*((x(2)+x(2)*x(2))**2)* * ((float(1)/float(n))**k2) do i=2,n-1 g(i) = g(i) + 2.d0*beta*(x(i-1)**2)*(x(i)+x(i)**2)* * (1.d0+2.d0*x(i))*((float(i-1)/float(n))**k2)+ * 2.d0*beta*x(i)*((x(i+1)+x(i+1)**2)**2)* * ((float(i)/float(n))**k2) end do g(n) = g(n) + 2.d0*beta*(x(n-1)**2)*(x(n)+x(n)**2)* * (1.d0+2.d0*x(n)) c3 do i=1,2*m g(i) = g(i) + 2.d0*gamma*x(i)*(x(i+m)**4)* * ((float(i)/float(n))**k3) g(i+m) = g(i+m) + gamma*(x(i)**2)*4.d0*(x(i+m)**3)* * ((float(i)/float(n))**k3) end do c4 do i=1,m g(i) = g(i) + delta*x(i+2*m)*((float(i)/float(n))**k4) g(i+2*m) = g(i+2*m) + delta*x(i)*((float(i)/float(n))**k4) end do return cF44 DIXMAANB (CUTE) * * Initial point x0=[2.,2.,2...,2.]. * Modified m=n/4 44 continue * alpha = 1.d0 beta = 0.0625d0 gamma = 0.0625d0 delta = 0.0625d0 k1 = 0 k2 = 0 k3 = 0 k4 = 0 m = n/4 f = 1.d0 do i=1,n f = f + alpha * x(i)*x(i)*((float(i)/float(n))**k1) end do do i=1,n-1 f = f + beta * x(i)*x(i)*((x(i+1)+x(i+1)*x(i+1))**2) * * ((float(i)/float(n))**k2) end do do i=1,2*m f = f + gamma * x(i)*x(i) * (x(i+m)**4) * * ((float(i)/float(n))**k3) end do do i=1,m f = f + delta * x(i) * x(i+2*m) * * ((float(i)/float(n))**k4) end do *-- do i=1,n g(i) =0.d0 end do c1 do i=1,n g(i) = g(i) + 2.d0*alpha*x(i)*((float(i)/float(n))**k1) end do c2 g(1) = g(1) + 2.d0*beta*x(1)*((x(2)+x(2)*x(2))**2)* * ((float(1)/float(n))**k2) do i=2,n-1 g(i) = g(i) + 2.d0*beta*(x(i-1)**2)*(x(i)+x(i)**2)* * (1.d0+2.d0*x(i))*((float(i-1)/float(n))**k2)+ * 2.d0*beta*x(i)*((x(i+1)+x(i+1)**2)**2)* * ((float(i)/float(n))**k2) end do g(n) = g(n) + 2.d0*beta*(x(n-1)**2)*(x(n)+x(n)**2)* * (1.d0+2.d0*x(n)) c3 do i=1,2*m g(i) = g(i) + 2.d0*gamma*x(i)*(x(i+m)**4)* * ((float(i)/float(n))**k3) g(i+m) = g(i+m) + gamma*(x(i)**2)*4.d0*(x(i+m)**3)* * ((float(i)/float(n))**k3) end do c4 do i=1,m g(i) = g(i) + delta*x(i+2*m)*((float(i)/float(n))**k4) g(i+2*m) = g(i+2*m) + delta*x(i)*((float(i)/float(n))**k4) end do return cF45 DIXMAANC (CUTE) * * Initial point x0=[2.,2.,2...,2.]. * Modified m=n/4 45 continue * alpha = 1.d0 beta = 0.125d0 gamma = 0.125d0 delta = 0.125d0 k1 = 0 k2 = 0 k3 = 0 k4 = 0 m = n/4 f = 1.d0 do i=1,n f = f + alpha * x(i)*x(i)*((float(i)/float(n))**k1) end do do i=1,n-1 f = f + beta * x(i)*x(i)*((x(i+1)+x(i+1)*x(i+1))**2) * * ((float(i)/float(n))**k2) end do do i=1,2*m f = f + gamma * x(i)*x(i) * (x(i+m)**4) * * ((float(i)/float(n))**k3) end do do i=1,m f = f + delta * x(i) * x(i+2*m) * * ((float(i)/float(n))**k4) end do *-- do i=1,n g(i) =0.d0 end do c1 do i=1,n g(i) = g(i) + 2.d0*alpha*x(i)*((float(i)/float(n))**k1) end do c2 g(1) = g(1) + 2.d0*beta*x(1)*((x(2)+x(2)*x(2))**2)* * ((float(1)/float(n))**k2) do i=2,n-1 g(i) = g(i) + 2.d0*beta*(x(i-1)**2)*(x(i)+x(i)**2)* * (1.d0+2.d0*x(i))*((float(i-1)/float(n))**k2)+ * 2.d0*beta*x(i)*((x(i+1)+x(i+1)**2)**2)* * ((float(i)/float(n))**k2) end do g(n) = g(n) + 2.d0*beta*(x(n-1)**2)*(x(n)+x(n)**2)* * (1.d0+2.d0*x(n)) c3 do i=1,2*m g(i) = g(i) + 2.d0*gamma*x(i)*(x(i+m)**4)* * ((float(i)/float(n))**k3) g(i+m) = g(i+m) + gamma*(x(i)**2)*4.d0*(x(i+m)**3)* * ((float(i)/float(n))**k3) end do c4 do i=1,m g(i) = g(i) + delta*x(i+2*m)*((float(i)/float(n))**k4) g(i+2*m) = g(i+2*m) + delta*x(i)*((float(i)/float(n))**k4) end do return cF46 DIXMAANE (CUTE) * * Initial point x0=[2.,2.,2...,2.]. * Modified m=n/4 46 continue * alpha = 1.d0 beta = 0.d0 gamma = 0.125d0 delta = 0.125d0 k1 = 1 k2 = 0 k3 = 0 k4 = 1 m = n/4 f = 1.d0 do i=1,n f = f + alpha * x(i)*x(i)*((float(i)/float(n))**k1) end do do i=1,n-1 f = f + beta * x(i)*x(i)*((x(i+1)+x(i+1)*x(i+1))**2) * * ((float(i)/float(n))**k2) end do do i=1,2*m f = f + gamma * x(i)*x(i) * (x(i+m)**4) * * ((float(i)/float(n))**k3) end do do i=1,m f = f + delta * x(i) * x(i+2*m) * * ((float(i)/float(n))**k4) end do *-- do i=1,n g(i) =0.d0 end do c1 do i=1,n g(i) = g(i) + 2.d0*alpha*x(i)*((float(i)/float(n))**k1) end do c2 g(1) = g(1) + 2.d0*beta*x(1)*((x(2)+x(2)*x(2))**2)* * ((float(1)/float(n))**k2) do i=2,n-1 g(i) = g(i) + 2.d0*beta*(x(i-1)**2)*(x(i)+x(i)**2)* * (1.d0+2.d0*x(i))*((float(i-1)/float(n))**k2)+ * 2.d0*beta*x(i)*((x(i+1)+x(i+1)**2)**2)* * ((float(i)/float(n))**k2) end do g(n) = g(n) + 2.d0*beta*(x(n-1)**2)*(x(n)+x(n)**2)* * (1.d0+2.d0*x(n)) c3 do i=1,2*m g(i) = g(i) + 2.d0*gamma*x(i)*(x(i+m)**4)* * ((float(i)/float(n))**k3) g(i+m) = g(i+m) + gamma*(x(i)**2)*4.d0*(x(i+m)**3)* * ((float(i)/float(n))**k3) end do c4 do i=1,m g(i) = g(i) + delta*x(i+2*m)*((float(i)/float(n))**k4) g(i+2*m) = g(i+2*m) + delta*x(i)*((float(i)/float(n))**k4) end do return cF47 Partial Perturbed Quadratic * * Initial point x0=[0.5, 0.5, ..., 0.5]. * 47 continue * temp(1) = x(1) + x(2) do i=2,n-1 temp(i) = temp(i-1) + x(i+1) end do f=x(1)*x(1) do i=2,n f = f + float(i)*x(i)*x(i) + temp(i-1)*temp(i-1)/100.d0 end do *-- g(1)= 2.d0*x(1) do i=1,n-1 g(1) = g(1) + temp(i)/50.d0 end do do i=2,n g(i) = 2.d0*float(i)*x(i) do j=i,n g(i) = g(i) + temp(j-1)/50.d0 end do end do return cF48 Broyden Pentadiagonal * * Initial point x0=[-1., -1., ..., -1.]. * 48 continue * temp(1) = 3.d0*x(1) - 2.d0*x(1)*x(1) do i=2,n-1 temp(i) = 3.d0*x(i)-2.d0*x(i)*x(i)-x(i-1)-2.d0*x(i+1)+1.d0 end do temp(n) = 3.d0*x(n)-2.d0*x(n)*x(n)-x(n-1)+1.d0 f = 0.d0 do i=1,n f = f + temp(i)*temp(i) end do *-- g(1) = 2.d0*temp(1)*(3.d0-4.d0*x(1)) - 2.d0*temp(2) g(2) = 2.d0*temp(2)*(3.d0-4.d0*x(2)) - 2.d0*temp(3) do i=3,n-1 g(i) = -4.d0*temp(i-1) * +2.d0*temp(i)*(3.d0-4.d0*x(i)) * -2.d0*temp(i+1) end do g(n) = -4.d0*temp(n-1) + 2.d0*temp(n)*(3.d0-4.d0*x(n)) return cF49 Almost Perturbed Quadratic * * Initial point x0=[0.5, 0.5, ...,0.5]. * 49 continue * f = 0.01d0*(x(1)+x(n))**2 do i=1,n f = f + float(i)*x(i)*x(i) end do *- g(1) = 2.d0*x(1) + (x(1)+x(n))/50.d0 do i=2,n-1 g(i) = 2.d0*float(i)*x(i) end do g(n) = 2.d0*float(n)*x(n) + (x(1)+x(n))/50.d0 return cF50 Tridiagonal Perturbed Quadratic * * Initial point x0=[0.5, 0.5, ...,0.5]. * 50 continue * do i=1,n-2 temp(i) = x(i) + x(i+1) + x(i+2) end do f = x(1)*x(1) do i=2,n-1 f = f + float(i)*x(i)*x(i) + temp(i-1)**2 end do *-- g(1) = 2.d0*x(1) + 2.d0*temp(1) g(2) = 4.d0*x(2) + 2.d0*(temp(1)+temp(2)) do i=3,n-2 g(i) = 2.d0*float(i)*x(i) + 2.d0*(temp(i-2)+temp(i-1)+temp(i)) end do g(n-1) = 2.d0*float(n-1)*x(n-1) + 2.d0*(temp(n-3)+temp(n-2)) g(n) = 2.d0*temp(n-2) return cF51 EDENSCH Function (CUTE) * * Initial Point: [0., 0., ..., 0.]. 51 continue f = 16.d0 do i=1,n-1 f = f + (x(i)-2.d0)**4 + * (x(i)*x(i+1)-2.d0*x(i+1))**2 + * (x(i+1)+1.d0)**2 end do *-- g(1) = 4.d0*(x(1)-2.d0)**3 + 2.d0*x(2)*(x(1)*x(2)-2.d0*x(2)) do i=2,n-1 g(i) = 2.d0*(x(i-1)*x(i)-2.d0*x(i))*(x(i-1)-2.d0) + * 2.d0*(x(i)+1.d0) + * 4.d0*(x(i)-2.d0)**3 + * 2.d0*x(i+1)*(x(i)*x(i+1)-2.d0*x(i+1)) end do g(n) = 2.d0*(x(n-1)*x(n)-2.d0*x(n))*(x(n-1)-2.d0) + * 2.d0*(x(n)+1.d0) return cF52 HIMMELBHA * * Initial point: [0, 2,0, 2, ...., 0, 2] 52 continue f=0.d0 do i=1,n/2 f=f+(-3.d0*x(2*i-1)-2.d0*x(2*i)+2.d0+x(2*i-1)**3+x(2*i)**3)* * (dexp(-x(2*i-1)-x(2*i))) end do *-- j=1 do i=1,n/2 g(j) = (-3.d0+3.d0*x(2*i-1)**2)*(dexp(-x(2*i-1)-x(2*i))) - * (-3.d0*x(2*i-1)-2.d0*x(2*i)+2.d0+x(2*i-1)**3+x(2*i)**3)* * (dexp(-x(2*i-1)-x(2*i))) g(j+1)=(-2.d0+3.d0*x(2*i)**2)*(dexp(-x(2*i-1)-x(2*i))) - * (-3.d0*x(2*i-1)-2.d0*x(2*i)+2.d0+x(2*i-1)**3+x(2*i)**3)* * (dexp(-x(2*i-1)-x(2*i))) j=j+2 end do return cF53 STAIRCASE S1 * * Initial point x0=[1,1,...,1]. * 53 continue f=0.d0 do i=1,n-1 f = f + (x(i)+x(i+1)-float(i))**2 end do *-- g(1) = 2.d0*(x(1)+x(2)-1.d0) do i=2,n-1 g(i) = 2.d0*(x(i-1)+x(i)-float(i-1)) + * 2.d0*(x(i)+x(i+1)-float(i)) end do g(n) = 2.d0*(x(n-1)+x(n)-float(n-1)) return cF54 LIARWHD (CUTE) * * Initial point x0=[4., 4., ....4.]. * 54 continue f=0.d0 do i=1,n f = f + 4.d0*(x(i)*x(i) - x(1))**2 + (x(i)-1.d0)**2 end do *-- g(1) = 2.d0*(x(1)-1.d0) + 8.d0*(x(1)*x(1)-x(1))*(2.d0*x(1)-1.d0) do i=2,n g(1) = g(1) - 8.d0*(x(i)*x(i)-x(1)) end do do i=2,n g(i) = 16.d0*x(i)*(x(i)*x(i)-x(1)) + 2.d0*(x(i)-1.d0) end do return cF55 DIAGONAL 6 * * Initial point x0=[1.,1., ..., 1.]. * 55 continue f = 0.d0 do i=1,n f = f + dexp(x(i)) - (1.d0+x(i)) end do *-- do i=1,n g(i) = dexp(x(i)) - 1.d0 end do return cF56 DIXON3DQ (CUTE) * * Initial Point x0=[-1, -1,..., -1] * 56 continue f=(x(1)-2.d0)**2 do i=1,n-1 f = f + (x(i)-x(i+1))**2 end do f = f + (x(n)-1.d0)**2 *-- g(1) = 2.d0*(x(1)-2.d0) + 2.d0*(x(1)-x(2)) do i=2,n-1 g(i) = -2.d0*(x(i-1)-x(i)) + 2.d0*(x(i)-x(i+1)) end do g(n) = -2.d0*(x(n-1)-x(n)) + 2.d0*(x(n)-1.d0) return cF57 ENGVAL1 (CUTE) * * Initial point x0=[2.,2.,2...,2.]. * 57 continue do i=1,n-1 t(i) = x(i)*x(i) + x(i+1)*x(i+1) end do f = 0.d0 do i=1,n-1 f = f + t(i)*t(i) + (-4.d0*x(i) + 3.d0) end do *-- g(1) = 4.d0*x(1)*t(1) - 4.d0 do i=2,n-1 g(i) = 4.d0*x(i)*t(i-1) + 4.d0*x(i)*t(i) - 4.d0 end do g(n) = 4.d0*x(n)*t(n-1) return cF58 DENSCHNA (CUTE) * * Initial point: [2,2,...,2] * 58 continue f=0.d0 do i=1,n/2 f = f + x(2*i-1)**4 + * (x(2*i-1)+x(2*i))**2 + * (-1.d0+dexp(x(2*i)))**2 end do *-- j=1 do i=1,n/2 g(j) = 4.d0*x(2*i-1)**3 + 2.d0*(x(2*i-1)+x(2*i)) g(j+1) = 2.d0*(x(2*i-1)+x(2*i)) + * 2.d0*(dexp(x(2*i)))*(-1.d0+dexp(x(2*i))) j=j+2 end do return cF59 DENSCHNC (CUTE) * * Initial point: [2,2,...,2] 59 continue f=0.d0 do i=1,n/2 f = f + (-2.d0+x(2*i-1)**2+x(2*i)**2)**2 + * (-2.d0+dexp(x(2*i-1)-1.d0)+x(2*i)**3)**2 end do *-- j=1 do i=1,n/2 g(j) = 4.d0*x(2*i-1)*(-2.d0+x(2*i-1)**2+x(2*i)**2)+ * 2.d0*dexp(x(2*i-1)-1.d0)*(-2.d0+dexp(x(2*i-1)-1.d0)+x(2*i)**3) g(j+1) = 4.d0*x(2*i)*(-2.d0+x(2*i-1)**2+x(2*i)**2)+ * 6.d0*(x(2*i)**2)*(-2.d0+dexp(x(2*i-1)-1.d0)+x(2*i)**3) j=j+2 end do return cF60 DENSCHNB (CUTE) * * Initial point: [1,1,...,1] 60 continue f=0.d0 do i=1,n/2 f = f + (x(2*i-1)-2.d0)**2 + * ((x(2*i-1)-2.d0)**2)*(x(2*i)**2) + * (x(2*i)+1.d0)**2 end do *-- j=1 do i=1,n/2 g(j) = 2.d0*(x(2*i-1)-2.d0) + 2.d0*(x(2*i-1)-2.d0)*x(2*i)*x(2*i) g(j+1) = ((x(2*i-1)-2.d0)**2)*2.d0*x(2*i) + 2.d0*(x(2*i)+1.d0) j=j+2 end do return cF61 DENSCHNF (CUTE) * * Initial point: [2,0,2,0,...,2,0] 61 continue f=0.d0 do i=1,n/2 f=f+(2.d0*(x(2*i-1)+x(2*i))**2+(x(2*i-1)-x(2*i))**2-8.d0)**2+ * (5.d0*x(2*i-1)**2+(x(2*i)-3.d0)**2-9.d0)**2 end do *-- j=1 do i=1,n/2 g(j)=2.d0*(2.d0*(x(2*i-1)+x(2*i))**2+(x(2*i-1)-x(2*i))**2-8.d0)* * (4.d0*(x(2*i-1)+x(2*i))+2.d0*(x(2*i-1)-x(2*i))) + * 2.d0*(5.d0*x(2*i-1)**2+(x(2*i)-3.d0)**2-9.d0)*10.d0*x(2*i-1) g(j+1)=2.d0*(2.d0*(x(2*i-1)+x(2*i))**2+(x(2*i-1)-x(2*i))**2-8.d0)* * (4.d0*(x(2*i-1)+x(2*i))-2.d0*(x(2*i-1)-x(2*i))) + * 2.d0*(5.d0*x(2*i-1)**2+(x(2*i)-3.d0)**2-9.d0)*2.d0*(x(2*i)-3.d0) j=j+2 end do return cF62 SINQUAD (CUTE) * * Initial Point: [0.1, 0.1, ..., 0.1] 62 continue f=(x(1)-1.d0)**4 + (x(n)**2-x(1)**2)**2 do i=1,n-2 t(i) = sin(x(i+1)-x(n)) - x(1)**2 + x(i+1)**2 f = f + t(i)*t(i) end do *-- g(1) = 4.d0*(x(1)-1.d0)**3 - 4.d0*x(1)*(x(n)**2-x(1)**2) do i=1,n-2 g(1) = g(1) - 4.d0*t(i)*x(1) end do do i=2,n-1 g(i) = 2.d0*t(i-1)*(cos(x(i)-x(n))+2.d0*x(i)) end do g(n) = 4.d0*x(n)*(x(n)**2-x(1)**2) do i=1,n-2 g(n) = g(n) - 2.d0*t(i)*cos(x(i+1)-x(n)) end do return cF63 BIGGSB1 (CUTE) * * Initial Point: [0., 0., ....,0.] 63 continue f=(x(1)-1.d0)**2 + (1.d0-x(n))**2 do i=2,n f = f + (x(i)-x(i-1))**2 end do *-- g(1) = 4.d0*x(1) - 2.d0*x(2) - 2.d0 do i=2,n-1 g(i) = 4.d0*x(i) - 2.d0*x(i-1) - 2.d0*x(i+1) end do g(n) = 4.d0*x(n) - 2.d0*x(n-1) - 2.d0 return cF64 Extended Block-Diagonal BD2 * * Initial Point: [1.5, 2, ..., 1.5, 2] 64 continue f = 0.d0 do i=1,n/2 f = f + (x(2*i-1)**2 + x(2*i)**2 - 2.d0)**2 + * (dexp(x(2*i-1)-1.d0) + x(2*i)**3 - 2.d0)**2 end do *-- j=1 do i=1,n/2 t1 = x(2*i-1)**2 + x(2*i)**2 - 2.d0 t2 = dexp(x(2*i-1)-1.d0)+x(2*i)**3-2.d0 g(j) = 4.d0*x(2*i-1)*t1 + 2.d0*t2*dexp(x(2*i-1)-1.d0) g(j+1)= 4.d0*x(2*i)*t1 + 6.d0*x(2*i)*x(2*i)*t2 j=j+2 end do return cF65 Generalized quartic GQ1 function * * Initial Point: [1,1,...,1] 65 continue f = 0.d0 do i=1,n-1 f = f + x(i)*x(i) + (x(i+1)+x(i)*x(i))**2 end do *-- g(1) = 2.d0*x(1) + 4.d0*(x(2)+x(1)*x(1))*x(1) do i=2,n-1 g(i) = 2.d0*(x(i)+x(i-1)**2) + 2.d0*x(i) + * 4.d0*(x(i+1)+x(i)*x(i))*x(i) end do g(n) = 2.d0*(x(n)+x(n-1)**2) return cF66 Diagonal 7 * * Initial point: [1,1,...,1] 66 continue f=0.d0 do i=1,n f = f + dexp(x(i)) - 2.d0*x(i) - x(i)*x(i) end do *-- do i=1,n g(i) = dexp(x(i)) - 2.d0 - 2.d0*x(i) end do return cF67 Diagonal 8 * * Initial Point: [1,1,...,1] 67 continue f=0.d0 do i=1,n f = f + x(i)*dexp(x(i)) - 2.d0*x(i) - x(i)*x(i) end do *-- do i=1,n g(i) = dexp(x(i)) + x(i)*dexp(x(i)) - 2.d0 - 2.d0*x(i) end do return cF68 Full Hessian * * Initial Point: [1,1,...,1] 68 continue sum=0.d0 do i=1,n sum = sum + x(i) end do f = sum*sum do i=1,n f = f + x(i)*dexp(x(i)) - 2.d0*x(i) - x(i)*x(i) end do *-- do i=1,n g(i) = dexp(x(i)) + x(i)*dexp(x(i)) - * 2.d0 - 2.d0*x(i) + 2.d0*sum end do return cF69 SINCOS * * Initial Point: [3, 0.1, 3, 0.1, ..., 3, 0.1] 69 continue f= 0.d0 do i=1,n/2 f = f + (x(2*i-1)**2 + x(2*i)**2 + x(2*i-1)*x(2*i))**2 + * (dsin(x(2*i-1)))**2 + (dcos(x(2*i)))**2 end do *-- j=1 do i=1,n/2 s = x(2*i-1)**2 + x(2*i)**2 + x(2*i-1)*x(2*i) g(j) = 2.d0*s*(2.d0*x(2*i-1)+x(2*i)) + * 2.d0*dsin(x(2*i-1))*dcos(x(2*i-1)) g(j+1) = 2.d0*s*(2.d0*x(2*i)+x(2*i-1)) - * 2.d0*dcos(x(2*i))*dsin(x(2*i)) j=j+2 end do return cF70 Generalized quartic GQ2 function * * Initial Point: [1,1,...,1] 70 continue f= (x(1)*x(1)-1.d0)**2 do i=2,n f = f + (x(i)*x(i) - x(i-1) - 2.d0)**2 end do *-- g(1) = 4.d0*x(1)*(x(1)*x(1)-1.d0) - 2.d0*(x(2)**2-x(1)-2) do i=2,n-1 g(i) = 4.d0*x(i)*(x(i)**2-x(i-1)-2.d0) - * 2.d0*(x(i+1)**2 - x(i) - 2.d0) end do g(n) = 4.d0*x(n)*(x(n)**2-x(n-1)-2.d0) return cF71 EXTROSNB (CUTE) * * Initial Point: [1,1,...,1] 71 continue f = (x(1)-1.d0)**2 do i=2,n f = f + 100.d0*(x(i)-x(i-1)**2)**2 end do *-- g(1) = 2.d0*(x(1)-1.d0)-400.d0*x(1)*(x(2)-x(1)**2) do i=2,n-1 g(i) = 200.d0*(x(i)-x(i-1)**2)-400.d0*x(i)*(x(i+1)-x(i)**2) end do g(n) = 200.d0*(x(n)-x(n-1)**2) return cF72 ARGLINB (CUTE) * * Initial Point: [0.01,0.001,...,0.01,0.001] 72 continue m=2 f=0.d0 do i=1,m u(i)=0.d0 do j=1,n u(i) = u(i) + float(i)*float(j)*x(j) end do f = f + (u(i)-1.d0)**2 end do *-- do j=1,n g(j) = 0.d0 do i=1,m g(j) = g(j) + 2.d0*(u(i)-1.d0)*float(i)*float(j) end do end do return cF73 FLETCHCR (CUTE) * * Initial Point: [0.5,0.5,...0.5] 73 continue f=0.d0 do i=1,n-1 f = f + 100.d0*(x(i+1)-x(i)+1.d0-x(i)*x(i))**2 end do *-- g(1) = 200.d0*(x(2)-x(1)+1.d0-x(1)*x(1))*(-1.d0-2.d0*x(1)) do i=2,n-1 g(i) = 200.d0*(x(i)-x(i-1)+1.d0-x(i-1)*x(i-1))+ * 200.d0*(x(i+1)-x(i)+1.d0-x(i)*x(i))*(-1.d0-2.d0*x(i)) end do g(n) = 200.d0*(x(n)-x(n-1)+1.d0-x(n-1)**2) return cF74 HIMMELBG (CUTE) * * Initial Point: [1.5,1.5,...,1.5] 74 continue f=0.d0 do i=1,n/2 f = f + (2.d0*x(2*i-1)**2+3.d0*x(2*i)**2)* * (dexp(-x(2*i-1)-x(2*i))) end do *-- j=1 do i=1,n/2 t1 = 2.d0*x(2*i-1)**2+3.d0*x(2*i)**2 t2 = dexp(-x(2*i-1)-x(2*i)) g(j) = 4.d0*x(2*i-1)*t2 - t1*t2 g(j+1) = 6.d0*x(2*i)*t2 - t1*t2 j=j+2 end do return cF75 HIMMELBH (CUTE) * * Initial Point: [1.5,1.5,...,1.5] 75 continue f= 0.d0 do i=1,n/2 f=f+(-3.d0*x(2*i-1)-2.d0*x(2*i)+2.d0+x(2*i-1)**3 + x(2*i)**2) end do *-- j=1 do i=1,n/2 g(j) = -3.d0 + 3.d0*x(2*i-1)**2 g(j+1) = -2.d0 + 2.d0*x(2*i) j=j+2 end do return cF76 DIAGONAL 9 * * Initial point: [1,1,...,1] 76 continue f=0.d0 do i=1,n f = f + (x(i)-float(i))**2 end do *-- do i=1,n g(i) = 2.d0*(x(i)-float(i)) end do return end C------------------------------------------------------END EVALFG C Neculai Andrei C================================================================ * Last Line <>