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