CMPLX: Fortran 2008 complex intrinsics on branch cuts. The values of complex functions on branch cuts are important, e.g. in fracture, fluid dynamics or elasticity in general, where the most important data is always on boundaries. Another example is the error function, erf(z), used extensively e.g. in acoustics. erf(z) is calculated using SQRT of complex arguments, including on the branch cut. Given that Fortran is still the most widely used language in science and engineering, particularly in HPC, this project focusses on testing the quality of implementation of Fortran complex intrinsics on branch cuts. Fortran intrinsics LOG and SQRT accepted complex arguments at least since FORTRAN66. Fortran 2003 standard added support for the IEEE 754 floating point standard (ISO/IEC 60559), which defines minus zero and rules for its use. Fortran 2008 standard added support for complex arguments in intrinsic functions ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH. Fortran 2008 should therefore be suitable for calculations of the 8 elemetary complex functions on branch cuts. For more details of the package refer to A Shterenlikht, On quality of implementation of Fortran 2008 complex intrinsic functions on branch cuts, arXiv:1712.10230. For an in depth analysis of numerical altorithms for calculating these fuctions refer to W. Kahan, Branch Cuts for Complex Elementary Functions, or Much Ado About Nothingâ€™s Sign Bit, in The State of the Art in Numerical Analysis, A. Iserles, M. J. D. Powell Eds., Clarendon Press, Oxford, 1987 (PDF). The most autoritative information on the mathematics is probably DLMF, speficically Sections 4.2(i) The Logarithm for LOG, 4.23 Inverse Trigonometric Functions for ACOS, ASIN, ATAN and 4.37 Inverse Hyperbolic Functions for ACOSH, ASINH, ATANH. CMPLX package is distributed under BSD license. With any questions, bug reports, feedback and any other comments please submit a ticket.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element