NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |ATTRIBUTES |VERSIONS |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
copysign(3) Library Functions Manualcopysign(3)copysign, copysignf, copysignl - copy sign of a number
Math library (libm,-lm)
#include <math.h>double copysign(doublex, doubley);float copysignf(floatx, floaty);long double copysignl(long doublex, long doubley); Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):copysign(),copysignf(),copysignl(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
These functions return a value whose absolute value matches that ofx, but whose sign bit matches that ofy. For example,copysign(42.0, -1.0) andcopysign(-42.0, -1.0) both return -42.0.
On success, these functions return a value whose magnitude is taken fromx and whose sign is taken fromy. Ifx is a NaN, a NaN with the sign bit ofy is returned.
No errors occur.
For an explanation of the terms used in this section, seeattributes(7). ┌──────────────────────────────────────┬───────────────┬─────────┐ │Interface│Attribute│Value│ ├──────────────────────────────────────┼───────────────┼─────────┤ │copysign(),copysignf(),copysignl() │ Thread safety │ MT-Safe │ └──────────────────────────────────────┴───────────────┴─────────┘
On architectures where the floating-point formats are not IEEE 754 compliant, these functions may treat a negative zero as positive.
C11, POSIX.1-2008. This function is defined in IEC 559 (and the appendix with recommended functions in IEEE 754/IEEE 854).
C99, POSIX.1-2001, 4.3BSD.
signbit(3)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17copysign(3)Pages that refer to this page:signbit(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |