Title | ||
---|---|---|
On quality of implementation of Fortran 2008 complex intrinsic functions on branch cuts. |
Abstract | ||
---|---|---|
Branch cuts in complex functions have important uses in fracture mechanics, jet flow, and aerofoil analysis. This article introduces tests for validating Fortran 2008 complex functions—LOG, SQRT, ASIN, ACOS, ATAN, ASINH, ACOSH, and ATANH—on branch cuts with arguments of all 3 IEEE floating-point binary formats: binary32, binary64, and binary128, including signed zero and signed infinity. Multiple test failures were revealed, such as wrong signs of results or unexpected overflow, underflow, or NaN. We conclude that the quality of implementation of these Fortran 2008 intrinsics in many compilers is not yet sufficient to remove the need for special code for branch cuts. The electronic appendix contains the full test results with 8 Fortran 2008 compilers: GCC, Flang, Cray, Oracle, PGI, Intel, NAG, and IBM, detailed derivations of the values of these functions on branch cuts and conformal maps of the branch cuts, to be used as a reference. The tests and the results are freely available from https://cmplx.sourceforge.io. This work will be of interest to engineers who use complex functions, as well as to compiler and math library developers.
|
Year | DOI | Venue |
---|---|---|
2019 | 10.1145/3301318 | ACM Transactions on Mathematical Software (TOMS) |
Keywords | DocType | Volume |
ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, Fortran, LOG, SQRT, branch cuts, signed infinity, signed zero | Journal | abs/1712.10230 |
Issue | ISSN | Citations |
1 | 0098-3500 | 0 |
PageRank | References | Authors |
0.34 | 5 | 1 |
Name | Order | Citations | PageRank |
---|---|---|---|
Anton Shterenlikht | 1 | 0 | 1.35 |