1! { dg-do run } 2! { dg-options "-ffloat-store" } 3! 4! PR fortran/33197 5! 6! Check for Fortran 2008's ATAN(Y,X) - which is equivalent 7! to Fortran 77's ATAN2(Y,X). 8! 9integer :: i 10real, parameter :: pi4 = 2*acos(0.0) 11real, parameter :: pi8 = 2*acos(0.0d0) 12do i = 1, 10 13 if(atan(1.0, i/10.0) -atan2(1.0, i/10.) /= 0.0) call abort() 14 if(atan(1.0d0,i/10.0d0)-atan2(1.0d0,i/10.0d0) /= 0.0d0) call abort() 15end do 16 17! Atan(1,1) = Pi/4 18if (abs(atan(1.0,1.0) -pi4/4.0) > epsilon(pi4)) call abort() 19if (abs(atan(1.0d0,1.0d0)-pi8/4.0d0) > epsilon(pi8)) call abort() 20 21! Atan(-1,1) = -Pi/4 22if (abs(atan(-1.0,1.0) +pi4/4.0) > epsilon(pi4)) call abort() 23if (abs(atan(-1.0d0,1.0d0)+pi8/4.0d0) > epsilon(pi8)) call abort() 24 25! Atan(1,-1) = 3/4*Pi 26if (abs(atan(1.0,-1.0) -3.0*pi4/4.0) > epsilon(pi4)) call abort() 27if (abs(atan(1.0d0,-1.0d0)-3.0d0*pi8/4.0d0) > epsilon(pi8)) call abort() 28 29! Atan(-1,-1) = -3/4*Pi 30if (abs(atan(-1.0,-1.0) +3.0*pi4/4.0) > epsilon(pi4)) call abort() 31if (abs(atan(-1.0d0,-1.0d0)+3.0d0*pi8/4.0d0) > epsilon(pi8)) call abort() 32 33! Atan(3,-5) = 2.60117315331920908301906501867... = Pi - 3/2 atan(3/5) 34if (abs(atan(3.0,-5.0) -2.60117315331920908301906501867) > epsilon(pi4)) call abort() 35if (abs(atan(3.0d0,-5.0d0)-2.60117315331920908301906501867d0) > epsilon(pi8)) call abort() 36 37end 38