blob: dee2de4e06ba1de03a0eee47678f64db6887f7c9 [file] [log] [blame]
! { dg-do run }
! { dg-additional-options "-std=gnu" }
! { dg-require-effective-target fortran_real_10 }
! { dg-require-effective-target fortran_real_16 }
program p
implicit none
integer, parameter :: ep = selected_real_kind (17) ! real(10)
real(4) :: a1, e1 = 1.e-5
real(8) :: b1, e2 = 1.e-14
real(ep) :: c1, e3 = 1.e-17
real(16) :: d1, e4 = 1.e-30
a1 = 1; a1 = atand(a1)
b1 = 1; b1 = atand(b1)
c1 = 1; c1 = atand(c1)
d1 = 1; d1 = atand(d1)
! print '(4(F15.11))', a1, b1, c1, d1
if (abs(a1 - 45) > e1) stop 1
if (abs(b1 - 45) > e2) stop 2
if (abs(c1 - 45) > e3) stop 3
if (abs(d1 - 45) > e4) stop 4
a1 = 0.5; a1 = asind(a1)
b1 = 0.5; b1 = asind(b1)
c1 = 0.5; c1 = asind(c1)
d1 = 0.5; d1 = asind(d1)
if (abs(a1 - 30) > e1) stop 5
if (abs(b1 - 30) > e2) stop 6
if (abs(c1 - 30) > e3) stop 7
if (abs(d1 - 30) > e4) stop 8
a1 = 0.5; a1 = acosd(a1)
b1 = 0.5; b1 = acosd(b1)
c1 = 0.5; c1 = acosd(c1)
d1 = 0.5; d1 = acosd(d1)
if (abs(a1 - 60) > e1) stop 9
if (abs(b1 - 60) > e2) stop 10
if (abs(c1 - 60) > e3) stop 11
if (abs(d1 - 60) > e4) stop 12
a1 = 45; a1 = tand(a1)
b1 = 45; b1 = tand(b1)
c1 = 45; c1 = tand(c1)
d1 = 45; d1 = tand(d1)
if (abs(a1 - 1) > e1) stop 13
if (abs(b1 - 1) > e2) stop 14
if (abs(c1 - 1) > e3) stop 15
if (abs(d1 - 1) > e4) stop 16
a1 = 60; a1 = tand(a1)
b1 = 60; b1 = tand(b1)
c1 = 60; c1 = tand(c1)
d1 = 60; d1 = tand(d1)
if (abs(a1 - sqrt (3._4) ) > e1) stop 17
if (abs(b1 - sqrt (3._8) ) > e2) stop 18
if (abs(c1 - sqrt (3._ep)) > e3) stop 19
if (abs(d1 - sqrt (3._16)) > e4) stop 20
a1 = 45; a1 = cotand(a1)
b1 = 45; b1 = cotand(b1)
c1 = 45; c1 = cotand(c1)
d1 = 45; d1 = cotand(d1)
if (abs(a1 - 1) > e1) stop 21
if (abs(b1 - 1) > e2) stop 22
if (abs(c1 - 1) > e3) stop 23
if (abs(d1 - 1) > e4) stop 24
a1 = 30; a1 = cotand(a1)
b1 = 30; b1 = cotand(b1)
c1 = 30; c1 = cotand(c1)
d1 = 30; d1 = cotand(d1)
if (abs(a1 - sqrt (3._4) ) > e1) stop 25
if (abs(b1 - sqrt (3._8) ) > e2) stop 26
if (abs(c1 - sqrt (3._ep)) > e3) stop 27
if (abs(d1 - sqrt (3._16)) > e4) stop 28
a1 = 1; a1 = atan2d(a1, a1)
b1 = 1; b1 = atan2d(b1, b1)
c1 = 1; c1 = atan2d(c1, c1)
d1 = 1; d1 = atan2d(d1, d1)
if (abs(a1 - 45) > e1) stop 29
if (abs(b1 - 45) > e2) stop 30
if (abs(c1 - 45) > e3) stop 31
if (abs(d1 - 45) > e4) stop 32
a1 = 30; a1 = sind(a1)
b1 = 30; b1 = sind(b1)
c1 = 30; c1 = sind(c1)
d1 = 30; d1 = sind(d1)
if (abs(a1 - 0.5) > e1) stop 33
if (abs(b1 - 0.5) > e2) stop 34
if (abs(c1 - 0.5) > e3) stop 35
if (abs(d1 - 0.5) > e4) stop 36
a1 = 60; a1 = cosd(a1)
b1 = 60; b1 = cosd(b1)
c1 = 60; c1 = cosd(c1)
d1 = 60; d1 = cosd(d1)
if (abs(a1 - 0.5) > e1) stop 37
if (abs(b1 - 0.5) > e2) stop 38
if (abs(c1 - 0.5) > e3) stop 39
if (abs(d1 - 0.5) > e4) stop 40
end program p