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