1 ! Program to test mathematical intrinsics
3 ! This file is also 'include'd in:
4 ! - 'libgomp/testsuite/libgomp.fortran/fortran-torture_execute_math.f90' (thus the '!$omp' directives)
5 ! - 'libgomp/testsuite/libgomp.oacc-fortran/fortran-torture_execute_math.f90' (thus the '!$acc' directives)
7 subroutine dotest (n
, val4
, val8
, known
)
9 real(kind
=4) val4
, known
14 if (abs (val4
- known
) .gt
. 0.001) STOP 1
15 if (abs (real (val8
, kind
=4) - known
) .gt
. 0.001) STOP 2
18 subroutine dotestc (n
, val4
, val8
, known
)
20 complex(kind
=4) val4
, known
25 if (abs (val4
- known
) .gt
. 0.001) STOP 3
26 if (abs (cmplx (val8
, kind
=4) - known
) .gt
. 0.001) STOP 4
31 real(kind
=4) r
, two4
, half4
32 real(kind
=8) q
, two8
, half8
35 external dotest
, dotestc
44 call dotest (1, r
, q
, 0.9093)
47 call dotest (2, r
, q
, -0.4161)
50 call dotest (3, r
, q
, -2.1850)
53 call dotest (4, r
, q
, 0.5234)
56 call dotest (5, r
, q
, 1.0472)
59 call dotest (6, r
, q
, 0.4636)
60 r
= atan2 (two4
, half4
)
61 q
= atan2 (two8
, half8
)
62 call dotest (7, r
, q
, 1.3258)
65 call dotest (8, r
, q
, 7.3891)
68 call dotest (9, r
, q
, 0.6931)
71 call dotest (10, r
, q
, 0.3010)
74 call dotest (11, r
, q
, 3.6269)
77 call dotest (12, r
, q
, 3.7622)
80 call dotest (13, r
, q
, 0.9640)
83 call dotest (14, r
, q
, 1.4142)
86 q
= atan2 (0.0_8
, 1.0_8
)
87 call dotest (15, r
, q
, 0.0)
89 q
= atan2 (-1.0_8
, 1.0_8
)
90 call dotest (16, r
, q
, -0.7854)
92 q
= atan2 (0.0_8
, -1.0_8
)
93 call dotest (17, r
, q
, 3.1416)
94 r
= atan2 (-1.0, -1.0)
95 q
= atan2 (-1.0_8
, -1.0_8
)
96 call dotest (18, r
, q
, -2.3562)
98 q
= atan2 (1.0_8
, 0.0_8
)
99 call dotest (19, r
, q
, 1.5708)
100 r
= atan2 (-1.0, 0.0)
101 q
= atan2 (-1.0_8
, 0.0_8
)
102 call dotest (20, r
, q
, -1.5708)
104 cr
= log ((-1.0, -1.0))
105 cq
= log ((-1.0_8
, -1.0_8
))
106 call dotestc (21, cr
, cq
, (0.3466, -2.3562))