OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [libm/] [common/] [s_signbit.c] - Blame information for rev 435

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 207 jeremybenn
/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved.
2
 *
3
 * Permission to use, copy, modify, and distribute this software
4
 * is freely granted, provided that this notice is preserved.
5
 */
6
/*
7
FUNCTION
8
<<signbit>>--Does floating-point number have negative sign?
9
 
10
INDEX
11
        signbit
12
 
13
ANSI_SYNOPSIS
14
        #include <math.h>
15
        int signbit(real-floating <[x]>);
16
 
17
DESCRIPTION
18
The <<signbit>> macro determines whether the sign of its argument value is
19
negative.  The macro reports the sign of all values, including infinities,
20
zeros, and NaNs.  If zero is unsigned, it is treated as positive.  As shown in
21
the synopsis, the argument is "real-floating," meaning that any of the real
22
floating-point types (float, double, etc.) may be given to it.
23
 
24
Note that because of the possibilities of signed 0 and NaNs, the expression
25
"<[x]> < 0.0" does not give the same result as <<signbit>> in all cases.
26
 
27
RETURNS
28
The <<signbit>> macro returns a nonzero value if and only if the sign of its
29
argument value is negative.
30
 
31
PORTABILITY
32
C99, POSIX.
33
 
34
*/
35
 
36
#include "fdlibm.h"
37
 
38
int __signbitf (float x);
39
int __signbitd (double x);
40
 
41
int
42
__signbitf (float x)
43
{
44
  unsigned int w;
45
 
46
  GET_FLOAT_WORD(w,x);
47
 
48
  return (w & 0x80000000);
49
}
50
 
51
int
52
__signbitd (double x)
53
{
54
  unsigned int msw;
55
 
56
  GET_HIGH_WORD(msw, x);
57
 
58
  return (msw & 0x80000000);
59
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.