Copy sign of a number

#include <math.h>double copysign(doublex, doubley);float copysignf(floatx, floaty);long double copysignl(long doublex, long doubley);

Link with *-lm*.

Feature Test Macro Requirements for glibc (see **feature_test_macros**(7)):

**copysign**(), **copysignf**(), **copysignl**():

_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;

or *cc -std=c99*

The **copysign**(), **copysignf**(), and **copysignl**() functions return a value whose absolute value matches that of *x*, but whose sign bit matches that of *y*.

For example, *copysign(42.0, -1.0)* and *copysign(-42.0, -1.0)* both return -42.0.

On success, these functions return a value whose magnitude is taken from *x* and whose sign is taken from *y*.

If *x* is a NaN, a NaN with the sign bit of *y* is returned.

No errors occur.

The **copysign**(), **copysignf**(), and **copysignl**() functions are thread-safe.

C99, POSIX.1-2001. This function is defined in IEC 559 (and the appendix with recommended functions in IEEE 754/IEEE 854).

On architectures where the floating-point formats are not IEEE 754 compliant, these functions may treat a negative zero as positive.

This page is part of release 3.74 of the Linux *man-pages* project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.