**NAME**

copysign, copysignf, copysignl - copy sign of a number

**SYNOPSIS**

**#include** **<math.h>**
**double** **copysign(double** __x__**,** **double** __y__**);**
**float** **copysignf(float** __x__**,** **float** __y__**);**
**long** **double** **copysignl(long** **double** __x__**,** **long** **double** __y__**);**
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; or __cc__ __-std=c99__

**DESCRIPTION**

The **copysign**() functions return a value whose absolute value matches
that of __x__, but whose sign bit matches that of __y__.

**RETURN** **VALUE**

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.

**ERRORS**

No errors occur.

**CONFORMING** **TO**

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

**NOTES**

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

**SEE ALSO**

**signbit**(3)

**COLOPHON**

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