Skip to content

Instantly share code, notes, and snippets.

@weslleyspereira
Last active July 27, 2021 23:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save weslleyspereira/7eed7d01dbb3845ea43fda9974d5ff6d to your computer and use it in GitHub Desktop.
Save weslleyspereira/7eed7d01dbb3845ea43fda9974d5ff6d to your computer and use it in GitHub Desktop.
Test routines SROUNDUP_LWORK and DROUNDUP_LWORK from https://github.com/Reference-LAPACK/lapack/pull/605
PROGRAM test_roundup
IMPLICIT NONE
INTEGER(8) X, Y
REAL SROUNDUP_LWORK
DOUBLE PRECISION DROUNDUP_LWORK
EXTERNAL SROUNDUP_LWORK, DROUNDUP_LWORK
INTRINSIC CEILING, FLOOR
WRITE(*,*) "SROUNDUP_LWORK(0) = ", SROUNDUP_LWORK(0)
WRITE(*,*) "SROUNDUP_LWORK(1) = ", SROUNDUP_LWORK(1)
WRITE(*,*) "SROUNDUP_LWORK(317) = ", SROUNDUP_LWORK(317)
WRITE(*,*) "DROUNDUP_LWORK(0) = ", DROUNDUP_LWORK(0)
WRITE(*,*) "DROUNDUP_LWORK(1) = ", DROUNDUP_LWORK(1)
WRITE(*,*) "DROUNDUP_LWORK(317) = ", DROUNDUP_LWORK(317)
X = 16777216
WRITE(*,*) ""
WRITE(*,*) "Tests with X = 16777216 = 2**24"
WRITE(*,990) 'X-2', (X-2),
& 'SROUNDUP_LWORK(X-2)', SROUNDUP_LWORK(X-2),
& 'CEILING(SROUNDUP_LWORK(X-2))', CEILING(SROUNDUP_LWORK(X-2)),
& 'FLOOR(SROUNDUP_LWORK(X-2))', FLOOR(SROUNDUP_LWORK(X-2))
WRITE(*,990) 'X-1', (X-1),
& 'SROUNDUP_LWORK(X-1)', SROUNDUP_LWORK(X-1),
& 'CEILING(SROUNDUP_LWORK(X-1))', CEILING(SROUNDUP_LWORK(X-1)),
& 'FLOOR(SROUNDUP_LWORK(X-1))', FLOOR(SROUNDUP_LWORK(X-1))
WRITE(*,990) 'X ', (X),
& 'SROUNDUP_LWORK(X )', SROUNDUP_LWORK(X),
& 'CEILING(SROUNDUP_LWORK(X ))', CEILING(SROUNDUP_LWORK(X)),
& 'FLOOR(SROUNDUP_LWORK(X ))', FLOOR(SROUNDUP_LWORK(X))
WRITE(*,990) 'X+1', (X+1),
& 'SROUNDUP_LWORK(X+1)', SROUNDUP_LWORK(X+1),
& 'CEILING(SROUNDUP_LWORK(X+1))', CEILING(SROUNDUP_LWORK(X+1)),
& 'FLOOR(SROUNDUP_LWORK(X+1))', FLOOR(SROUNDUP_LWORK(X+1))
WRITE(*,990) 'X+2', (X+2),
& 'SROUNDUP_LWORK(X+2)', SROUNDUP_LWORK(X+2),
& 'CEILING(SROUNDUP_LWORK(X+2))', CEILING(SROUNDUP_LWORK(X+2)),
& 'FLOOR(SROUNDUP_LWORK(X+2))', FLOOR(SROUNDUP_LWORK(X+2))
X = 9007199254740992
WRITE(*,*) ""
WRITE(*,*) "Tests with X = 9007199254740992 = 2**53"
WRITE(*,991) 'X-2', (X-2),
& 'SROUNDUP_LWORK(X-2)', SROUNDUP_LWORK(X-2),
& 'CEILING(SROUNDUP_LWORK(X-2))', CEILING(SROUNDUP_LWORK(X-2)),
& 'FLOOR(SROUNDUP_LWORK(X-2))', FLOOR(SROUNDUP_LWORK(X-2))
WRITE(*,991) 'X-1', (X-1),
& 'SROUNDUP_LWORK(X-1)', SROUNDUP_LWORK(X-1),
& 'CEILING(SROUNDUP_LWORK(X-1))', CEILING(SROUNDUP_LWORK(X-1)),
& 'FLOOR(SROUNDUP_LWORK(X-1))', FLOOR(SROUNDUP_LWORK(X-1))
WRITE(*,991) 'X ', (X),
& 'SROUNDUP_LWORK(X )', SROUNDUP_LWORK(X),
& 'CEILING(SROUNDUP_LWORK(X ))', CEILING(SROUNDUP_LWORK(X)),
& 'FLOOR(SROUNDUP_LWORK(X ))', FLOOR(SROUNDUP_LWORK(X))
WRITE(*,991) 'X+1', (X+1),
& 'SROUNDUP_LWORK(X+1)', SROUNDUP_LWORK(X+1),
& 'CEILING(SROUNDUP_LWORK(X+1))', CEILING(SROUNDUP_LWORK(X+1)),
& 'FLOOR(SROUNDUP_LWORK(X+1))', FLOOR(SROUNDUP_LWORK(X+1))
WRITE(*,991) 'X+2', (X+2),
& 'SROUNDUP_LWORK(X+2)', SROUNDUP_LWORK(X+2),
& 'CEILING(SROUNDUP_LWORK(X+2))', CEILING(SROUNDUP_LWORK(X+2)),
& 'FLOOR(SROUNDUP_LWORK(X+2))', FLOOR(SROUNDUP_LWORK(X+2))
X = 9007199254740992
WRITE(*,*) ""
WRITE(*,*) "Tests with X = 9007199254740992 = 2**53"
WRITE(*,991) 'X-2', (X-2),
& 'DROUNDUP_LWORK(X-2)', DROUNDUP_LWORK(X-2),
& 'CEILING(DROUNDUP_LWORK(X-2))', CEILING(DROUNDUP_LWORK(X-2)),
& 'FLOOR(DROUNDUP_LWORK(X-2))', FLOOR(DROUNDUP_LWORK(X-2))
WRITE(*,991) 'X-1', (X-1),
& 'DROUNDUP_LWORK(X-1)', DROUNDUP_LWORK(X-1),
& 'CEILING(DROUNDUP_LWORK(X-1))', CEILING(DROUNDUP_LWORK(X-1)),
& 'FLOOR(DROUNDUP_LWORK(X-1))', FLOOR(DROUNDUP_LWORK(X-1))
WRITE(*,991) 'X ', (X),
& 'DROUNDUP_LWORK(X )', DROUNDUP_LWORK(X),
& 'CEILING(DROUNDUP_LWORK(X ))', CEILING(DROUNDUP_LWORK(X)),
& 'FLOOR(DROUNDUP_LWORK(X ))', FLOOR(DROUNDUP_LWORK(X))
WRITE(*,991) 'X+1', (X+1),
& 'DROUNDUP_LWORK(X+1)', DROUNDUP_LWORK(X+1),
& 'CEILING(DROUNDUP_LWORK(X+1))', CEILING(DROUNDUP_LWORK(X+1)),
& 'FLOOR(DROUNDUP_LWORK(X+1))', FLOOR(DROUNDUP_LWORK(X+1))
WRITE(*,991) 'X+2', (X+2),
& 'DROUNDUP_LWORK(X+2)', DROUNDUP_LWORK(X+2),
& 'CEILING(DROUNDUP_LWORK(X+2))', CEILING(DROUNDUP_LWORK(X+2)),
& 'FLOOR(DROUNDUP_LWORK(X+2))', FLOOR(DROUNDUP_LWORK(X+2))
990 FORMAT( A, ' = ', I8, '; ', A, ' = ', F10.1,
& '; ', A, ' = ', I8, '; ', A, ' = ', I8 )
991 FORMAT( A, ' = ', I16, '; ', A, ' = ', F18.1,
& '; ', A, ' = ', I16, '; ', A, ' = ', I16 )
END PROGRAM test_roundup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment