copysignf.c 196 B

1234567891011
  1. #include "libm.h"
  2. float copysignf(float x, float y) {
  3. union fshape ux, uy;
  4. ux.value = x;
  5. uy.value = y;
  6. ux.bits &= (uint32_t)-1>>1;
  7. ux.bits |= uy.bits & (uint32_t)1<<31;
  8. return ux.value;
  9. }