intrinsic_fraction_exponent.f90

来自「用于进行gcc测试」· F90 代码 · 共 85 行

F90
85
字号
!Program to test EXPONENT and FRACTION intrinsic function.program test_exponent_fraction  real x  integer*4 i  real*8 y  integer*8 j  equivalence (x, i), (y, j)  x = 3.  call test_4(x)  x = 0.  call test_4(x)  i = o'00000000001'  call test_4(x)  i = o'00010000000'  call test_4(x)  i = o'17700000000'  call test_4(x)  i = o'00004000001'  call test_4(x)  i = o'17737777777'  call test_4(x)  i = o'10000000000'  call test_4(x)  i = o'0000010000'  call test_4(x)  y = 0.5  call test_8(y)  y = 0.  call test_8(y)  j = o'00000000001'  call test_8(y)  y = 0.2938735877D-38  call test_8(y)  y = -1.469369D-39  call test_8(y)  y = z'7fe00000'  call test_8(y)  y = -5.739719D+42  call test_8(y)endsubroutine test_4(x)real*4 x,yinteger zy = fraction (x)z = exponent(x)if (z .gt. 0) then  y = (y * 2.) * (2. ** (z - 1))else  y = (y / 2.) * (2. ** (z + 1))end ifif (abs (x - y) .gt. spacing (max (abs (x), abs (y)))) call abort()endsubroutine test_8(x)real*8 x, yinteger zy = fraction (x)z = exponent(x)if (z .gt. 0) then  y = (y * 2._8) * (2._8 ** (z - 1))else  y = (y / 2._8) * (2._8 ** (z + 1))end ifif (abs (x - y) .gt. spacing (max (abs (x), abs(y)))) call abort()end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?