/* Specification. */
#include <math.h>
-/* s_atanl.c
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+
+long double
+atanl (long double x)
+{
+ return atan (x);
+}
+
+#else
+
+/* Code based on glibc/sysdeps/ieee754/ldbl-128/s_atanl.c. */
+
+/* s_atanl.c
*
- * Inverse circular tangent for 128-bit long double precision
+ * Inverse circular tangent for 128-bit long double precision
* (arctangent)
*
*
{
/* Infinity. */
if (sign)
- return -atantbl[83];
+ return -atantbl[83];
else
- return atantbl[83];
+ return atantbl[83];
}
if (sign)
else
{
/* Index of nearest table element.
- Roundoff to integer is asymmetrical to avoid cancellation when t < 0
+ Roundoff to integer is asymmetrical to avoid cancellation when t < 0
(cf. fdlibm). */
k = 8.0 * x + 0.25;
u = 0.125 * k;
else
return u;
}
+
+#endif