  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.
