Method: Flt::IEEE.interchange_binary

Defined in:
lib/float-formats/formats.rb

.interchange_binary(name, width_in_bits, options = {}) ⇒ Object

Define an IEEE binary interchange format given its width in bits



36
37
38
39
40
41
42
# File 'lib/float-formats/formats.rb', line 36

def self.interchange_binary(name,width_in_bits, options={})
  unless (width_in_bits%32)==0 && (width_in_bits/32)>=4
    raise "Invalid IEEE binary interchange format definition: size (#{width_in_bits}) is not valid"
  end
  p = width_in_bits - (4*Math.log(width_in_bits)/Math.log(2)).round.to_i + 13
  binary(name, { significand: p-1, exponent: width_in_bits-p }.merge(options))
end