mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 5b8af7521f
			
		
	
	
		5b8af7521f
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			19 lines
		
	
	
	
		
			389 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
	
		
			389 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <limits.h>
 | |
| #include "ruby.h"
 | |
| 
 | |
| int
 | |
| signbit(double x)
 | |
| {
 | |
|     enum {double_per_long = sizeof(double) / sizeof(long)};
 | |
|     enum {long_msb = sizeof(long) * CHAR_BIT - 1};
 | |
|     union {double d; unsigned long i[double_per_long];} u;
 | |
|     unsigned long l;
 | |
| 
 | |
|     u.d = x;
 | |
| #ifdef WORDS_BIGENDIAN
 | |
|     l = u.i[0];
 | |
| #else
 | |
|     l = u.i[double_per_long - 1];
 | |
| #endif
 | |
|     return (int)(l >> long_msb);
 | |
| }
 |