Ruby
2.7.7p221 (2022-11-24 revision 168ec2b1e5ad0e4688e963d9de019557c78feed9)
missing
signbit.c
Go to the documentation of this file.
1
#include <limits.h>
2
#include "
ruby.h
"
3
4
int
5
signbit
(
double
x)
6
{
7
enum
{double_per_long =
sizeof
(
double
) /
sizeof
(
long
)};
8
enum
{long_msb =
sizeof
(
long
) *
CHAR_BIT
- 1};
9
union
{
double
d;
unsigned
long
i
[double_per_long];} u;
10
unsigned
long
l;
11
12
u.d = x;
13
#ifdef WORDS_BIGENDIAN
14
l = u.i[0];
15
#else
16
l = u.i[double_per_long - 1];
17
#endif
18
return
(
int
)(l >> long_msb);
19
}
CHAR_BIT
#define CHAR_BIT
Definition:
rb_mjit_min_header-2.7.7.h:15495
double
double
Definition:
rb_mjit_min_header-2.7.7.h:3038
i
uint32_t i
Definition:
rb_mjit_min_header-2.7.7.h:2638
long
#define long
Definition:
rb_mjit_min_header-2.7.7.h:14484
ruby.h
signbit
int signbit(double x)
Definition:
signbit.c:5
Generated by
1.9.2