float copysignf( float x, float y );
(1) (since C99)double copysign( double x, double y );
(2) (since C99)long double copysignl( long double x, long double y );
(3) (since C99)#define copysign(x, y)
(4) (since C99)1-3) Composes a floating-point value with the magnitude of x
and the sign of y
.
4) Type-generic macro: If any argument has type long double, copysignl
is called. Otherwise, if any argument has integer type or has type double, copysign
is called. Otherwise, copysignf
is called.
If no errors occur, the floating-point value with the magnitude of x
and the sign of y
is returned.
If x
is NaN, then NaN with the sign of y
is returned.
If y
is -0, the result is only negative if the implementation supports the signed zero consistently in arithmetic operations.
This function is not subject to any errors specified in math_errhandling
.
If the implementation supports IEEE floating-point arithmetic (IEC 60559),
copysign
is the only portable way to manipulate the sign of a NaN value (to examine the sign of a NaN, signbit may also be used).
#include <math.h> #include <stdio.h> int main(void) { printf("copysign(1.0,+2.0) = %+.1f\n", copysign(1.0,+2.0)); printf("copysign(1.0,-2.0) = %+.1f\n", copysign(1.0,-2.0)); printf("copysign(INFINITY,-2.0) = %f\n", copysign(INFINITY,-2.0)); printf("copysign(NAN,-2.0) = %f\n", copysign(NAN,-2.0)); }
Possible output:
copysign(1.0,+2.0) = +1.0 copysign(1.0,-2.0) = -1.0 copysign(INFINITY,-2.0) = -inf copysign(NAN,-2.0) = -nan[edit] References
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4