Sha256: 7806dcb9c4d9711b4b64179fdcf1392814e6937fc189ac96e37a8919acd79a0c

Contents?: true

Size: 934 Bytes

Versions: 14

Compression:

Stored size: 934 Bytes

Contents

module GenerateNumber

  def self.float_arguments(size, number, max = 100)
    ret = Array.new(number){ |j| Array.new(size){ |i| rand(max) - rand } }
    for i in 0...(ret.size)
      case i % 4
      when 1
        ret[i].map!{ |a| -a }
      when 2, 3
        ret[i].map!{ |a| (rand > 0.5 ? -a : a) }
      end
    end
    ret
  end

  def self.float(num, max = 100, &block)
    if block_given?
      for i in 0...num
        a = rand(max) - rand
        a = -a if rand > 0.5
        yield(a)
      end
    else
      ary = Array.new(num){ |i| rand(max) - rand }
      ary.map!{ |a| (rand > 0.5 ? -a : a) }
    end
  end

  def self.string(number)
    prec = MPFR.get_default_prec
    max = 2 ** prec
    Array.new(number) do |i|
      sign = ((rand > 0.5 ? '-' : ''))
      "#{sign}#{rand(max)}.#{rand(max)}"
    end
  end
  
  def self.mpfr_args(number)
    ret = self.string(number)
    ret.map!{ |a| MPFR.new(a) }
  end
  

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ruby-mpfr-0.0.17 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.16 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.15 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.14 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.13 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.12 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.11 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.10 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.9 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.8 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.7 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.6 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.5 spec/mpfr/generate_number_modulue.rb
ruby-mpfr-0.0.4 spec/mpfr/generate_number_modulue.rb