source: trunk/libs/newlib/src/newlib/libm/common/sf_copysign.c @ 620

Last change on this file since 620 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.1 KB
Line 
1/* sf_copysign.c -- float version of s_copysign.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3 */
4
5/*
6 * ====================================================
7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
8 *
9 * Developed at SunPro, a Sun Microsystems, Inc. business.
10 * Permission to use, copy, modify, and distribute this
11 * software is freely granted, provided that this notice
12 * is preserved.
13 * ====================================================
14 */
15
16/*
17 * copysignf(float x, float y)
18 * copysignf(x,y) returns a value with the magnitude of x and
19 * with the sign bit of y.
20 */
21
22#include "fdlibm.h"
23
24#ifdef __STDC__
25        float copysignf(float x, float y)
26#else
27        float copysignf(x,y)
28        float x,y;
29#endif
30{
31        __uint32_t ix,iy;
32        GET_FLOAT_WORD(ix,x);
33        GET_FLOAT_WORD(iy,y);
34        SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
35        return x;
36}
37
38#ifdef _DOUBLE_IS_32BITS
39
40#ifdef __STDC__
41        double copysign(double x, double y)
42#else
43        double copysign(x,y)
44        double x,y;
45#endif
46{
47        return (double) copysignf((float) x, (float) y);
48}
49
50#endif /* defined(_DOUBLE_IS_32BITS) */
Note: See TracBrowser for help on using the repository browser.