Class: Prime::PseudoPrimeGenerator (Ruby 2.2.2)
Description: Class : Prime::PseudoPrimeGenerator - Ruby 2.2.2

- Home
- Core 2.2.2
- Std-lib 2.2.2
- Downloads

Support for the Ruby 2.2 series has ended. See here for reference.

### Home Classes Methods

### In Files

- prime.rb

### Parent

Object

### Methods

- ::new
- #each
- #next
- #rewind
- #succ
- #upper_bound
- #upper_bound=
- #with_object

### Included Modules

- Enumerable

### Class/Module Index

Quicksearch

- Integer
- Prime
- Prime::EratosthenesGenerator
- Prime::EratosthenesSieve
- Prime::Generator23
- Prime::OldCompatibility
- Prime::PseudoPrimeGenerator
- Prime::TrialDivision
- Prime::TrialDivisionGenerator

No matching classes.

# Prime::PseudoPrimeGenerator

An abstract class for enumerating pseudo-prime numbers.

Concrete subclasses should override succ, next, rewind.

### Public Class Methods

new(ubound = nil) click to toggle source

                   # File prime.rb, line 243
    def initialize(ubound = nil)
      @ubound = ubound
    end

### Public Instance Methods

each() click to toggle source

Iterates the given block for each prime number.

                   # File prime.rb, line 275
    def each
      return self.dup unless block_given?
      if @ubound
        last_value = nil
        loop do
          prime = succ
          break last_value if prime > @ubound
          last_value = yield prime
        end
      else
        loop do
          yield succ
        end
      end
    end

next() click to toggle source

alias of `succ`.

                   # File prime.rb, line 263
    def next
      raise NotImplementedError, "need to define `next'"
    end

rewind() click to toggle source

Rewinds the internal position for enumeration.

See `Enumerator`#rewind.

                   # File prime.rb, line 270
    def rewind
      raise NotImplementedError, "need to define `rewind'"
    end

succ() click to toggle source

returns the next pseudo-prime number, and move the internal position forward.

`PseudoPrimeGenerator`#succ raises `NotImplementedError`.

                   # File prime.rb, line 258
    def succ
      raise NotImplementedError, "need to define `succ'"
    end

upper_bound() click to toggle source

                   # File prime.rb, line 250
    def upper_bound
      @ubound
    end

upper_bound=(ubound) click to toggle source

                   # File prime.rb, line 247
    def upper_bound=(ubound)
      @ubound = ubound
    end

with_object(obj) click to toggle source

see `Enumerator`#with_object.

                   # File prime.rb, line 295
    def with_object(obj)
      return enum_for(:with_object) unless block_given?
      each do |prime|
        yield prime, obj
      end
    end