diff options
author | Bruno Haible <bruno@clisp.org> | 2011-10-10 00:25:43 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2011-10-10 00:25:43 +0200 |
commit | 472322ae1a1ca95df1cc9b80031348e04fc5b6bc (patch) | |
tree | 098bb224e250fcdf0e09612f0705fcb683b41f22 /lib/copysignl.c | |
parent | f6fd929e6225babbe65d20332823e9d602bc3b1a (diff) | |
download | gnulib-472322ae1a1ca95df1cc9b80031348e04fc5b6bc.tar.gz |
copysignl: Simplify for platforms where 'long double' == 'double'.
* lib/copysignl.c (copysignl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative.
* m4/copysignl.m4 (gl_FUNC_COPYSIGNL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine COPYSIGNL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/copysignl (Depends-on): Add copysign. Update conditions.
Diffstat (limited to 'lib/copysignl.c')
-rw-r--r-- | lib/copysignl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/copysignl.c b/lib/copysignl.c index 95947f464a..285b8042d5 100644 --- a/lib/copysignl.c +++ b/lib/copysignl.c @@ -19,8 +19,20 @@ /* Specification. */ #include <math.h> +#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE + +long double +copysignl (long double x, long double y) +{ + return copysign (x, y); +} + +#else + long double copysignl (long double x, long double y) { return (signbit (x) != signbit (y) ? - x : x); } + +#endif |