Last active
July 27, 2021 23:43
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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