41 lines
526 B
C
41 lines
526 B
C
/* Some functions for converting floating point numbers to binary
|
|
representations and vice versa */
|
|
|
|
typedef union {
|
|
double x;
|
|
u64 y;
|
|
} F_DOUBLE_BITS;
|
|
|
|
INLINE u64 double_bits(double x)
|
|
{
|
|
F_DOUBLE_BITS b;
|
|
b.x = x;
|
|
return b.y;
|
|
}
|
|
|
|
INLINE double bits_double(u64 y)
|
|
{
|
|
F_DOUBLE_BITS b;
|
|
b.y = y;
|
|
return b.x;
|
|
}
|
|
|
|
typedef union {
|
|
float x;
|
|
u32 y;
|
|
} F_FLOAT_BITS;
|
|
|
|
INLINE u32 float_bits(float x)
|
|
{
|
|
F_FLOAT_BITS b;
|
|
b.x = x;
|
|
return b.y;
|
|
}
|
|
|
|
INLINE float bits_float(u32 y)
|
|
{
|
|
F_FLOAT_BITS b;
|
|
b.y = y;
|
|
return b.x;
|
|
}
|