This should have been fixed by https://sourceforge.net/p/mingw-w64/mingw-w64/ci/021dffb8a482eb9d1b39569cd1ea42b87226fdf7/.
This should have been fixed by https://sourceforge.net/p/mingw-w64/mingw-w64/ci/66ba5f3221c786de24f5fc4b9c0236b704c2d31d/ and https://sourceforge.net/p/mingw-w64/mingw-w64/ci/021dffb8a482eb9d1b39569cd1ea42b87226fdf7/.
asinh incorrect for large values
I don't think return ( x >= 0.0 ? z : -z); would be correct, since it would then give 0.0 for asinh(-0.0) (it should give -0.0, which it currently does). (I think atanh is coded per the suggestion, and gives the incorrect 0.0 for atanh(-0.0)). Isn't it possible to just use copysign?