According to POSIX.1, when atanh(1.0) or atanh(-1.0) produces a pole error, errno should be set to ERANGE. However, glibc (2.8, SUSE 11.0) gives EDOM in this case. I guess the fix is to change the appropriate line for atanh()'s _POSIX_ behavior in sysdeps/ieee754/k_standard.c?
It seems to be fixed since glibc-2.10, verified by: Ivana Varekova <varekova@redhat.com> commit 49768bb93e4960a814563ee30213eaf36e6dcb48 Author: Ulrich Drepper <drepper@redhat.com> Date: Mon Apr 27 04:01:16 2009 +0000 2009-04-26 Ulrich Drepper <drepper@redhat.com> * sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors in atanh should set ERANGE. sysdeps/ieee754/k_standard.c - __set_errno (EDOM); + __set_errno (ERANGE);
Found as fixed.
man page will be updated in man-pages-2.37