On Quality of Implementation of Fortran 2008 Complex Intrinsic Functions on Branch Cuts

Anton Shterenlikht*

*Corresponding author for this work

Research output: Contribution to journalArticle (Academic Journal)peer-review

206 Downloads (Pure)


Branch cuts in complex functions in combination with signed zero and signed infinity have important uses in fracture mechanics, jet flow and aerofoil analysis. We present benchmarks 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. Results are reported with 8 Fortran 2008 compilers: GCC, Flang, Cray, Oracle, PGI, Intel, NAG and IBM. Multiple test failures were revealed, e.g. 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 test results are complemented by conformal maps of the branch cuts and detailed derivations of the values of these functions on branch cuts, to be used as a reference. The benchmarks are freely available from cmplx.sf.net. This work will be of interest to engineers who use complex functions, as well as to compiler and maths library developers.
Original languageEnglish
Article number11
Number of pages9
JournalACM Transactions on Mathematical Software
Issue number1
Publication statusPublished - 1 Mar 2019


  • ACOS
  • ASIN
  • ATAN
  • Branch cuts
  • Fortran
  • LOG
  • Signed infinity
  • Signed zero
  • SQRT

Fingerprint Dive into the research topics of 'On Quality of Implementation of Fortran 2008 Complex Intrinsic Functions on Branch Cuts'. Together they form a unique fingerprint.

Cite this