* SUBROUTINE TIUD06 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 90/12/01 LU : ORIGINAL VERSION * * PURPOSE : * INITIATION OF VARIABLES FOR NONLINEAR MINIMAX APPROXIMATION. * UNCONSTRAINED DENSE VERSION. * * PARAMETERS : * IO N NUMBER OF VARIABLES. * IO NA NUMBER OF PARTIAL FUNCTIONS. * RO X(N) VECTOR OF VARIABLES. * RO FMIN LOWER BOUND FOR VALUE OF THE OBJECTIVE FUNCTION. * RO XMAX MAXIMUM STEPSIZE. * IO NEXT NUMBER OF THE TEST PROBLEM. * IO IEXT TYPE OF OBJECTIVE FUNCTION. IEXT<0-MAXIMUM OF VALUES. * IEXT=0-MAXIMUM OF ABSOLUTE VALUES. * IO IERR ERROR INDICATOR. * SUBROUTINE TIUD06(N,NA,X,FMIN,XMAX,NEXT,IEXT,IERR) INTEGER I,N,NA,NEXT,IEXT,IERR REAL*8 X(N),FMIN,XMAX REAL*8 Y(123),T COMMON /EMPR06/ Y FMIN=-1.0D 60 XMAX=1.0D 3 IEXT=-1 IERR=0 GOTO(10,190,180,80,20,170,120,90,230,210,140,150,200,30,130,100, & 40,110,50,60,70,220,160,240,250),NEXT 10 IF(N.GE.2.AND.NA.GE.3) THEN N=2 NA=3 X(1)=2.0D 0 X(2)=2.0D 0 ELSE IERR=1 ENDIF RETURN 190 IF(N.GE.2.AND.NA.GE.3) THEN N=2 NA=3 X(1)=3.0D 0 X(2)=1.0D 0 ELSE IERR=1 ENDIF RETURN 180 IF(N.GE.2.AND.NA.GE.2) THEN N=2 NA=2 X(1)= 1.41831D 0 X(2)=-4.79462D 0 ELSE IERR=1 ENDIF RETURN 80 IF(N.GE.3.AND.NA.GE.6) THEN N=3 NA=6 X(1)=1.0D 0 X(2)=1.0D 0 X(3)=1.0D 0 ELSE IERR=1 ENDIF RETURN 20 IF(N.GE.4.AND.NA.GE.4) THEN N=4 NA=4 DO 21 I=1,N X(I)=0.0D 0 21 CONTINUE ELSE IERR=1 ENDIF RETURN 170 IF(N.GE.4.AND.NA.GE.4) THEN N=4 NA=4 DO 171 I=1,N X(I)=0.0D 0 171 CONTINUE ELSE IERR=1 ENDIF RETURN 120 IF(N.GE.3.AND.NA.GE.21) THEN N=3 NA=21 DO 121 I=1,N X(I)=1.0D 0 121 CONTINUE DO 122 I=1,NA T=1.0D 1*DBLE(I-1)/DBLE(NA-1) Y(I)=T Y(NA+I)=(3.0D 0/2.0D 1)*EXP(-T)+ & (1.0D 0/5.2D 1)*EXP(-5.0D 0*T)- & (1.0D 0/6.5D 1)*EXP(-2.0D 0*T)*(3.0D 0*SIN(2.0D 0*T)+ & 1.1D 1*COS(2.0D 0*T)) 122 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 90 IF(N.GE.3.AND.NA.GE.15) THEN N=3 NA=15 X(1)=1.0D 0 X(2)=1.0D 0 X(3)=1.0D 0 Y(1)=0.14D 0 Y(2)=0.18D 0 Y(3)=0.22D 0 Y(4)=0.25D 0 Y(5)=0.29D 0 Y(6)=0.32D 0 Y(7)=0.35D 0 Y(8)=0.39D 0 Y(9)=0.37D 0 Y(10)=0.58D 0 Y(11)=0.73D 0 Y(12)=0.96D 0 Y(13)=1.34D 0 Y(14)=2.10D 0 Y(15)=4.39D 0 IEXT=0 ELSE IERR=1 ENDIF RETURN 230 IF(N.GE.4.AND.NA.GE.11) THEN N=4 NA=11 X(1)= 0.25D 0 X(2)= 0.39D 0 X(3)= 4.15D-1 X(4)= 0.39D 0 Y(1)= 0.1957D 0 Y(2)= 0.1947D 0 Y(3)= 0.1735D 0 Y(4)= 0.1600D 0 Y(5)= 0.0844D 0 Y(6)= 0.0627D 0 Y(7)= 0.0456D 0 Y(8)= 0.0342D 0 Y(9)= 0.0323D 0 Y(10)=0.0235D 0 Y(11)=0.0246D 0 Y(12)=4.0000D 0 Y(13)=2.0000D 0 Y(14)=1.0000D 0 Y(15)=0.5000D 0 Y(16)=0.2500D 0 Y(17)=0.1670D 0 Y(18)=0.1250D 0 Y(19)=0.1000D 0 Y(20)=0.0833D 0 Y(21)=0.0714D 0 Y(22)=0.0625D 0 IEXT=0 ELSE IERR=1 ENDIF RETURN 210 IF(N.GE.4.AND.NA.GE.20) THEN N=4 NA=20 X(1)= 2.5D 1 X(2)= 5.0D 0 X(3)=-5.0D 0 X(4)=-1.0D 0 IEXT=0 ELSE IERR=1 ENDIF RETURN 140 IF(N.GE.4.AND.NA.GE.21) THEN N=4 NA=21 DO 141 I=1,N X(I)=1.0D 0 141 CONTINUE DO 142 I=1,NA Y(I)=0.25D 0+0.75D 0*DBLE(I-1)/DBLE(NA-1) Y(NA+I)=SQRT(Y(I)) 142 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 150 IF(N.GE.4.AND.NA.GE.21) THEN N=4 NA=21 X(1)= 1.0D 0 X(2)= 1.0D 0 X(3)=-3.0D 0 X(4)=-1.0D 0 DO 151 I=1,NA Y(I)=-0.5D 0+DBLE(I-1)/DBLE(NA-1) Y(NA+I)=1.0D 0/(1.0D 0+Y(I)) 151 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 200 IF(N.GE.4.AND.NA.GE.61) THEN N=4 NA=61 IEXT=0 DO 201 I=1,N X(I)=1.0D 0 201 CONTINUE X(3)=1.0D 1 Y(1)=1.0D 0 Y(2)=1.01D 0 Y(3)=1.02D 0 Y(4)=1.03D 0 Y(5)=1.05D 0 Y(6)=1.075D 0 Y(7)=1.1D 0 Y(8)=1.125D 0 Y(9)=1.15D 0 Y(10)=1.2D 0 Y(11)=1.25D 0 Y(12)=1.3D 0 Y(13)=1.35D 0 Y(14)=1.4D 0 Y(15)=1.5D 0 Y(16)=1.6D 0 Y(17)=1.7D 0 Y(18)=1.8D 0 Y(19)=1.9D 0 Y(20)=2.0D 0 Y(21)=2.1D 0 Y(22)=2.2D 0 Y(23)=2.3D 0 Y(24)=2.5D 0 Y(25)=2.75D 0 Y(26)=3.0D 0 Y(27)=3.25D 0 Y(28)=3.5D 0 Y(29)=4.0D 0 Y(30)=4.5D 0 Y(31)=5.0D 0 Y(32)=5.5D 0 Y(33)=6.0D 0 Y(34)=6.5D 0 Y(35)=7.0D 0 Y(36)=7.5D 0 Y(37)=8.0D 0 Y(38)=8.5D 0 Y(39)=9.0D 0 Y(40)=10.0D 0 Y(41)=11.0D 0 Y(42)=12.0D 0 Y(43)=13.0D 0 Y(44)=15.0D 0 Y(45)=17.5D 0 Y(46)=20.0D 0 Y(47)=22.5D 0 Y(48)=25.0D 0 Y(49)=30.0D 0 Y(50)=35.0D 0 Y(51)=40.0D 0 Y(52)=50.0D 0 Y(53)=60.0D 0 Y(54)=70.0D 0 Y(55)=80.0D 0 Y(56)=100.0D 0 Y(57)=150.0D 0 Y(58)=200.0D 0 Y(59)=300.0D 0 Y(60)=500.0D 0 Y(61)=1.0D 5 Y(61+1)= 0.97386702052733792831D 0 Y(61+2)= 0.97390711665677071911D 0 Y(61+3)= 0.97394794566286525039D 0 Y(61+4)= 0.97398947529386626621D 0 Y(61+5)= 0.97407451325974368215D 0 Y(61+6)= 0.97418422166965892644D 0 Y(61+7)= 0.97429732692565188272D 0 Y(61+8)= 0.97441344289222034304D 0 Y(61+9)= 0.97453221704823108216D 0 Y(61+10)=0.97477647977277153145D 0 Y(61+11)=0.97502785781178233026D 0 Y(61+12)=0.97528446418205610067D 0 Y(61+13)=0.97554472005909873148D 0 Y(61+14)=0.97580730389916439626D 0 Y(61+15)=0.97633521198091785788D 0 Y(61+16)=0.97686134356195586299D 0 Y(61+17)=0.97738094095418268249D 0 Y(61+18)=0.97789073928751194169D 0 Y(61+19)=0.97838854811088140808D 0 Y(61+20)=0.97887295363155439576D 0 Y(61+21)=0.97934310478576951385D 0 Y(61+22)=0.97979855827226762515D 0 Y(61+23)=0.98023916551033862691D 0 Y(61+24)=0.98107624468416045728D 0 Y(61+25)=0.98204290774765289406D 0 Y(61+26)=0.98292719363632655668D 0 Y(61+27)=0.98373656564197279264D 0 Y(61+28)=0.98447846610682328991D 0 Y(61+29)=0.98578713114264981186D 0 Y(61+30)=0.98690124654380846379D 0 Y(61+31)=0.98785879054855173380D 0 Y(61+32)=0.98868928566806726978D 0 Y(61+33)=0.98941568049711884384D 0 Y(61+34)=0.99005592865089067038D 0 Y(61+35)=0.99062420259214811899D 0 Y(61+36)=0.99113180018738487730D 0 Y(61+37)=0.99158781685339306121D 0 Y(61+38)=0.99199964493176098231D 0 Y(61+39)=0.99237334707422899195D 0 Y(61+40)=0.99302559755582945576D 0 Y(61+41)=0.99357562712206729735D 0 Y(61+42)=0.99404560031581354300D 0 Y(61+43)=0.99445173790980305195D 0 Y(61+44)=0.99511816085114882367D 0 Y(61+45)=0.99575584307408838284D 0 Y(61+46)=0.99624640327264396775D 0 Y(61+47)=0.99663543022201287399D 0 Y(61+48)=0.99695146031888813172D 0 Y(61+49)=0.99743367936799001685D 0 Y(61+50)=0.99778424120023198554D 0 Y(61+51)=0.99805056960591223604D 0 Y(61+52)=0.99842841443786596919D 0 Y(61+53)=0.99868358857261655169D 0 Y(61+54)=0.99886748198687248566D 0 Y(61+55)=0.99900629944600342584D 0 Y(61+56)=0.99920194660435455419D 0 Y(61+57)=0.99946519560889341627D 0 Y(61+58)=0.99959785208794891934D 0 Y(61+59)=0.99973120214935885075D 0 Y(61+60)=0.99983838442420395745D 0 Y(61+61)=0.999999189398046846077D 0 ELSE IERR=1 ENDIF RETURN 30 IF(N.GE.5.AND.NA.GE.21) THEN N=5 NA=21 DO 31 I=1,N X(I)=0.0D 0 31 CONTINUE X(1)=0.5D 0 IEXT=0 ELSE IERR=1 ENDIF RETURN 130 IF(N.GE.5.AND.NA.GE.30) THEN N=5 NA=30 X(1)= 0.0D 0 X(2)=-1.0D 0 X(3)= 1.0D 1 X(4)= 1.0D 0 X(5)= 1.0D 1 DO 132 I=1,NA Y(I)=-1.0D 0+2.0D 0*DBLE(I-1)/DBLE(NA-1) T=8.0D 0*Y(I) Y(NA+I)=SQRT((T-1.0D 0)**2+1.0D 0)*ATAN(T)/T 132 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 100 IF(N.GE.6.AND.NA.GE.51) THEN N=6 NA=51 X(1)= 2.0D 0 X(2)= 2.0D 0 X(3)= 7.0D 0 X(4)= 0.0D 0 X(5)=-2.0D 0 X(6)= 1.0D 0 DO 101 I=1,NA T=0.1D 0*DBLE(I-1) Y(I)=0.5D 0*EXP(-T)-EXP(-2.0D 0*T)+0.5D 0*EXP(-3.0D 0*T)+ & 1.5D 0*EXP(-1.5D 0*T)*SIN(7.0D 0*T)+ & EXP(-2.5D 0*T)*SIN(5.0D 0*T) 101 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 40 IF(N.GE.6.AND.NA.GE.11) THEN N=6 NA=11 X(1)=0.8D 0 X(2)=1.5D 0 X(3)=1.2D 0 X(4)=3.0D 0 X(5)=0.8D 0 X(6)=6.0D 0 Y(1)=0.5D 0 Y(2)=0.6D 0 Y(3)=0.7D 0 Y(4)=0.77D 0 Y(5)=0.9D 0 Y(6)=1.0D 0 Y(7)=1.1D 0 Y(8)=1.23D 0 Y(9)=1.3D 0 Y(10)=1.4D 0 Y(11)=1.5D 0 ELSE IERR=1 ENDIF RETURN 110 IF(N.GE.9.AND.NA.GE.41) THEN N=9 NA=41 X(1)=0D 0 X(2)=1D 0 X(3)=0D 0 X(4)=-1.5D-1 X(5)=0D 0 X(6)=-6.8D-1 X(7)=0D 0 X(8)=-7.2D-1 X(9)=3.7D-1 DO111 I=1,6 111 Y(I)=1D-2*(I-1) DO112 I=7,20 112 Y(I)=3D-2*(I-7)+7D-2 Y(21)=5D-1 DO113 I=22,35 113 Y(I)=3D-2*(I-22)+54D-2 DO114 I=36,41 114 Y(I)=1D-2*(I-36)+95D-2 DO115 I=1,41 Y(41+I)=COS(Y(I)*3.14159265358979324D 0) 115 Y(82+I)=SIN(Y(I)*3.14159265358979324D 0) IEXT=0 ELSE IERR=1 ENDIF RETURN 50 IF(N.GE.7.AND.NA.GE.5) THEN N=7 NA=5 X(1)=1.0D 0 X(2)=2.0D 0 X(3)=0.0D 0 X(4)=4.0D 0 X(5)=0.0D 0 X(6)=1.0D 0 X(7)=1.0D 0 ELSE IERR=1 ENDIF RETURN 60 IF(N.GE.10.AND.NA.GE.9) THEN N=10 NA=9 X(1)=2.0D 0 X(2)=3.0D 0 X(3)=5.0D 0 X(4)=5.0D 0 X(5)=1.0D 0 X(6)=2.0D 0 X(7)=7.0D 0 X(8)=3.0D 0 X(9)=6.0D 0 X(10)=1.0D 1 ELSE IERR=1 ENDIF RETURN 70 IF(N.GE.20.AND.NA.GE.18) THEN N=20 NA=18 X(1)=2.0D 0 X(2)=3.0D 0 X(3)=5.0D 0 X(4)=5.0D 0 X(5)=1.0D 0 X(6)=2.0D 0 X(7)=7.0D 0 X(8)=3.0D 0 X(9)=6.0D 0 X(10)=1.0D 1 X(11)=2.0D 0 X(12)=2.0D 0 X(13)=6.0D 0 X(14)=1.5D 1 X(15)=1.0D 0 X(16)=2.0D 0 X(17)=1.0D 0 X(18)=2.0D 0 X(19)=1.0D 0 X(20)=3.0D 0 ELSE IERR=1 ENDIF RETURN 220 IF(N.GE.10.AND.NA.GE.2) THEN N=10 NA=2 DO 221 I=1,N X(I)=0.1D 0 221 CONTINUE X(1)=1.0D 2 ELSE IERR=1 ENDIF RETURN 160 IF(N.GE.11.AND.NA.GE.10) THEN N=11 NA=10 DO 161 I=1,N X(I)=1.0D 0 161 CONTINUE ELSE IERR=1 ENDIF RETURN 240 IF(N.GE.20.AND.NA.GE.31) THEN N=20 NA=31 DO 241 I=1,N X(I)=0.0D 0 241 CONTINUE IEXT=0 ELSE IERR=1 ENDIF RETURN 250 IF(N.GE.11.AND.NA.GE.65) THEN N=11 NA=65 X(1)= 1.3D 0 X(2)= 6.5D-1 X(3)= 6.5D-1 X(4)= 0.7D 0 X(5)= 0.6D 0 X(6)= 3.0D 0 X(7)= 5.0D 0 X(8)= 7.0D 0 X(9)= 2.0D 0 X(10)=4.5D 0 X(11)=5.5D 0 Y(1)= 1.366D 0 Y(2)= 1.191D 0 Y(3)= 1.112D 0 Y(4)= 1.013D 0 Y(5)= 0.991D 0 Y(6)= 0.885D 0 Y(7)= 0.831D 0 Y(8)= 0.847D 0 Y(9)= 0.786D 0 Y(10)=0.725D 0 Y(11)=0.746D 0 Y(12)=0.679D 0 Y(13)=0.608D 0 Y(14)=0.655D 0 Y(15)=0.616D 0 Y(16)=0.606D 0 Y(17)=0.602D 0 Y(18)=0.626D 0 Y(19)=0.651D 0 Y(20)=0.724D 0 Y(21)=0.649D 0 Y(22)=0.649D 0 Y(23)=0.694D 0 Y(24)=0.644D 0 Y(25)=0.624D 0 Y(26)=0.661D 0 Y(27)=0.612D 0 Y(28)=0.558D 0 Y(29)=0.553D 0 Y(30)=0.495D 0 Y(31)=0.500D 0 Y(32)=0.423D 0 Y(33)=0.395D 0 Y(34)=0.375D 0 Y(35)=0.372D 0 Y(36)=0.391D 0 Y(37)=0.396D 0 Y(38)=0.405D 0 Y(39)=0.428D 0 Y(40)=0.429D 0 Y(41)=0.523D 0 Y(42)=0.562D 0 Y(43)=0.607D 0 Y(44)=0.653D 0 Y(45)=0.672D 0 Y(46)=0.708D 0 Y(47)=0.633D 0 Y(48)=0.668D 0 Y(49)=0.645D 0 Y(50)=0.632D 0 Y(51)=0.591D 0 Y(52)=0.559D 0 Y(53)=0.597D 0 Y(54)=0.625D 0 Y(55)=0.739D 0 Y(56)=0.710D 0 Y(57)=0.729D 0 Y(58)=0.720D 0 Y(59)=0.636D 0 Y(60)=0.581D 0 Y(61)=0.428D 0 Y(62)=0.292D 0 Y(63)=0.162D 0 Y(64)=0.098D 0 Y(65)=0.054D 0 XMAX=1.0D 1 IEXT=0 ELSE IERR=1 ENDIF RETURN END * SUBROUTINE TAFU06 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 91/12/01 LU : ORIGINAL VERSION * * PURPOSE : * VALUES OF PARTIAL FUNCTIONS IN THE MINIMAX CRITERION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA INDEX OF THE PARTIAL FUNCTION. * RI X(N) VECTOR OF VARIABLES. * RO FA VALUE OF THE PARTIAL FUNCTION AT THE * SELECTED POINT. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAFU06(N,KA,X,FA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),FA REAL*8 T,X1,X2,X3,X4,X5,X6,X7,X8 COMPLEX*16 CA(4),CB(4),C1,C2,C3 REAL*8 XA(3),XB(3),XC(3),BETA INTEGER I,J REAL*8 Y(123),PI COMMON /EMPR06/ Y PARAMETER (PI=3.14159265358979323846D 0) GOTO(10,190,180,80,20,170,120,90,230,210,140,150,200,30,130,100, & 40,110,50,60,70,220,160,240,250),NEXT 10 X1=X(1)*X(1) X2=X(2)*X(2) X3=X(1)+X(1) X4=X(2)+X(2) GO TO (11,12,13),KA 11 FA=X1+X2*X2 RETURN 12 FA=8.0D 0-4.0D 0*(X(1)+X(2))+X1+X2 RETURN 13 FA=2.0D 0*EXP(X(2)-X(1)) RETURN 190 X1=1.0D 1*X(1)/(X(1)+1.0D-1) X2=2.0D 0*X(2)**2 IF (KA.EQ.1) THEN FA=0.5D 0*( X(1)+X1+X2) ELSE IF (KA.EQ.2) THEN FA=0.5D 0*(-X(1)+X1+X2) ELSE IF (KA.EQ.3) THEN FA=0.5D 0*( X(1)-X1+X2) ENDIF RETURN 180 X1=X(1)**2+X(2)**2 X2=SQRT(X1) IF (KA.EQ.1) THEN FA=(X(1)-X2*COS(X2))**2+5.0D-3*X1 ELSE IF (KA.EQ.2) THEN FA=(X(2)-X2*SIN(X2))**2+5.0D-3*X1 ENDIF RETURN 80 GO TO (81,82,83,84,85,86),KA 81 FA=X(1)**2+X(2)**2+X(3)**2-1.0D 0 RETURN 82 FA=X(1)**2+X(2)**2+(X(3)-2.0D 0)**2 RETURN 83 FA=X(1)+X(2)+X(3)-1.0D 0 RETURN 84 FA=X(1)+X(2)-X(3)+1.0D 0 RETURN 85 FA=2.0D 0*(X(1)**3+3.0D 0*X(2)**2+(5.0D 0*X(3)-X(1)+1.0D 0)**2) RETURN 86 FA=X(1)**2-9.0D 0*X(3) RETURN 20 X1=X(1)*X(1) X2=X(2)*X(2) X3=X(3)*X(3) X4=X(4)*X(4) X5=X(1)+X(1) X6=X(2)+X(2) X7=X(3)+X(3) X8=X(4)+X(4) FA=X1+X2+X3+X3+X4-5.0D 0*(X(1)+X(2))-2.1D 1*X(3)+7.0D 0*X(4) 21 GO TO (31,22,23,24),KA 22 FA=FA+1.0D 1*(X1+X2+X3+X4+X(1)-X(2)+X(3)-X(4)-8.0D 0) RETURN 23 FA=FA+1.0D 1*(X1+X2+X2+X3+X4+X4-X(1)-X(4)-1.0D 1) RETURN 24 FA=FA+1.0D 1*(X1+X2+X3+X5-X(2)-X(4)-5.0D 0) RETURN 170 X1=X(1)-(X(4)+1.0D 0)**4 X2=X1*X1 X3=X(2)-X2*X2 X4=X3*X3 FA=X2+X4+2.0D 0*X(3)**2+X(4)**2-5.0D 0*(X1+X3)-2.1D 1*X(3)+ * 7.0D 0*X(4) GO TO (171,172,173,174),KA 171 CONTINUE RETURN 172 FA=FA+1.0D 1*(X2+X4+X(3)**2+X(4)**2+X1-X3+X(3)-X(4)-8.0D 0) RETURN 173 FA=FA+1.0D 1*(X2+2.0D 0*X4+X(3)**2+2.0D 0*X(4)**2-X1-X(4)- * 1.0D 1) RETURN 174 FA=FA+1.0D 1*(X2+X4+X(3)**2+2.0D 0*X1-X3-X(4)-5.0D 0) RETURN 120 T=Y(KA) FA=(X(3)/X(2))*EXP(-X(1)*T)*SIN(X(2)*T)-Y(KA+21) RETURN 90 FA=Y(KA)-X(1)-DBLE(KA)/(DBLE(16-KA)*X(2)+DBLE(MIN(KA,16-KA))* & X(3)) RETURN 230 T=Y(KA+11) FA=Y(KA)-X(1)*T*(T+X(2))/((T+X(3))*T+X(4)) RETURN 210 T=0.2D 0*DBLE(KA) FA=(X(1)+X(2)*T-EXP(T))**2+(X(3)+X(4)*SIN(T)-COS(T))**2 RETURN 140 T=Y(KA) FA=X(4)-((X(1)*T+X(2))*T+X(3))**2-Y(KA+21) RETURN 150 T=Y(KA) FA=X(1)*EXP(X(3)*T)+X(2)*EXP(X(4)*T)-Y(KA+21) RETURN 200 T=Y(KA) FA=X(1)*ABS((T+X(2)+1.0D 0/(X(3)*T+X(4)))/((T+1.0D 0)*Y(61+KA))) & **(T+5.0D-1)-1.0D 0 RETURN 30 T=0.1D 0*DBLE(KA-1)-1.0D 0 X1=X(1)+T*X(2) X2=1.0D 0/(1.0D 0+T*(X(3)+T*(X(4)+T*X(5)))) X3=X1*X2-EXP(T) FA=X3 31 RETURN 130 T=Y(KA) FA=(X(1)+T*(X(2)+T*X(3)))/(1.0D 0+T*(X(4)+T*X(5)))-Y(KA+30) RETURN 100 T=0.1D 0*DBLE(KA-1) FA=X(1)*EXP(-X(2)*T)*COS(X(3)*T+X(4))+X(5)*EXP(-X(6)*T)-Y(KA) RETURN 40 BETA=0.5D 0*PI*Y(KA) DO 41 I=1,3 J=I+I XA(I)=X(J-1) XB(I)=X(J) 41 CONTINUE CA(4)=CMPLX(1.0D 0,0.0D 0) CB(4)=1.0D 1*CA(4) DO 42 J=1,3 I=4-J XC(I)=BETA*XA(I) T=XC(I) X1=COS(T) X2=SIN(T) C1=CMPLX(X1,0.0D 0) C2=CMPLX(0.0D 0,(X2*XB(I))) C3=CMPLX(0.0D 0,(X2/XB(I))) CB(I)=C1*CB(I+1)+C2*CA(I+1) CA(I)=C3*CB(I+1)+C1*CA(I+1) 42 CONTINUE C1=-CA(1) C2=CB(1)-C1 C3=1.0D 0+2.0D 0*C1/C2 FA=CDABS(C3) RETURN 110 T=Y(41+KA) BETA=Y(82+KA) X1=(X(1)+(1D 0+X(2))*T)**2+((1D 0-X(2))*BETA)**2 X2=(X(3)+(1D 0+X(4))*T)**2+((1D 0-X(4))*BETA)**2 X3=(X(5)+(1D 0+X(6))*T)**2+((1D 0-X(6))*BETA)**2 X4=(X(7)+(1D 0+X(8))*T)**2+((1D 0-X(8))*BETA)**2 IF(X2.EQ.0D 0)X2=1D-30 IF(X4.EQ.0D 0)X4=1D-30 FA=X(9)*SQRT(X1/X2)*SQRT(X3/X4)-ABS(1D 0-2D 0*Y(KA)) RETURN 50 FA=(X(1)-1.0D 1)**2+5.0D 0*(X(2)-1.2D 1)**2+X(3)**4+3.0D 0* &(X(4)-1.1D 1)**2+1.0D 1*X(5)**6+7.0D 0*X(6)**2+X(7)**4-4.0D 0* &X(6)*X(7)-1.0D 1*X(6)-8.0D 0*X(7) 51 GO TO (31,52,53,54,55),KA 52 FA=FA+1.0D 1*(2.0D 0*X(1)**2+3.0D 0*X(2)**4+X(3)+ &4.0D 0*X(4)**2+5.0D 0*X(5)-1.27D 2) RETURN 53 FA=FA+1.0D 1*(7.0D 0*X(1)+3.0D 0*X(2)+1.0D 1*X(3)**2+X(4)- &X(5)-2.82D 2) RETURN 54 FA=FA+1.0D 1*(2.3D 1*X(1)+X(2)**2+6.0D 0*X(6)**2-8.0D 0*X(7)- &1.96D 2) RETURN 55 FA=FA+1.0D 1*(4.0D 0*X(1)**2+X(2)**2-3.0D 0*X(1)*X(2)+2.0D 0* &X(3)**2+5.0D 0*X(6)-1.1D 1*X(7)) RETURN 60 FA=X(1)**2+X(2)**2+X(1)*X(2)-1.4D 1*X(1)-1.6D 1*X(2)+ &(X(3)-1.0D 1)**2+4.0D 0*(X(4)-5.0D 0)**2+(X(5)-3.0D 0)**2+ &2.0D 0*(X(6)-1.0D 0)**2+5.0D 0*X(7)**2+7.0D 0*(X(8)- &1.1D 1)**2+2.0D 0*(X(9)-1.0D 1)**2+(X(10)-7.0D 0)**2+4.5D 1 61 GO TO (31,62,63,64,65,66,67,68,69),KA 62 FA=FA+1.0D 1*(3.0D 0*(X(1)-2.0D 0)**2+4.0D 0*(X(2)- &3.0D 0)**2+2.0D 0*X(3)**2-7.0D 0*X(4)-1.2D 2) RETURN 63 FA=FA+1.0D 1*(5.0D 0*X(1)**2+8.0D 0*X(2)+(X(3)-6.0D 0)**2- &2.0D 0*X(4)-4.0D 1) RETURN 64 FA=FA+1.0D 1*(0.5D 0*(X(1)-8.0D 0)**2+2.0D 0*(X(2)- &4.0D 0)**2+3.0D 0*X(5)**2-X(6)-3.0D 1) RETURN 65 FA=FA+1.0D 1*(X(1)**2+2.0D 0*(X(2)-2.0D 0)**2- &2.0D 0*X(1)*X(2)+1.4D 1*X(5)-6.0D 0*X(6)) RETURN 66 FA=FA+1.0D 1*(4.0D 0*X(1)+5.0D 0*X(2)-3.0D 0*X(7)+ &9.0D 0*X(8)-1.05D 2) RETURN 67 FA=FA+1.0D 1*(1.0D 1*X(1)-8.0D 0*X(2)-1.7D 1*X(7)+ &2.0D 0*X(8)) RETURN 68 FA=FA+1.0D 1*(6.0D 0*X(2)-3.0D 0*X(1)+1.2D 1*(X(9)- &8.0D 0)**2-7.0D 0*X(10)) RETURN 69 FA=FA+1.0D 1*(2.0D 0*X(2)-8.0D 0*X(1)+5.0D 0*X(9)- &2.0D 0*X(10)-1.2D 1) RETURN 70 FA=X(1)**2+X(2)**2+X(1)*X(2)-1.4D 1*X(1)-1.6D 1*X(2)+(X(3)- &1.0D 1)**2+4.0D 0*(X(4)-5.0D 0)**2+(X(5)-3.0D 0)**2+2.0D 0* &(X(6)-1.0D 0)**2+5.0D 0*X(7)**2+7.0D 0*(X(8)-1.1D 1)**2+ &2.0D 0*(X(9)-1.0D 1)**2+(X(10)-7.0D 0)**2+(X(11)-9.0D 0)**2+ &1.0D 1*(X(12)-1.0D 0)**2+5.0D 0*(X(13)-7.0D 0)**2+4.0D 0* &(X(14)-1.4D 1)**2+2.7D 1*(X(15)-1.0D 0)**2+X(16)**4+(X(17)- &2.0D 0)**2+1.3D 1*(X(18)-2.0D 0)**2+(X(19)-3.D 0)**2+X(20)**2+ &9.5D 1 71 GO TO (31,62,63,64,65,66,67,68,69,72,73,74,75,76,77,78,79,89),KA 72 FA=FA+1.0D 1*(X(1)+X(2)+4.0D 0*X(11)-2.1D 1*X(12)) RETURN 73 FA=FA+1.0D 1*(X(1)**2+1.5D 1*X(11)-8.0D 0*X(12)-2.8D 1) RETURN 74 FA=FA+1.0D 1*(4.0D 0*X(1)+9.0D 0*X(2)+5.0D 0*X(13)**2-9.0D 0* &X(14)-8.7D 1) RETURN 75 FA=FA+1.0D 1*(3.0D 0*X(1)+4.0D 0*X(2)+3.0D 0*(X(13)- 16.0D 0)**2-1.4D 1*X(14)-1.0D 1) RETURN 76 FA=FA+1.0D 1*(1.4D 1*X(1)**2+3.5D 1*X(15)-7.9D 1*X(16)- &9.2D 1) RETURN 77 FA=FA+1.0D 1*(1.5D 1*X(2)**2+1.1D 1*X(15)-6.1D 1*X(16)- &5.4D 1) RETURN 78 FA=FA+1.0D 1*(5.0D 0*X(1)**2+2.0D 0*X(2)+9.0D 0*X(17)**4- &X(18)-6.8D 1) RETURN 79 FA=FA+1.0D 1*(X(1)**2-X(2)+1.9D 1*X(19)-2.0D 1*X(20)+1.9D 1) RETURN 89 FA=FA+1.0D 1*(7.0D 0*X(1)**2+5.0D 0*X(2)**2+X(19)**2-3.0D 1* &X(20)) RETURN 220 X1=0.0D 0 DO 221 I=1,N X3=1.0D 0 X4=X(I) IF (I.EQ.1) X3=1.0D-8 IF (I.EQ.4) X3=4.0D 0 IF (I.EQ.2.AND.KA.EQ.1) X4=X(I)+2.0D 0 IF (I.EQ.2.AND.KA.EQ.2) X4=X(I)-2.0D 0 X1=X1+X3*X4**2 221 CONTINUE FA=EXP(X1) RETURN 160 FA=0.0D 0 DO 161 I=1,N X1=1.0D 0*DBLE(I+KA-1) X2=X(I)-SIN(DBLE(2*I+KA-3)) FA=FA+X1*EXP(X2**2) 161 CONTINUE RETURN 240 IF (KA.EQ.1) THEN FA=X(1) ELSE IF (KA.EQ.2) THEN FA=X(2)-X(1)**2-1.0D 0 ELSE T=DBLE(KA-2)/2.9D 1 X1=0.0D 0 X2=X(1) DO 241 I=2,N X1=X1+DBLE(I-1)*X(I)*T**(I-2) X2=X2+X(I)*T**(I-1) 241 CONTINUE FA=X1-X2**2-1.0D 0 ENDIF RETURN 250 T=1.0D-1*DBLE(KA-1) FA=Y(KA)-X(1)*EXP(-X(5)*T)-X(2)*EXP(-X(6)*(T-X(9))**2)- & X(3)*EXP(-X(7)*(T-X(10))**2)-X(4)*EXP(-X(8)*(T-X(11))**2) RETURN END * SUBROUTINE TAGU06 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 90/12/01 LU : ORIGINAL VERSION * * PURPOSE : * GRADIENTS OF PARTIAL FUNCTIONS IN THE MINIMAX CRITERION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA INDEX OF THE PARTIAL FUNCTION. * RI X(N) VECTOR OF VARIABLES. * RO GA(N) GRADIENT OF THE PARTIAL FUNCTION AT THE * SELECTED POINT. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAGU06(N,KA,X,GA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),GA(N) REAL*8 FA,T,X1,X2,X3,X4,X5,X6,X7,X8 COMPLEX*16 CA(4),CB(4),CC(6),C1,C2,C3 REAL*8 XA(3),XB(3),XC(3),BETA INTEGER I,J REAL*8 Y(123),PI COMMON /EMPR06/ Y PARAMETER (PI=3.14159265358979323846D 0) GOTO(10,190,180,80,20,170,120,90,230,210,140,150,200,30,130,100, & 40,110,50,60,70,220,160,240,250),NEXT 10 X1=X(1)*X(1) X2=X(2)*X(2) X3=X(1)+X(1) X4=X(2)+X(2) GO TO (11,12,13),KA 11 GA(1)=X3 GA(2)=(X2+X2)*X4 RETURN 12 GA(1)=-4.0D 0+X3 GA(2)=-4.0D 0+X4 RETURN 13 FA=2.0D 0*EXP(X(2)-X(1)) GA(1)=-FA GA(2)=+FA RETURN 190 X1=1.0D 0/(X(1)+1.0D-1)**2 GA(2)=2.0D 0*X(2) IF (KA.EQ.1) THEN GA(1)=0.5D 0*( 1.0D 0+X1) ELSE IF (KA.EQ.2) THEN GA(1)=0.5D 0*(-1.0D 0+X1) ELSE IF (KA.EQ.3) THEN GA(1)=0.5D 0*( 1.0D 0-X1) ENDIF RETURN 180 X1=X(1)**2+X(2)**2 X2=SQRT(X1) X3=COS(X2) X4=SIN(X2) IF (KA.EQ.1) THEN X5=2.0D 0*(X(1)-X2*X3) X6=-(X3/X2-X4) GA(1)=X5*(X(1)*X6+1.0D 0)+1.0D-2*X(1) GA(2)=X5*X(2)*X6+1.0D-2*X(2) ELSE IF (KA.EQ.2) THEN X5=2.0D 0*(X(2)-X2*X4) X6=-(X4/X2+X3) GA(1)=X5*X(1)*X6+1.0D-2*X(1) GA(2)=X5*(X(2)*X6+1.0D 0)+1.0D-2*X(2) ENDIF RETURN 80 GO TO (81,82,83,84,85,86),KA 81 GA(1)=2.0D 0*X(1) GA(2)=2.0D 0*X(2) GA(3)=2.0D 0*X(3) RETURN 82 GA(1)=2.0D 0*X(1) GA(2)=2.0D 0*X(2) GA(3)=2.0D 0*(X(3)-2.0D 0) RETURN 83 GA(1)=1.0D 0 GA(2)=1.0D 0 GA(3)=1.0D 0 RETURN 84 GA(1)= 1.0D 0 GA(2)= 1.0D 0 GA(3)=-1.0D 0 RETURN 85 GA(1)=6.0D 0*X(1)**2-4.0D 0*(5.0D 0*X(3)-X(1)+1.0D 0) GA(2)=1.2D 1*X(2) GA(3)=2.0D 1*(5.0D 0*X(3)-X(1)+1.0D 0) RETURN 86 GA(1)= 2.0D 0*X(1) GA(2)= 0.0D 0 GA(3)=-9.0D 0 RETURN 20 X1=X(1)*X(1) X2=X(2)*X(2) X3=X(3)*X(3) X4=X(4)*X(4) X5=X(1)+X(1) X6=X(2)+X(2) X7=X(3)+X(3) X8=X(4)+X(4) GA(1)=X5-5.0D 0 GA(2)=X6-5.0D 0 GA(3)=X7+X7-2.1D 1 GA(4)=X8+7.0D 0 21 GO TO (31,22,23,24),KA 22 GA(1)=GA(1)+1.0D 1*(X5+1.0D 0) GA(2)=GA(2)+1.0D 1*(X6-1.0D 0) GA(3)=GA(3)+1.0D 1*(X7+1.0D 0) GA(4)=GA(4)+1.0D 1*(X8-1.0D 0) RETURN 23 GA(1)=GA(1)+1.0D 1*(X5-1.0D 0) GA(2)=GA(2)+1.0D 1*(X6+X6) GA(3)=GA(3)+1.0D 1*X7 GA(4)=GA(4)+1.0D 1*(X8+X8-1.0D 0) RETURN 24 GA(1)=GA(1)+1.0D 1*(X5+2.0D 0) GA(2)=GA(2)+1.0D 1*(X6-1.0D 0) GA(3)=GA(3)+1.0D 1*X7 GA(4)=GA(4)-1.0D 1 RETURN 170 X1=X(1)-(X(4)+1.0D 0)**4 X2=X1*X1 X3=X(2)-X2*X2 X4=X1*X3 X5=-4.0D 0*(X(4)+1.0D 0)**3 GA(1)=2.0D 0*X1-8.0D 0*X4-5.0D 0*(1.0D 0-4.0D 0*X1) GA(2)=2.0D 0*X3-5.0D 0 GA(3)=4.0D 0*X(3)-2.1D 1 GA(4)=2.0D 0*X1*X5-8.0D 0*X4*X5+2.0D 0*X(4)- & 5.0D 0*(X5-4.0D 0*X1*X5)+7.0D 0 GO TO (171,172,173,174),KA 171 CONTINUE RETURN 172 GA(1)=GA(1)+1.0D 1*(2.0D 0*X1-8.0D 0*X4+1.0D 0+4.0D 0*X1) GA(2)=GA(2)+1.0D 1*(2.0D 0*X3-1.0D 0) GA(3)=GA(3)+1.0D 1*(2.0D 0*X(3)+1.0D 0) GA(4)=GA(4)+1.0D 1*(2.0D 0*X1*X5-8.0D 0*X4*X5+2.0D 0*X(4)+ & X5+4.0D 0*X1*X5-1.0D 0) RETURN 173 GA(1)=GA(1)+1.0D 1*(2.0D 0*X1-1.6D 1*X4-1.0D 0) GA(2)=GA(2)+1.0D 1*(4.0D 0*X3) GA(3)=GA(3)+1.0D 1*(2.0D 0*X(3)) GA(4)=GA(4)+1.0D 1*(2.0D 0*X1*X5-1.6D 1*X4*X5+4.0D 0*X(4)-X5- & 1.0D 0) RETURN 174 GA(1)=GA(1)+1.0D 1*(2.0D 0*X1-8.0D 0*X4+2.0D 0+4.0D 0*X1) GA(2)=GA(2)+1.0D 1*(2.0D 0*X3-1.0D 0) GA(3)=GA(3)+1.0D 1*(2.0D 0*X(3)) GA(4)=GA(4)+1.0D 1*(2.0D 0*X1*X5-8.0D 0*X4*X5+ & 2.0D 0*X5+4.0D 0*X1*X5-1.0D 0) RETURN 120 T=Y(KA) X1=EXP(-X(1)*T)/X(2) X2=SIN( X(2)*T) X3=COS( X(2)*T) GA(1)=-T*X(3)*X1*X2 GA(2)= X(3)*X1*(T*X3-X2/X(2)) GA(3)= X1*X2 RETURN 90 C1=DBLE(16-KA) C2=DBLE(MIN(KA,16-KA)) C3=DBLE(KA)/(C1*X(2)+C2*X(3))**2 GA(1)=-1.0D 0 GA(2)=C1*C3 GA(3)=C2*C3 RETURN 230 T=Y(KA+11) X1=X(1)*T*(T+X(2)) X2=((T+X(3))*T+X(4)) X3=X1/X2**2 GA(1)=-T*(T+X(2))/X2 GA(2)=-T*X(1)/X2 GA(3)=T*X3 GA(4)=X3 RETURN 210 T=0.2D 0*DBLE(KA) GA(1)=2.0D 0*(X(1)+X(2)*T-EXP(T)) GA(2)=2.0D 0*(X(1)+X(2)*T-EXP(T))*T GA(3)=2.0D 0*(X(3)+X(4)*SIN(T)-COS(T)) GA(4)=2.0D 0*(X(3)+X(4)*SIN(T)-COS(T))*SIN(T) RETURN 140 T=Y(KA) X1=-2.0D 0*((X(1)*T+X(2))*T+X(3)) GA(1)=X1*T**2 GA(2)=X1*T GA(3)=X1 GA(4)=1.0D 0 RETURN 150 T=Y(KA) X1=EXP(X(3)*T) X2=EXP(X(4)*T) GA(1)=X1 GA(2)=X2 GA(3)=X(1)*T*X1 GA(4)=X(2)*T*X2 RETURN 200 T=Y(KA) X1=T+X(2)+1.0D 0/(X(3)*T+X(4)) IF(X1.EQ.0D 0)X1=1D-30 X2=X1/((T+1.0D 0)*Y(61+KA)) GA(1)=ABS(X2)**(T+5.0D-1) GA(2)=X(1)*GA(1)*(T+5.0D-1)/X1 GA(4)=-GA(2)/(X(3)*T+X(4))**2 GA(3)=GA(4)*T RETURN 30 T=0.1D 0*DBLE(KA-1)-1.0D 0 X1=X(1)+T*X(2) X2=1.0D 0/(1.0D 0+T*(X(3)+T*(X(4)+T*X(5)))) X3=X1*X2-EXP(T) GA(1)=X2 GA(2)=X2*T GA(3)=-X1*X2*X2*T GA(4)=GA(3)*T GA(5)=GA(4)*T 31 RETURN 130 T=Y(KA) X1=1.0D 0/(1.0D 0+T*(X(4)+T*X(5))) X2=X(1)+T*(X(2)+T*X(3)) GA(1)= X1 GA(2)= X1*T GA(3)= X1*T*T GA(4)=-X2*X1**2*T GA(5)=-X2*X1**2*T*T RETURN 100 T=0.1D 0*DBLE(KA-1) X1=EXP(-X(2)*T) X2=COS(X(3)*T+X(4)) X3=SIN(X(3)*T+X(4)) X4=EXP(-X(6)*T) GA(1)= X1*X2 GA(2)=-X1*X2*X(1)*T GA(3)=-X1*X3*X(1)*T GA(4)=-X1*X3*X(1) GA(5)= X4 GA(6)=-X4*X(5)*T RETURN 40 BETA=0.5D 0*PI*Y(KA) DO 41 I=1,3 J=I+I XA(I)=X(J-1) XB(I)=X(J) 41 CONTINUE CA(4)=CMPLX(1.0D 0,0.0D 0) CB(4)=1.0D 1*CA(4) DO 42 J=1,3 I=4-J XC(I)=BETA*XA(I) T=XC(I) X1=COS(T) X2=SIN(T) C1=CMPLX(X1,0.0D 0) C2=CMPLX(0.0D 0,(X2*XB(I))) C3=CMPLX(0.0D 0,(X2/XB(I))) CB(I)=C1*CB(I+1)+C2*CA(I+1) CA(I)=C3*CB(I+1)+C1*CA(I+1) 42 CONTINUE C1=-CA(1) C2=CB(1)-C1 C3=1.0D 0+2.0D 0*C1/C2 FA=CDABS(C3) C3=CONJG(C3) C1=2.0D 0/C2 DO 43 I=1,3 T=XC(I) J=I+I CC(J)=(CB(I)*CA(I)-CB(I+1)*CA(I+1))/(C2*XB(I)) CC(J-1)=BETA*(CB(I)*CA(I+1)-CB(I+1)*CA(I))/(C2*SIN(T)) 43 CONTINUE DO 44 I=1,6 GA(I)=DBLE(C1*C3*CC(I))/FA 44 CONTINUE RETURN 110 T=Y(41+KA) BETA=Y(82+KA) X1=(X(1)+(1D 0+X(2))*T)**2+((1D 0-X(2))*BETA)**2 X2=(X(3)+(1D 0+X(4))*T)**2+((1D 0-X(4))*BETA)**2 X3=(X(5)+(1D 0+X(6))*T)**2+((1D 0-X(6))*BETA)**2 X4=(X(7)+(1D 0+X(8))*T)**2+((1D 0-X(8))*BETA)**2 IF(X1.EQ.0D 0)X1=1D-30 IF(X2.EQ.0D 0)X2=1D-30 IF(X3.EQ.0D 0)X3=1D-30 IF(X4.EQ.0D 0)X4=1D-30 FA=SQRT(X1/X2)*SQRT(X3/X4) GA(9)=FA FA=X(9)*FA GA(1)=FA/X1*(X(1)+T*(1D 0+X(2))) GA(2)=FA/X1*(X(2)+2D 0*T*T-1D 0+X(1)*T) GA(3)=-FA/X2*(X(3)+T*(1D 0+X(4))) GA(4)=-FA/X2*(X(4)+2D 0*T*T-1D 0+X(3)*T) GA(5)=FA/X3*(X(5)+T*(1D 0+X(6))) GA(6)=FA/X3*(X(6)+2D 0*T*T-1D 0+X(5)*T) GA(7)=-FA/X4*(X(7)+T*(1D 0+X(8))) GA(8)=-FA/X4*(X(8)+2D 0*T*T-1D 0+X(7)*T) RETURN 50 GA(1)=2.0D 0*(X(1)-1.0D 1) GA(2)=1.0D 1*(X(2)-1.2D 1) GA(3)=4.0D 0*X(3)**3 GA(4)=6.0D 0*(X(4)-1.1D 1) GA(5)=6.0D 1*X(5)**5 GA(6)=1.4D 1*X(6)-4.0D 0*X(7)-1.0D 1 GA(7)=4.0D 0*X(7)**3-4.0D 0*X(6)-8.0D 0 51 GO TO (31,52,53,54,55),KA 52 GA(1)=GA(1)+4.0D 1*X(1) GA(2)=GA(2)+1.2D 2*X(2)**3 GA(3)=GA(3)+1.0D 1 GA(4)=GA(4)+8.0D 1*X(4) GA(5)=GA(5)+5.0D 1 RETURN 53 GA(1)=GA(1)+7.0D 1 GA(2)=GA(2)+3.0D 1 GA(3)=GA(3)+2.0D 2*X(3) GA(4)=GA(4)+1.0D 1 GA(5)=GA(5)-1.0D 1 RETURN 54 GA(1)=GA(1)+2.3D 2 GA(2)=GA(2)+2.0D 1*X(2) GA(6)=GA(6)+1.2D 2*X(6) GA(7)=GA(7)-8.0D 1 RETURN 55 GA(1)=GA(1)+8.0D 1*X(1)-3.0D 1*X(2) GA(2)=GA(2)+2.0D 1*X(2)-3.0D 1*X(1) GA(3)=GA(3)+4.0D 1*X(3) GA(6)=GA(6)+5.0D 1 GA(7)=GA(7)-1.1D 2 RETURN 60 GA(1)=2.0D 0*X(1)+X(2)-1.4D 1 GA(2)=2.0D 0*X(2)+X(1)-1.6D 1 GA(3)=2.0D 0*(X(3)-1.0D 1) GA(4)=8.0D 0*(X(4)-5.0D 0) GA(5)=2.0D 0*(X(5)-3.0D 0) GA(6)=4.0D 0*(X(6)-1.0D 0) GA(7)=1.0D 1*X(7) GA(8)=1.4D 1*(X(8)-1.1D 1) GA(9)=4.0D 0*(X(9)-1.0D 1) GA(10)=2.0D 0*(X(10)-7.0D 0) 61 GO TO (31,62,63,64,65,66,67,68,69),KA 62 GA(1)=GA(1)+6.0D 1*(X(1)-2.0D 0) GA(2)=GA(2)+8.0D 1*(X(2)-3.0D 0) GA(3)=GA(3)+4.0D 1*X(3) GA(4)=GA(4)-7.0D 1 RETURN 63 GA(1)=GA(1)+1.0D 2*X(1) GA(2)=GA(2)+8.0D 1 GA(3)=GA(3)+2.0D 1*(X(3)-6.0D 0) GA(4)=GA(4)-2.0D 1 RETURN 64 GA(1)=GA(1)+1.0D 1*(X(1)-8.0D 0) GA(2)=GA(2)+4.0D 1*(X(2)-4.0D 0) GA(5)=GA(5)+6.0D 1*X(5) GA(6)=GA(6)-1.0D 1 RETURN 65 GA(1)=GA(1)+2.0D 1*X(1)-2.0D 1*X(2) GA(2)=GA(2)+4.0D 1*(X(2)-2.0D 0)-2.0D 1*X(1) GA(5)=GA(5)+1.4D 2 GA(6)=GA(6)-6.0D 1 RETURN 66 GA(1)=GA(1)+4.0D 1 GA(2)=GA(2)+5.0D 1 GA(7)=GA(7)-3.0D 1 GA(8)=GA(8)+9.0D 1 RETURN 67 GA(1)=GA(1)+1.0D 2 GA(2)=GA(2)-8.0D 1 GA(7)=GA(7)-1.7D 2 GA(8)=GA(8)+2.0D 1 RETURN 68 GA(1)=GA(1)-3.0D 1 GA(2)=GA(2)+6.0D 1 GA(9)=GA(9)+2.4D 2*(X(9)-8.0D 0) GA(10)=GA(10)-7.0D 1 RETURN 69 GA(1)=GA(1)-8.0D 1 GA(2)=GA(2)+2.0D 1 GA(9)=GA(9)+5.0D 1 GA(10)=GA(10)-2.0D 1 RETURN 70 GA(1)=2.0D 0*X(1)+X(2)-1.4D 1 GA(2)=2.0D 0*X(2)+X(1)-1.6D 1 GA(3)=2.0D 0*(X(3)-1.0D 1) GA(4)=8.0D 0*(X(4)-5.0D 0) GA(5)=2.0D 0*(X(5)-3.0D 0) GA(6)=4.0D0*(X(6)-1.0D 0) GA(7)=1.0D 1*X(7) GA(8)=1.4D 1*(X(8)-1.1D 1) GA(9)=4.0D 0*(X(9)-1.0D 1) GA(10)=2.0D 0*(X(10)-7.0D0) GA(11)=2.0D 0*(X(11)-9.0D0) GA(12)=2.0D 1*(X(12)-1.0D 0) GA(13)=1.0D 1*(X(13)-7.0D 0) GA(14)=8.0D 0*(X(14)-1.4D 1) GA(15)=5.4D 1*(X(15)-1.0D 0) GA(16)=4.0D 0*X(16)**3 GA(17)=2.0D 0*(X(17)-2.0D 0) GA(18)=2.6D 1*(X(18)-2.0D 0) GA(19)=2.0D 0*(X(19)-3.0D 0) GA(20)=2.0D 0*X(20) 71 GO TO (31,62,63,64,65,66,67,68,69,72,73,74,75,76,77,78,79,89),KA 72 GA(1)=GA(1)+1.0D 1 GA(2)=GA(2)+1.0D 1 GA(11)=GA(11)+4.0D 1 GA(12)=GA(12)-2.1D 2 RETURN 73 GA(1)=GA(1)+2.0D 1*X(1) GA(11)=GA(11)+1.5D 2 GA(12)=GA(12)-8.0D 1 RETURN 74 GA(1)=GA(1)+4.0D 1 GA(2)=GA(2)+9.0D 1 GA(13)=GA(13)+1.0D 2*X(13) GA(14)=GA(14)-9.0D 1 RETURN 75 GA(1)=GA(1)+3.0D 1 GA(2)=GA(2)+4.0D 1 GA(13)=GA(13)+6.0D 1*(X(13)-6.0D 0) GA(14)=GA(14)-1.4D 2 RETURN 76 GA(1)=GA(1)+2.8D 2*X(1) GA(15)=GA(15)+3.5D 2 GA(16)=GA(16)-7.9D 2 RETURN 77 GA(2)=GA(2)+3.0D 2*X(2) GA(15)=GA(15)+1.1D 2 GA(16)=GA(16)-6.1D 2 RETURN 78 GA(1)=GA(1)+1.0D 2*X(1) GA(2)=GA(2)+2.0D 1 GA(17)=GA(17)+3.6D 2*X(17)**3 GA(18)=GA(18)-1.0D 1 RETURN 79 GA(1)=GA(1)+2.0D 1*X(1) GA(2)=GA(2)-1.0D 1 GA(19)=GA(19)+1.9D 2 GA(20)=GA(20)-2.0D 2 RETURN 89 GA(1)=GA(1)+1.4D 2*X(1) GA(2)=GA(2)+1.0D 2*X(2) GA(19)=GA(19)+2.0D 1*X(19) GA(20)=GA(20)-3.0D 2 RETURN 220 X1=0.0D 0 DO 221 I=1,N X3=1.0D 0 X4=X(I) IF (I.EQ.1) X3=1.0D-8 IF (I.EQ.4) X3=4.0D 0 IF (I.EQ.2.AND.KA.EQ.1) X4=X(I)+2.0D 0 IF (I.EQ.2.AND.KA.EQ.2) X4=X(I)-2.0D 0 X1=X1+X3*X4**2 221 CONTINUE X2=EXP(X1) DO 222 I=1,N X3=2.0D 0 X4=X(I) IF (I.EQ.1) X3=2.0D-8 IF (I.EQ.4) X3=8.0D 0 IF (I.EQ.2.AND.KA.EQ.1) X4=X(I)+2.0D 0 IF (I.EQ.2.AND.KA.EQ.2) X4=X(I)-2.0D 0 GA(I)=X2*X3*X4 222 CONTINUE RETURN 160 DO 161 I=1,N X1=1.0D 0*DBLE(I+KA-1) X2=X(I)-SIN(DBLE(2*I+KA-3)) GA(I)=2.0D 0*X1*X2*EXP(X2**2) 161 CONTINUE RETURN 240 IF (KA.LE.2) THEN DO 241 I=2,N GA(I)=0.0D 0 241 CONTINUE IF (KA.EQ.1) THEN GA(1)=1.0D 0 ELSE IF (KA.EQ.2) THEN GA(1)=-2.0D 0*X(1) GA(2)= 1.0D 0 ENDIF ELSE GA(1)=0.0D 0 T=DBLE(KA-2)/2.9D 1 X2=X(1) DO 242 I=2,N X2=X2+X(I)*T**(I-1) 242 CONTINUE DO 243 I=1,N IF (I.GT.1) GA(I)=DBLE(I-1)*T**(I-2) GA(I)=GA(I)-2.0D 0*X2*T**(I-1) 243 CONTINUE ENDIF RETURN 250 T=1.0D-1*DBLE(KA-1) X1=EXP(-X(5)*T) X2=EXP(-X(6)*(T-X( 9))**2) X3=EXP(-X(7)*(T-X(10))**2) X4=EXP(-X(8)*(T-X(11))**2) GA(1)= -X1 GA(2)= -X2 GA(3)= -X3 GA(4)= -X4 GA(5)= X1*X(1)*T GA(6)= X2*X(2)*(T-X( 9))**2 GA(7)= X3*X(3)*(T-X(10))**2 GA(8)= X4*X(4)*(T-X(11))**2 GA(9)= -2.0D 0*X2*X(2)*X(6)*(T-X( 9)) GA(10)=-2.0D 0*X3*X(3)*X(7)*(T-X(10)) GA(11)=-2.0D 0*X4*X(4)*X(8)*(T-X(11)) RETURN END * SUBROUTINE TAHD06 ALL SYSTEMS 99/12/01 C PORTABILITY : ALL SYSTEMS C 95/12/01 LU : ORIGINAL VERSION * * PURPOSE : * HESSIAN MATRICES OF PARTIAL FUNCTIONS IN THE MINIMAX CRITERION. * DENSE VERSION. * * PARAMETERS : * II N NUMBER OF VARIABLES. * II KA INDEX OF THE PARTIAL FUNCTION. * RI X(N) VECTOR OF VARIABLES. * RO HA(N*(N+1)/2) HESSIAN MATRIX OF THE PARTIAL FUNCTION * AT THE SELECTED POINT. * II NEXT NUMBER OF THE TEST PROBLEM. * SUBROUTINE TAHD06(N,KA,X,HA,NEXT) INTEGER N,KA,NEXT REAL*8 X(N),HA(N*(N+1)/2) REAL*8 T,X1,X2,X3,X4,X5,X6,X7,X8 COMPLEX*16 CA(4),CB(4),CC(6),DD(6),C1,C2,C3,CI,S1,S2,S3,S4 REAL*8 GA(8),CT(3),ST(3),XA(3),XB(3),XC(3),BETA,FA INTEGER I,J,L REAL*8 Y(123),PI COMMON /EMPR06/ Y PARAMETER (PI=3.14159265358979323846D 0) GOTO(10,190,180,80,20,170,120,90,230,210,140,150,200,30,130,100, & 40,110,50,60,70,220,160,240,250),NEXT 10 HA(1)=2.0D 0 HA(2)=0.0D 0 HA(3)=2.0D 0 IF(KA.EQ.1) HA(3)=12.0D 0*X(2)*X(2) IF(KA.EQ.3) THEN HA(1)=2.0D 0*EXP(X(2)-X(1)) HA(2)=-HA(1) HA(3)= HA(1) ENDIF RETURN 190 CONTINUE HA(2)=0.0D 0 HA(3)=2.0D 0 X1=1.0D 0/(X(1)+1.0D-1)**3 IF (KA.EQ.3) THEN HA(1)= X1 ELSE HA(1)=-X1 ENDIF RETURN 180 X1=X(1)**2+X(2)**2 X2=SQRT(X1) X3=COS(X2) X4=SIN(X2) IF (KA.EQ.1) THEN X5=X(1)-X2*X3 X6=-(X3/X2-X4) X7=X2+1.0D 0/X2 X7=(X7*X3+X4)/X2**2 X1=1.0D 0+X6*X(1) X2=X6*X(2) HA(1)=2.0D 0*(X1**2+X5*(X6+X7*X(1)**2))+1.0D-2 HA(2)=2.0D 0*X(2)*(X6*X1+X5*X7*X(1)) HA(3)=2.0D 0*(X2**2+X5*(X6+X7*X(2)**2))+1.0D-2 ELSE IF (KA.EQ.2) THEN X5=X(2)-X2*X4 X6=-(X4/X2+X3) X7=X2+1.0D 0/X2 X7=(X7*X4-X3)/X2**2 X1=X6*X(1) X2=1.0D 0+X6*X(2) HA(1)=2.0D 0*(X1**2+X5*(X6+X7*X(1)**2))+1.0D-2 HA(2)=2.0D 0*X(1)*(X6*X2+X5*X7*X(2)) HA(3)=2.0D 0*(X2**2+X5*(X6+X7*X(2)**2))+1.0D-2 ENDIF RETURN 80 DO 81 I=1,N*(N+1)/2 HA(I)=0.0D 0 81 CONTINUE GO TO (82,82,83,83,85,86),KA 82 HA(1)= 2.0D 0 HA(3)= 2.0D 0 HA(6)= 2.0D 0 RETURN 83 RETURN 85 HA(1)= 1.6D 0 HA(3)= 1.2D 1 HA(4)=-2.0D 1 HA(6)= 1.0D 2 RETURN 86 HA(1)= 2.0D 0 RETURN 20 DO 21 I=1,N*(N+1)/2 HA(I)=0.0D 0 21 CONTINUE HA(1)=2.0D 0 HA(3)=2.0D 0 HA(6)=4.0D 0 HA(10)=2.0D 0 IF (KA.GT.1) THEN HA(1)=HA(1)+2.0D 1 HA(3)=HA(3)+2.0D 1 HA(6)=HA(6)+2.0D 1 HA(10)=HA(10)+2.0D 1 GO TO (24,22,23),KA-1 22 HA(3)=HA(3)+2.0D 1 HA(10)=HA(10)+2.0D 1 GO TO 24 23 HA(10)=HA(10)-2.0D 1 24 CONTINUE ENDIF RETURN 170 X1=X(1)-(X(4)+1.0D 0)**4 X2=X1*X1 X3=X(2)-X2*X2 X4=X3*X3 X5=-4.0D 0*(X(4)+1.0D 0)**3 X6=-1.2D 1*(X(4)+1.0D 0)**2 X7=X1*X6+X5*X5 X8=X3-4.0D 0*X1*X1 HA(1)=2.0D 0-8.0D 0*X8+2.0D 1 HA(2)=-8.0D 0*X1 HA(3)=2.0D 0 HA(4)=0.0D 0 HA(5)=0.0D 0 HA(6)=4.0D 0 HA(7)=2.0D 0*X5-8.0D 0*X5*X8+2.0D 1*X5 HA(8)=-8.0D 0*X1*X5 HA(9)=0.0D 0 HA(10)=2.0D 0*X7-8.0D 0*(X5*X5*X8+X1*X3*X6)- & 5.0D 0*(X6-4.0D 0*X7)+2.0D 0 GO TO (171,172,173,174),KA 171 CONTINUE RETURN 172 CONTINUE HA(1)=HA(1)+1.0D 1*(2.0D 0-8.0D 0*X8+4.0D 0) HA(2)=HA(2)-8.0D 1*X1 HA(3)=HA(3)+2.0D 1 HA(6)=HA(6)+2.0D 1 HA(7)=HA(7)+1.0D 1*(2.0D 0*X5-8.0D 0*X5*X8+4.0D 0*X5) HA(8)=HA(8)-8.0D 1*X1*X5 HA(10)=HA(10)+1.0D 1*(2.0D 0*X7-8.0D 0*(X5*X5*X8+X1*X3*X6)+ & X6+4.0D 0*X7+2.0D 0) RETURN 173 CONTINUE HA(1)=HA(1)+1.0D 1*(2.0D 0-1.6D 1*X8) HA(2)=HA(2)-1.6D 2*X1 HA(3)=HA(3)+4.0D 1 HA(6)=HA(6)+2.0D 1 HA(7)=HA(7)+1.0D 1*(2.0D 0*X5-1.6D 1*X5*X8) HA(8)=HA(8)-1.6D 2*X1*X5 HA(10)=HA(10)+1.0D 1*(2.0D 0*X7-1.6D 1*(X5*X5*X8+X1*X3*X6)- & X6+4.0D 0) RETURN 174 CONTINUE HA(1)=HA(1)+1.0D 1*(2.0D 0-8.0D 0*X8+4.0D 0) HA(2)=HA(2)-8.0D 1*X1 HA(3)=HA(3)+2.0D 1 HA(6)=HA(6)+2.0D 1 HA(7)=HA(7)+1.0D 1*(2.0D 0*X5-8.0D 0*X5*X8+4.0D 0*X5) HA(8)=HA(8)-8.0D 1*X1*X5 HA(10)=HA(10)+1.0D 1*(2.0D 0*X7-8.0D 0*(X5*X5*X8+X1*X3*X6)+ & 2.0D 0*X6+4.0D 0*X7) RETURN 120 T=Y(KA) X1=EXP(-X(1)*T)/X(2) X2=SIN( X(2)*T) X3=COS( X(2)*T) X4=T*X3-X2/X(2) HA(1)= X(3)*X1*X2*T**2 HA(2)=-X(3)*X1*X4*T HA(3)=-X(3)*X1*(T**2*X2+2.0D 0*T*X3/X(2)-2.0D 0*X2/X(2)**2) HA(4)=-X1*X2*T HA(5)= X1*X4*T HA(6)= 0.0D 0 RETURN 90 DO 91 I=1,N*(N+1)/2 HA(I)=0.0D 0 91 CONTINUE C1=DBLE(16-KA) C2=DBLE(MIN(KA,16-KA)) C3=-2.0D 0*DBLE(KA)/(C1*X(2)+C2*X(3))**3 HA(3)=C1*C1*C3 HA(5)=C1*C2*C3 HA(6)=C2*C2*C3 RETURN 230 T=Y(KA+11) X1= X(1)*T*(T+X(2)) X2= ((T+X(3))*T+X(4)) X3= 1.0D 0/X2**2 X4= T*(T+X(2))*X3 X5=-2.0D 0*X1*X3/X2 HA(1)= 0.0D 0 HA(2)=-T/X2 HA(3)= 0.0D 0 HA(7)= X4 HA(4)= T*X4 HA(8)= T*X(1)*X3 HA(5)= T*HA(8) HA(10)=X5 HA(9)= T*X5 HA(6)= T*HA(9) RETURN 210 T=0.2D 0*DBLE(KA) HA(1)= 2.0D 0 HA(2)= 2.0D 0*T HA(3)= 2.0D 0*T*T HA(4)= 0.0D 0 HA(5)= 0.0D 0 HA(6)= 2.0D 0 HA(7)= 0.0D 0 HA(8)= 0.0D 0 HA(9)= 2.0D 0*SIN(T) HA(10)=2.0D 0*SIN(T)**2 RETURN 140 T=Y(KA) DO 141 I=7,10 HA(I)=0.0D 0 141 CONTINUE HA(6)=-2.0D 0 HA(5)= HA(6)*T HA(4)= HA(5)*T HA(3)= HA(4) HA(2)= HA(3)*T HA(1)= HA(2)*T RETURN 150 T=Y(KA) DO 151 I=1,10 HA(I)=0.0D 0 151 CONTINUE X1=EXP(X(3)*T) X2=EXP(X(4)*T) HA(4)= X1*T HA(8)= X2*T HA(6)= X(1)*X1*T**2 HA(10)=X(2)*X2*T**2 RETURN 200 T=Y(KA) X1=T+X(2)+1.0D 0/(X(3)*T+X(4)) IF (X1.EQ.0D 0) X1=1D-30 X2=X1/((T+1.0D 0)*Y(61+KA)) X3=X(3)*T+X(4) IF (X3.EQ.0D 0) X3=1D-30 HA(1)= 0.0D 0 HA(2)= ABS(X2)**(T+5.0D-1)*(T+5.0D-1)/X1 BETA=X(1)*HA(2)/X1 HA(3)= BETA*(T-5.0D-1) HA(7)=-HA(2)/(X3*X3) HA(4)= HA(7)*T HA(8)=-HA(3)/(X3*X3) HA(5)= HA(8)*T HA(10)=BETA*(T+1.5D 0+(X3+X3)*(T+X(2)))/X3**4 HA(6)= HA(10)*T*T HA(9)= HA(10)*T RETURN 30 T=0.1D 0*DBLE(KA-1)-1.0D 0 HA(1)=0.0D 0 HA(2)=0.0D 0 HA(3)=0.0D 0 X1=X(1)+T*X(2) X2=1.0D 0/(1.0D 0+T*(X(3)+T*(X(4)+T*X(5)))) X3=-T*X2*X2 X4=-2.0D 0*T*X1*X2*X3 HA(4)=X3 HA(5)=HA(4)*T HA(7)=HA(5) HA(8)=HA(7)*T HA(11)=HA(8) HA(12)=HA(11)*T HA(6)=X4 HA(9)=HA(6)*T HA(10)=HA(9)*T HA(13)=HA(10) HA(14)=HA(13)*T HA(15)=HA(14)*T RETURN 130 T=Y(KA) DO 131 I=1,6 HA(I)=0.0D 0 131 CONTINUE X1=1.0D 0/(1.0D 0-T*(X(4)-T*X(5))) X2=X(1)+T*(X(2)+T*X(3)) X3=X1*X1 HA(7)=-T*X3 HA(8)=HA(7)*T HA(9)=HA(8)*T HA(10)= 2.0D 0*T*T*X1*X2*X3 HA(11)= HA(8) HA(12)= HA(11)*T HA(13)= HA(12)*T HA(14)= HA(10)*T HA(15)= HA(14)*T RETURN 100 T=0.1D 0*DBLE(KA-1) DO 101 I=1,N*(N+1)/2 HA(I)=0.0D 0 101 CONTINUE X1=EXP(-X(2)*T) X2=COS(X(3)*T+X(4)) X3=SIN(X(3)*T+X(4)) X4=EXP(-X(6)*T) HA(2)= -X1*X2*T HA(10)=-X1*X2*X(1) HA(9)= HA(10)*T HA(3)= -HA(9)*T HA(7)= -X1*X3 HA(4)= HA(7)*T HA(8)= X1*X3*X(1)*T HA(5)= HA(8)*T HA(6)= -HA(3) HA(20)=-X4*T HA(21)=-HA(20)*X(5)*T RETURN 40 BETA=0.5D 0*PI*Y(KA) DO 41 I=1,3 J=I+I XA(I)=X(J-1) XB(I)=X(J) 41 CONTINUE CA(4)=CMPLX(1.0D 0,0.0D 0) CB(4)=1.0D 1*CA(4) DO 42 J=1,3 I=4-J XC(I)=BETA*XA(I) T=XC(I) X1=COS(T) X2=SIN(T) C1=CMPLX(X1,0.0D 0) C2=CMPLX(0.0D 0,(X2*XB(I))) C3=CMPLX(0.0D 0,(X2/XB(I))) CB(I)=C1*CB(I+1)+C2*CA(I+1) CA(I)=C3*CB(I+1)+C1*CA(I+1) 42 CONTINUE C1=-CA(1) C2=CB(1)-C1 C3=1.0D 0+2.0D 0*C1/C2 FA=CDABS(C3) C3=CONJG(C3) C1=2.0D 0/(C2*C2) T=BETA DO 43 I=1,3 ST(I)=SIN(XC(I)) CT(I)=COS(XC(I)) CC(I+I)=(CB(I)*CA(I)-CB(I+1)*CA(I+1))/XB(I) CC(I+I-1)=(CB(I)*CA(I+1)-CB(I+1)*CA(I))*T/ST(I) 43 CONTINUE DO 44 I=1,6 GA(I)=DBLE(C3*C1*CC(I))/FA 44 CONTINUE CI=CMPLX(0D 0,1D 0) X2=X(2) X4=X(4) X3=X(6) C2=-(C1+C1)/C2 S1=CMPLX(-ST(1)*X2,CT(1)) S2=CMPLX(ST(1)/X2,-CT(1)) S3=S1*CT(2)-CI*S2*ST(2)*X4 S4=S2*CT(2)-CI*S1*ST(2)/X4 DD(1)=C2*( T*CI*(CB(1)/X2+CA(1)*X2)) DD(2)=C2*(-ST(1)*CI*(CB(2)/(X2*X2)-CA(2))) DD(3)=C2*( T*(CB(2)*S1/X4-CA(2)*S2*X4)) DD(4)=C2*(-ST(2)*(CB(3)*S1/(X4*X4)+CA(3)*S2)) DD(5)=C2*( T*(CB(3)*S3/X3-CA(3)*S4*X3)) DD(6)=C2*(-ST(3)*(1D 1*S3/(X3*X3)+S4)) L=0 DO 45 I=1,6 L=L+I-1 DO 45 J=1,I HA(L+J)=(DBLE(CC(I)*(C3*DD(J)+C1*CONJG(C1*CC(J))))-GA(I)*GA(J))/ & FA 45 CONTINUE DO 46 I=1,3 J=I*(I+I+1) HA(J-1)=HA(J-1)+DBLE(C3*C1*CI*T*(CA(I)*CA(I)+(CB(I)/XB(I))**2))/ & FA HA(J)=HA(J)+DBLE(C3*C1/XB(I)*(CI*ST(I)*(CA(I)*CA(I+1)- & CB(I)*CB(I+1)/(XB(I)*XB(I)))-CC(I+I)))/FA 46 CONTINUE RETURN 110 T=Y(41+KA) BETA=Y(82+KA) X1=(X(1)+(1.0D 0+X(2))*T)**2+((1.0D 0-X(2))*BETA)**2 X2=(X(3)+(1.0D 0+X(4))*T)**2+((1.0D 0-X(4))*BETA)**2 X3=(X(5)+(1.0D 0+X(6))*T)**2+((1.0D 0-X(6))*BETA)**2 X4=(X(7)+(1.0D 0+X(8))*T)**2+((1.0D 0-X(8))*BETA)**2 IF (X1.EQ.0.0D 0) X1=1.0D-30 IF (X2.EQ.0.0D 0) X2=1.0D-30 IF (X3.EQ.0.0D 0) X3=1.0D-30 IF (X4.EQ.0.0D 0) X4=1.0D-30 FA=SQRT(X1/X2)*SQRT(X3/X4) HA(37)= FA/X1*(X(1)+T*(1.0D 0+X(2))) HA(38)= FA/X1*(X(2)+2.0D 0*T*T-1.0D 0+X(1)*T) HA(39)=-FA/X2*(X(3)+T*(1.0D 0+X(4))) HA(40)=-FA/X2*(X(4)+2.0D 0*T*T-1.0D 0+X(3)*T) HA(41)= FA/X3*(X(5)+T*(1.0D 0+X(6))) HA(42)= FA/X3*(X(6)+2.0D 0*T*T-1.0D 0+X(5)*T) HA(43)=-FA/X4*(X(7)+T*(1.0D 0+X(8))) HA(44)=-FA/X4*(X(8)+2.0D 0*T*T-1.0D 0+X(7)*T) HA(45)= 0.0D0 FA=X(9)*FA DO111 I=1,8 111 GA(I)=HA(36+I)*X(9) DO112 J=1,8 DO112 I=1,J 112 HA((J-1)*J/2+I)=GA(I)*GA(J)/FA HA(1)= FA/X1-HA(1) HA(2)= FA*T/X1-HA(2) HA(3)= FA/X1-HA(3) HA(6)= 3.0D 0*HA(6) -FA/X2 HA(9)= 3.0D 0*HA(9) -FA*T/X2 HA(10)=3.0D 0*HA(10)-FA/X2 HA(15)=FA/X3-HA(15) HA(20)=FA*T/X3-HA(20) HA(21)=FA/X3-HA(21) HA(28)=3.0D 0*HA(28)-FA/X4 HA(35)=3.0D 0*HA(35)-FA*T/X4 HA(36)=3.0D 0*HA(36)-FA/X4 RETURN 50 DO 51 I=1,N*(N+1)/2 HA(I)=0.0D 0 51 CONTINUE HA(1)=2.0D 0 HA(3)=1.0D 1 HA(6)=1.2D 1*X(3)**2 HA(10)=6.0D 0 HA(15)=3.0D 2*X(5)**4 HA(21)=1.4D 1 HA(27)=-4.0D 0 HA(28)=1.2D 1*X(7)**2 GO TO (56,52,53,54,55),KA 52 HA(1)=HA(1)+4.0D 1 HA(3)=HA(3)+3.6D 2*X(2)**2 HA(10)=HA(10)+8.0D 1 RETURN 53 HA(6)=HA(6)+2.0D 2 RETURN 54 HA(3)=HA(3)+2.0D 1 HA(21)=HA(21)+1.2D 2 RETURN 55 HA(1)=HA(1)+8.0D 1 HA(2)=HA(2)-3.0D 1 HA(3)=HA(3)+2.0D 1 HA(6)=HA(6)+4.0D 1 56 RETURN 60 DO 61 I=1,N*(N+1)/2 HA(I)=0.0D 0 61 CONTINUE HA(1)=2.0D 0 HA(2)=1.0D 0 HA(3)=2.0D 0 HA(6)=2.0D 0 HA(10)=8.0D 0 HA(15)=2.0D 0 HA(21)=4.0D 0 HA(28)=1.0D 1 HA(36)=1.4D 1 HA(45)=4.0D 0 HA(55)=2.0D 0 GO TO (69,62,63,64,65,69,69,68,69),KA 62 HA(1)=HA(1)+6.0D 1 HA(3)=HA(3)+8.0D 1 HA(6)=HA(6)+4.0D 1 RETURN 63 HA(1)=HA(1)+1.0D 2 HA(6)=HA(6)+2.0D 1 RETURN 64 HA(1)=HA(1)+1.0D 1 HA(3)=HA(3)+4.0D 1 HA(15)=HA(15)+6.0D 1 RETURN 65 HA(1)=HA(1)+1.0D 1 HA(2)=HA(2)-2.0D 1 HA(3)=HA(3)+4.0D 1 RETURN 68 HA(45)=HA(45)+2.4D 2 69 RETURN 70 DO 71 I=1,N*(N+1)/2 HA(I)=0.0D 0 71 CONTINUE HA(1)=2.0D 0 HA(2)=1.0D 0 HA(3)=2.0D 0 HA(6)=2.0D 0 HA(10)=8.0D 0 HA(15)=2.0D 0 HA(21)=4.0D 0 HA(28)=1.0D 1 HA(36)=1.4D 1 HA(45)=4.0D 0 HA(55)=2.0D 0 HA(66)=2.0D 0 HA(78)=2.0D 1 HA(91)=1.0D 1 HA(105)=8.0D 0 HA(120)=5.4D 1 HA(136)=1.2D 1*X(16)**2 HA(153)=2.0D 0 HA(171)=2.6D 1 HA(190)=2.0D 0 HA(210)=2.0D 0 GO TO (69,62,63,64,65,69,69,68,69,69,72,73,74,75,76,77,78,79),KA 72 HA(1)=HA(1)+2.0D 1 RETURN 73 HA(91)=HA(91)+1.0D 2 RETURN 74 HA(91)=HA(91)+6.0D 1 RETURN 75 HA(1)=HA(1)+2.8D 2 RETURN 76 HA(3)=HA(3)+3.0D 2 RETURN 77 HA(1)=HA(1)+1.0D 2 HA(153)=HA(153)+10.8D 2*X(17)**2 RETURN 78 HA(1)=HA(1)+2.0D 1 RETURN 79 HA(1)=HA(1)+1.4D 2 HA(3)=HA(3)+1.0D 2 HA(190)=HA(190)+2.0D 1 RETURN 220 X1=0.0D 0 DO 221 I=1,N X3=1.0D 0 X4=X(I) IF (I.EQ.1) X3=1.0D-8 IF (I.EQ.4) X3=4.0D 0 IF (I.EQ.2.AND.KA.EQ.1) X4=X(I)+2.0D 0 IF (I.EQ.2.AND.KA.EQ.2) X4=X(I)-2.0D 0 X1=X1+X3*X4**2 221 CONTINUE X2=EXP(X1) L=0 DO 223 I=1,N X3=2.0D 0 X4=X(I) IF (I.EQ.1) X3=2.0D-8 IF (I.EQ.4) X3=8.0D 0 IF (I.EQ.2.AND.KA.EQ.1) X4=X(I)+2.0D 0 IF (I.EQ.2.AND.KA.EQ.2) X4=X(I)-2.0D 0 DO 222 J=1,I L=L+1 X5=2.0D 0 X6=X(J) IF (J.EQ.1) X5=2.0D-8 IF (J.EQ.4) X5=8.0D 0 IF (J.EQ.2.AND.KA.EQ.1) X6=X(J)+2.0D 0 IF (J.EQ.2.AND.KA.EQ.2) X6=X(J)-2.0D 0 HA(L)=X2*X3*X4*X5*X6 222 CONTINUE HA(L)=HA(L)+X2*X3 223 CONTINUE RETURN 160 DO 161 I=1,N*(N+1)/2 HA(I)=0.0D 0 161 CONTINUE L=0 DO 162 I=1,N L=L+I X1=1.0D 0*DBLE(I+KA-1) X2=(X(I)-SIN(DBLE(2*I+KA-3)))**2 HA(L)=2.0D 0*X1*EXP(X2)*(1.0D 0+2.0D 0*X2) 162 CONTINUE RETURN 240 IF (KA.LE.2) THEN DO 241 I=1,N*(N+1)/2 HA(I)=0.0D 0 241 CONTINUE IF (KA.EQ.1) THEN ELSE IF (KA.EQ.2) THEN HA(1)=-2.0D 0 ENDIF ELSE T=DBLE(KA-2)/2.9D 1 L=0 DO 243 I=1,N DO 242 J=1,I L=L+1 HA(L)=-2.0D 0*T**(I+J-2) 242 CONTINUE 243 CONTINUE ENDIF RETURN 250 T=1.0D-1*DBLE(KA-1) DO 251 I=1,N*(N+1)/2 HA(I)=0.0D 0 251 CONTINUE X1=EXP(-X(5)*T) X2=EXP(-X(6)*(T-X( 9))**2) X3=EXP(-X(7)*(T-X(10))**2) X4=EXP(-X(8)*(T-X(11))**2) HA(11)= X1*T HA(15)=-X1*X(1)*T**2 HA(17)= X2*(T-X( 9))**2 HA(21)=-HA(17)*X(2)*(T-X( 9))**2 HA(24)= X3*(T-X(10))**2 HA(28)=-HA(24)*X(3)*(T-X(10))**2 HA(32)= X4*(T-X(11))**2 HA(36)=-HA(32)*X(4)*(T-X(11))**2 HA(38)=-2.0D 0*X2*X(6)*(T-X( 9)) HA(42)=-2.0D 0*X2*X(2)*(T-X( 9))+ & 2.0D 0*X2*X(2)*X(6)*(T-X( 9))**3 HA(45)= 2.0D 0*X2*X(2)*X(6)- & 4.0D 0*X2*X(2)*(X(6)*(T-X( 9)))**2 HA(48)=-2.0D 0*X3*X(7)*(T-X(10)) HA(52)=-2.0D 0*X3*X(3)*(T-X(10))+ & 2.0D 0*X3*X(3)*X(7)*(T-X(10))**3 HA(55)= 2.0D 0*X3*X(3)*X(7)- & 4.0D 0*X3*X(3)*(X(7)*(T-X(10)))**2 HA(59)=-2.0D 0*X4*X(8)*(T-X(11)) HA(63)=-2.0D 0*X4*X(4)*(T-X(11))+ & 2.0D 0*X4*X(4)*X(8)*(T-X(11))**3 HA(66)= 2.0D 0*X4*X(4)*X(8)- & 4.0D 0*X4*X(4)*(X(8)*(T-X(11)))**2 RETURN END