mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	
							parent
							
								
									e2b78440ba
								
							
						
					
					
						commit
						f3dcb4bbf7
					
				
				
				Notes:
				
					git
				
				2021-11-18 23:28:33 +09:00 
				
			
			Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
					 1 changed files with 62 additions and 23 deletions
				
			
		
							
								
								
									
										85
									
								
								numeric.c
									
										
									
									
									
								
							
							
						
						
									
										85
									
								
								numeric.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -3750,7 +3750,7 @@ fix_minus(VALUE x, VALUE y)
 | 
			
		|||
 | 
			
		||||
/*
 | 
			
		||||
 *  call-seq:
 | 
			
		||||
 *    int - numeric -> numeric_result
 | 
			
		||||
 *    self - numeric -> numeric_result
 | 
			
		||||
 *
 | 
			
		||||
 *  Performs subtraction:
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -4282,6 +4282,21 @@ fix_pow(VALUE x, VALUE y)
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  call-seq:
 | 
			
		||||
 *    self ** numeric -> numeric_result
 | 
			
		||||
 *
 | 
			
		||||
 *  Raises +self+ to the power of +numeric+:
 | 
			
		||||
 *
 | 
			
		||||
 *    2 ** 3              # => 8
 | 
			
		||||
 *    2 ** -3             # => (1/8)
 | 
			
		||||
 *    -2 ** 3             # => -8
 | 
			
		||||
 *    -2 ** -3            # => (-1/8)
 | 
			
		||||
 *    2 ** 3.3            # => 9.849155306759329
 | 
			
		||||
 *    2 ** Rational(3, 1) # => (8/1)
 | 
			
		||||
 *    2 ** Complex(3, 0)  # => (8+0i)
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
VALUE
 | 
			
		||||
rb_int_pow(VALUE x, VALUE y)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -4776,15 +4791,6 @@ int_xor(VALUE x, VALUE y)
 | 
			
		|||
    return Qnil;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Document-method: Integer#<<
 | 
			
		||||
 * call-seq:
 | 
			
		||||
 *   int << count  ->  integer
 | 
			
		||||
 *
 | 
			
		||||
 * Returns +int+ shifted left +count+ positions, or right if +count+
 | 
			
		||||
 * is negative.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
rb_fix_lshift(VALUE x, VALUE y)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -4810,6 +4816,23 @@ fix_lshift(long val, unsigned long width)
 | 
			
		|||
    return LONG2NUM(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  call-seq:
 | 
			
		||||
 *    self << count -> integer
 | 
			
		||||
 *
 | 
			
		||||
 *  Returns +self+ with bits shifted +count+ positions to the left,
 | 
			
		||||
 *  or to the right if +count+ is negative:
 | 
			
		||||
 *
 | 
			
		||||
 *    n = 0b11110000
 | 
			
		||||
 *    "%08b" % (n << 1)  # => "111100000"
 | 
			
		||||
 *    "%08b" % (n << 3)  # => "11110000000"
 | 
			
		||||
 *    "%08b" % (n << -1) # => "01111000"
 | 
			
		||||
 *    "%08b" % (n << -3) # => "00011110"
 | 
			
		||||
 *
 | 
			
		||||
 *  Related: Integer#>>.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
VALUE
 | 
			
		||||
rb_int_lshift(VALUE x, VALUE y)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -4822,15 +4845,6 @@ rb_int_lshift(VALUE x, VALUE y)
 | 
			
		|||
    return Qnil;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Document-method: Integer#>>
 | 
			
		||||
 * call-seq:
 | 
			
		||||
 *   int >> count  ->  integer
 | 
			
		||||
 *
 | 
			
		||||
 * Returns +int+ shifted right +count+ positions, or left if +count+
 | 
			
		||||
 * is negative.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
rb_fix_rshift(VALUE x, VALUE y)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -4857,6 +4871,23 @@ fix_rshift(long val, unsigned long i)
 | 
			
		|||
    return LONG2FIX(val);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  call-seq:
 | 
			
		||||
 *    self >> count -> integer
 | 
			
		||||
 *
 | 
			
		||||
 *  Returns +self+ with bits shifted +count+ positions to the right,
 | 
			
		||||
 *  or to the left if +count+ is negative:
 | 
			
		||||
 *
 | 
			
		||||
 *    n = 0b11110000
 | 
			
		||||
 *    "%08b" % (n >> 1)  # => "01111000"
 | 
			
		||||
 *    "%08b" % (n >> 3)  # => "00011110"
 | 
			
		||||
 *    "%08b" % (n >> -1) # => "111100000"
 | 
			
		||||
 *    "%08b" % (n >> -3) # => "11110000000"
 | 
			
		||||
 *
 | 
			
		||||
 *  Related: Integer#<<.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
rb_int_rshift(VALUE x, VALUE y)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -5031,12 +5062,20 @@ int_aref(int const argc, VALUE * const argv, VALUE const num)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *  Document-method: Integer#to_f
 | 
			
		||||
 *  call-seq:
 | 
			
		||||
 *     int.to_f  ->  float
 | 
			
		||||
 *    to_f -> float
 | 
			
		||||
 *
 | 
			
		||||
 *  Converts +self+ to a Float:
 | 
			
		||||
 *
 | 
			
		||||
 *    1.to_f  # => 1.0
 | 
			
		||||
 *    -1.to_f # => -1.0
 | 
			
		||||
 *
 | 
			
		||||
 *  If the value of +self+ does not fit in a \Float,
 | 
			
		||||
 *  the result is infinity:
 | 
			
		||||
 *
 | 
			
		||||
 *    (10**400).to_f  # => Infinity
 | 
			
		||||
 *    (-10**400).to_f # => -Infinity
 | 
			
		||||
 *
 | 
			
		||||
 *  Converts +int+ to a Float.  If +int+ doesn't fit in a Float,
 | 
			
		||||
 *  the result is infinity.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue