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(), 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.  

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

 

Multithreading (see pthreads(7))

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

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, these functions may treat a negative zero as positive.  

Willie has over 15 years of experience in Linux system administration and DevOps. After managing infrastructure for startups and enterprises alike, he founded Command Linux to share the practical knowledge he wished he had when starting out. He oversees content strategy and contributes guides on server management, automation, and security.