Very interesting set of tests. In the Discussion section you mention that some of these functions might be implemented by calling the system libm routines. (And hence matching output of similar tests written in C.) To the extent that is the case, the results are indicative of the OS (SUSE, RedHat, …) that supplied the libm library, rather than the compiler used. For example, if you ran the tests for Cray and PGI on the same system, then for the libm cases you would expect the same outcome. Of course, it is useful information that the libm routines are wrong, and the compiler vendors need to supply “native” code for those cases (or get SUSE, RedHat, … to fix their libm code). I’m guessing that Intel wrote their own routines for all the cases. It would be a useful addition to the paper to indicate which of the routines were being linked in from libm and for those cases what OS the system was running.
Cheers,
Bill
> On Jan 3, 2018, at 5:04 AM, Anton Shterenlikht <[log in to unmask]> wrote:
>
> Might be of interest to some.
>
> https://arxiv.org/abs/1712.10230
>
> On quality of implementation of Fortran 2008 complex intrinsic functions on branch cuts
> Anton Shterenlikht
> (Submitted on 29 Dec 2017)
>
> 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.
Bill Long [log in to unmask]
Principal Engineer, Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9143
Cray Inc./ 2131 Lindau Lane/ Suite 1000/ Bloomington, MN 55425
|