URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.18.0/] [newlib/] [libm/] [common/] [s_signbit.c] - Rev 207
Compare with Previous | Blame | View Log
/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. * * Permission to use, copy, modify, and distribute this software * is freely granted, provided that this notice is preserved. */ /* FUNCTION <<signbit>>--Does floating-point number have negative sign? INDEX signbit ANSI_SYNOPSIS #include <math.h> int signbit(real-floating <[x]>); DESCRIPTION The <<signbit>> macro determines whether the sign of its argument value is negative. The macro reports the sign of all values, including infinities, zeros, and NaNs. If zero is unsigned, it is treated as positive. As shown in the synopsis, the argument is "real-floating," meaning that any of the real floating-point types (float, double, etc.) may be given to it. Note that because of the possibilities of signed 0 and NaNs, the expression "<[x]> < 0.0" does not give the same result as <<signbit>> in all cases. RETURNS The <<signbit>> macro returns a nonzero value if and only if the sign of its argument value is negative. PORTABILITY C99, POSIX. */ #include "fdlibm.h" int __signbitf (float x); int __signbitd (double x); int __signbitf (float x) { unsigned int w; GET_FLOAT_WORD(w,x); return (w & 0x80000000); } int __signbitd (double x) { unsigned int msw; GET_HIGH_WORD(msw, x); return (msw & 0x80000000); }