46 lines
561 B
C++
46 lines
561 B
C++
namespace factor
|
|
{
|
|
|
|
/* Some functions for converting floating point numbers to binary
|
|
representations and vice versa */
|
|
|
|
union double_bits_pun {
|
|
double x;
|
|
u64 y;
|
|
};
|
|
|
|
inline static u64 double_bits(double x)
|
|
{
|
|
double_bits_pun b;
|
|
b.x = x;
|
|
return b.y;
|
|
}
|
|
|
|
inline static double bits_double(u64 y)
|
|
{
|
|
double_bits_pun b;
|
|
b.y = y;
|
|
return b.x;
|
|
}
|
|
|
|
union float_bits_pun {
|
|
float x;
|
|
u32 y;
|
|
};
|
|
|
|
inline static u32 float_bits(float x)
|
|
{
|
|
float_bits_pun b;
|
|
b.x = x;
|
|
return b.y;
|
|
}
|
|
|
|
inline static float bits_float(u32 y)
|
|
{
|
|
float_bits_pun b;
|
|
b.y = y;
|
|
return b.x;
|
|
}
|
|
|
|
}
|