/* Specification. */
#include <math.h>
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+
+long double
+sinl (long double x)
+{
+ return sin (x);
+}
+
+#else
+
+/* Code based on glibc/sysdeps/ieee754/ldbl-128/s_sinl.c. */
+
/* sinl(x)
* Return sine function of x.
*
* kernel function:
* __kernel_sinl ... sine function on [-pi/4,pi/4]
- * __kernel_cosl ... cose function on [-pi/4,pi/4]
+ * __kernel_cosl ... cosine function on [-pi/4,pi/4]
* __ieee754_rem_pio2l ... argument reduction routine
*
* Method.
* TRIG(x) returns trig(x) nearly rounded
*/
-#include "trigl.h"
-#include "trigl.c"
-#include "sincosl.c"
+# include "trigl.h"
long double
sinl (long double x)
return x;
/* |x| ~< pi/4 */
- if (x >= -0.7853981633974483096156608458198757210492 &&
- x <= 0.7853981633974483096156608458198757210492)
+ if (x >= -0.7853981633974483096156608458198757210492
+ && x <= 0.7853981633974483096156608458198757210492)
return kernel_sinl (x, z, 0);
/* sinl(Inf) is NaN, sinl(0) is 0 */
}
}
+#endif
+
#if 0
int
main (void)
{
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *29));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *2));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *30));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *4));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *32));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *2/3));
- printf ("%.16Lg\n", sinl(0.7853981633974483096156608458198757210492 *4/3));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *29));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *2));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *30));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *4));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *32));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *2/3));
+ printf ("%.16Lg\n", sinl (0.7853981633974483096156608458198757210492 *4/3));
}
#endif