diff options
author | chai <chaifix@163.com> | 2019-06-06 00:11:18 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-06-06 00:11:18 +0800 |
commit | 88b882ed0b432c6aff2063213e2f793a36dd25f7 (patch) | |
tree | 5fe5d5334050e1a1146aa63e61e88aa2f5170727 /source/external/SDL2/src/libm/s_copysign.c | |
parent | f6c0498c9728a286c13980ed3b60763d02e1b3a0 (diff) |
*misc
Diffstat (limited to 'source/external/SDL2/src/libm/s_copysign.c')
-rw-r--r-- | source/external/SDL2/src/libm/s_copysign.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/source/external/SDL2/src/libm/s_copysign.c b/source/external/SDL2/src/libm/s_copysign.c new file mode 100644 index 0000000..a2f275b --- /dev/null +++ b/source/external/SDL2/src/libm/s_copysign.c @@ -0,0 +1,29 @@ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * copysign(double x, double y) + * copysign(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "math_libm.h" +#include "math_private.h" + +double copysign(double x, double y) +{ + u_int32_t hx,hy; + GET_HIGH_WORD(hx,x); + GET_HIGH_WORD(hy,y); + SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000)); + return x; +} +libm_hidden_def(copysign) |