Class: Integer

Inherits:
Object show all
Defined in:
lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/odd.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/ord.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/even.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/pred.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/integer/round.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.each_prime(ubound, &block) ⇒ Object

Iterates the given block over all prime numbers.

See Prime#each for more details.



40
41
42
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb', line 40

def Integer.each_prime(ubound, &block) # :yields: prime
  Prime.each(ubound, &block)
end

.from_prime_division(pd) ⇒ Object

Re-composes a prime factorization and returns the product.

See Prime#int_from_prime_division for more details.



21
22
23
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb', line 21

def Integer.from_prime_division(pd)
  Prime.int_from_prime_division(pd)
end

Instance Method Details

#even?Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/even.rb', line 3

def even?
  self[0].zero?
end

#odd?Boolean

Returns:

  • (Boolean)


3
4
5
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/odd.rb', line 3

def odd?
  !self[0].zero?
end

#ordObject



3
4
5
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/ord.rb', line 3

def ord
  self
end

#predObject



3
4
5
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/integer/pred.rb', line 3

def pred
  self - 1
end

#prime?Boolean

Returns true if self is a prime number, false for a composite.

Returns:

  • (Boolean)


33
34
35
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb', line 33

def prime?
  Prime.prime?(self)
end

#prime_division(generator = Prime::Generator23.new) ⇒ Object

Returns the factorization of self.

See Prime#prime_division for more details.



28
29
30
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/stdlib/prime.rb', line 28

def prime_division(generator = Prime::Generator23.new)
  Prime.prime_division(self, generator)
end

#round_with_digits(ndigits = 0) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/integer/round.rb', line 5

def round_with_digits(ndigits=0)
  ndigits = Backports::coerce_to_int(ndigits)
  case
  when ndigits.zero?
    self
  when ndigits > 0
    raise RangeError if ndigits >= 1<<31
    Float(self)
  else
    pow = 10 ** (-ndigits)
    return 0 if pow.is_a?(Float) # when ndigits hugely negative
    remain = self % pow
    comp = self < 0 ? :<= : :<
    remain -= pow unless remain.send(comp, pow / 2)
    self - remain
  end
end