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;
 | 
						|
}
 |