OSDN Git Service

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