Commit 1f5817b9 authored by Bruno Haible's avatar Bruno Haible

asinl: Simplify for platforms where 'long double' == 'double'.

* lib/asinl.c (asinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/asinl.m4 (gl_FUNC_ASINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ASINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/asinl (Depends-on): Add asin. Update conditions.
parent 6e33eaed
2011-10-10 Bruno Haible <bruno@clisp.org>
asinl: Simplify for platforms where 'long double' == 'double'.
* lib/asinl.c (asinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/asinl.m4 (gl_FUNC_ASINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ASINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/asinl (Depends-on): Add asin. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
tanl: Simplify for platforms where 'long double' == 'double'.
......@@ -14,6 +14,16 @@
/* Specification. */
#include <math.h>
#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
long double
asinl (long double x)
{
return asin (x);
}
#else
/*
Long double expansions contributed by
Stephen L. Moshier <moshier@na-net.ornl.gov>
......@@ -188,6 +198,8 @@ asinl (long double x)
return t * sign;
}
#endif
#if 0
int
main (void)
......
# asinl.m4 serial 5
# asinl.m4 serial 6
dnl Copyright (C) 2010-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
......@@ -7,6 +7,8 @@ dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_ASINL],
[
AC_REQUIRE([gl_MATH_H_DEFAULTS])
AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
dnl Persuade glibc <math.h> to declare asinl().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
......@@ -56,12 +58,17 @@ AC_DEFUN([gl_FUNC_ASINL],
HAVE_DECL_ASINL=0
HAVE_ASINL=0
dnl Find libraries needed to link lib/asinl.c.
AC_REQUIRE([gl_FUNC_SQRTL])
dnl Append $SQRTL_LIBM to ASINL_LIBM, avoiding gratuitous duplicates.
case " $ASINL_LIBM " in
*" $SQRTL_LIBM "*) ;;
*) ASINL_LIBM="$ASINL_LIBM $SQRTL_LIBM" ;;
esac
if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
AC_REQUIRE([gl_FUNC_ASIN])
ASINL_LIBM="$ASIN_LIBM"
else
AC_REQUIRE([gl_FUNC_SQRTL])
dnl Append $SQRTL_LIBM to ASINL_LIBM, avoiding gratuitous duplicates.
case " $ASINL_LIBM " in
*" $SQRTL_LIBM "*) ;;
*) ASINL_LIBM="$ASINL_LIBM $SQRTL_LIBM" ;;
esac
fi
fi
AC_SUBST([ASINL_LIBM])
])
......@@ -8,7 +8,8 @@ m4/asinl.m4
Depends-on:
math
extensions
sqrtl [test $HAVE_ASINL = 0]
asin [test $HAVE_ASINL = 0 && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1]
sqrtl [test $HAVE_ASINL = 0 && test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 0]
configure.ac:
gl_FUNC_ASINL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment