COPYSIGN(3) Library Functions Manual COPYSIGN(3)

copysignchanges the sign of x to that of y

#include <math.h>

double
copysign(double x, double y);

long double
copysignl(long double x, long double y);

float
copysignf(float x, float y);

The () functions return x with its sign changed to y's.

copysign(x, y) returns a NaN (with y's sign) if x is a NaN.

If you need to apply the copysign() functions to SIMD vectors or arrays, using the following functions provided by the Accelerate.framework may give significantly better performance:

#include <Accelerate/Accelerate.h>

vFloat (vFloat x, vFloat y);
void (float *z, const float *y, const float *x, const int *n);
void (double *z, const double *y, const double *x, const int *n);

The copysign() functions conform to ISO/IEC 9899:2011.

December 11, 2006 macOS 15.2