Ruby
2.7.6p219 (2022-04-12 revision c9c2245c0a25176072e02db9254f0e0c84c805cd)
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.6.h:4095
double
double
Definition:
rb_mjit_min_header-2.7.6.h:5992
i
uint32_t i
Definition:
rb_mjit_min_header-2.7.6.h:5533
long
#define long
Definition:
rb_mjit_min_header-2.7.6.h:2067
ruby.h
signbit
int signbit(double x)
Definition:
signbit.c:5
Generated by
1.9.2