Method: Flt::FormatBase.pack_fields_hash

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

.pack_fields_hash(h) ⇒ Object

Produce an encoded floating point value using hash of the internal field values. Returns a Value.



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
# File 'lib/float-formats/classes.rb', line 922

def self.pack_fields_hash(h)
  if @splitted_fields.nil?
    pack_fields @field_meaning.collect{|f| h[f]}
  else
    flds = [nil]*@field_meaning.size
    @fields.each_key do |f|
      splits = @splitted_fields[f]
      if splits
        v = h[f]
        splits.each do |i|
          k = fields_radix**(@field_lengths[i])
          flds[i] = v % k
          v /= k
        end
      else
        flds[@field_meaning.index(f)] = h[f]
      end
    end
    pack_fields flds
  end
end