# COPYSIGN

NAME

SYNOPSIS

DESCRIPTION

RETURN VALUE

ERRORS

ATTRIBUTES

CONFORMING TO

NOTES

SEE ALSO

COLOPHON

## 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 ||
_POSIX_C_SOURCE >= 200112L;

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*.

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

## 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.

## ATTRIBUTES

For an
explanation of the terms used in this section, see
**attributes**(7).

## 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.53 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/.