float-formats 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e5c6ebefc05d57a1271453eb0ba460e7f6fa9e9d
4
- data.tar.gz: 0bb606a66d28fa34cdf03984c72acf0ecdbb4ce3
2
+ SHA256:
3
+ metadata.gz: a6026d216573d6d4bc1bae38fe5495a26424fb09e306a6ee2abc9d111bc40b0a
4
+ data.tar.gz: 8dd5a8805026744cf00d40c0b0acbbf06d797b2229de77aacdc10b2e2ebb71e7
5
5
  SHA512:
6
- metadata.gz: dd8490cef4b2aacb6bb06b7fb5e349acf954055499f2bc52000c126a4095163dca2be630d7f27b60b5426e4e43772d1eae6f099423eead7ecf8b257afc59b23e
7
- data.tar.gz: 62ce956a3757fb4719e7cf0572ff4698af641275396ba6b5a5f2d95db641e90e35148adc7499dbe0b8bccd157a682585075efab7a561cf708a4c1e9c9b6c3b7e
6
+ metadata.gz: 72c9aa4fad90095a7f07ca48d8dc96c1ab0a64e80e57a343a69ae50bb6a65b8aa28e53c71e851d7f6ea809fa2b20206b1c3f847a59efe0908c28976a999eda8a
7
+ data.tar.gz: 0e49f3bb72c6b21d2ec3c402a175464e8044cae267fcd3d2fcbe45f6536cb472970d2cd18e4a40879cd39012f9195f257eff6ade872898d0f082842d4f68c708
@@ -1,3 +1,9 @@
1
+ == 0.4.0 2020-04-07
2
+
3
+ * New formats: BFLOAT16, MSFP8, MSFP9, MSFP10, MSFP11, KHRONOS_VULKAN_UNSIGNED10, KHRONOS_VULKAN_UNSIGNED11
4
+ * New aliases: MBF_EXTENDEND, HFP_SINGLE, HFP_DOUBLE, HFP_EXTENDED
5
+ # Development dependencies updated
6
+
1
7
  == 0.3.0 2015-04-05
2
8
 
3
9
  * Nio dependency replaced by Numerals
@@ -10,7 +16,7 @@
10
16
  == 0.2.0 2009-08-06
11
17
 
12
18
  * New redefined interface
13
- * The sign in splitted form (sign, significand, exponent) now
19
+ * The sign in split form (sign, significand, exponent) now
14
20
  have the sign as an integer +1,-1 rather than using the
15
21
  internal representation (0, 1, etc.)
16
22
  * Arithmetic is possible on FP values
@@ -26,7 +32,7 @@
26
32
  * Allow non-bcd values in fields of BCD formats by passing
27
33
  hex values as Strings; allow such values to be used for
28
34
  nan/infinity exponents.
29
- * Nio 0.2.1 is now reqiured
35
+ * Nio 0.2.1 is now required
30
36
  * Handle special values (Infinities and NaN) in #from_fmt, #from_number
31
37
  * Add ulp methods to Value and FP classes and to Float
32
38
  * Bug fixes
data/README.md CHANGED
@@ -1,15 +1,18 @@
1
- #Introduction
1
+ [![Gem Version](https://badge.fury.io/rb/float-formats.svg)](http://badge.fury.io/rb/float-formats)
2
+ [![Build Status](https://travis-ci.org/jgoizueta/float-formats.svg)](https://travis-ci.org/jgoizueta/float-formats)
3
+
4
+ # Introduction
2
5
 
3
6
  Float-Formats is a Ruby package with methods to handle diverse floating-point formats.
4
7
  These are some of the things that can be done with it:
5
8
 
6
- * Enconding and decoding numerical values in specific floating point representations.
9
+ * Encoding and decoding numerical values in specific floating point representations.
7
10
  * Conversion of floating-point data between different formats.
8
11
  * Obtaining properties of floating-point formats (ranges, precision, etc.)
9
12
  * Exploring and learning about floating point representations.
10
13
  * Definition and testing of new floating-point formats.
11
14
 
12
- #Installation
15
+ # Installation
13
16
 
14
17
  To install the gem manually:
15
18
 
@@ -19,11 +22,11 @@ You can find the code in GitHub:
19
22
 
20
23
  * http://github.com/jgoizueta/float-formats/
21
24
 
22
- #Predefined formats
25
+ # Predefined formats
23
26
 
24
27
  A number of common formats are defined as constants in the Flt module:
25
28
 
26
- ##IEEE 754-2008
29
+ ## IEEE 754-2008
27
30
 
28
31
  **Binary** floating point representations in little endian order:
29
32
 
@@ -44,7 +47,7 @@ A number of common formats are defined as constants in the Flt module:
44
47
  Others can be defined with IEEE.interchange_binary and IEEE.interchange_decimal
45
48
  (see the IEEE module).
46
49
 
47
- ##Legacy
50
+ ## Legacy
48
51
 
49
52
  Formats of historical interest, some of which are found
50
53
  in file formats still in use.
@@ -69,13 +72,17 @@ Borland Pascal: (BORLAND48).
69
72
  Formats used in the Intel 8051 by the C51 compiler:
70
73
  (C51_BCD_FLOAT, C51_BCD_DOUBLE and C51_BCD_LONG_DOUBLE).
71
74
 
72
- ##Calculators
75
+ **Minifloats**:
76
+ AI Formats: (BFLOAT16, MSFP8, MSFP9, MSFP10, MSFP11)
77
+ Khronos Vulkan unsigned formats: (KHRONOS_VULKAN_UNSIGNED10, KHRONOS_VULKAN_UNSIGNED11)
78
+
79
+ ## Calculators
73
80
 
74
81
  Formats used in HP RPL calculators: (RPL, RPL_X),
75
82
  HP-71B formats (HP71B, HP71B_X)
76
83
  and classic HP 10 digit calculators: (HP_CLASSIC).
77
84
 
78
- #Using the pre-defined formats
85
+ # Using the pre-defined formats
79
86
 
80
87
  require 'rubygems'
81
88
  require 'float-formats'
@@ -111,7 +118,7 @@ Minimum and maximum decimal exponents:
111
118
  puts IEEE_binary32.decimal_min_exp # -> -37
112
119
  puts IEEE_binary32.decimal_max_exp # -> 38
113
120
 
114
- ##Encode and decode numbers
121
+ ## Encode and decode numbers
115
122
 
116
123
  For each floating-point format class there is a constructor method with the same
117
124
  name which can build a floating-point value from a variety of parameters:
@@ -119,7 +126,7 @@ name which can build a floating-point value from a variety of parameters:
119
126
  * Using three integers:
120
127
  the sign (+1 for +, -1 for -), the significand (coefficient or mantissa)
121
128
  and the exponent.
122
- * From a text numeral (with an optional Nio format specifier)
129
+ * From a text numeral (with an optional `Numerals` format specifier)
123
130
  * From a number : converts a numerical value
124
131
  to a floating point representation.
125
132
 
@@ -148,24 +155,24 @@ Examples:
148
155
  puts v.to_bits # -> 00111111111110111100110011001100110011001100110011001100110011001100110011001101
149
156
  puts v.to_bits_text(16) # -> 3ffbcccccccccccccccd
150
157
 
151
- ##Special values:
158
+ ## Special values:
152
159
 
153
160
  Let's show the decimal expression of some interesting values using
154
161
  3 significative digits:
155
162
 
156
- fmt = Nio::Fmt.mode(:gen,3)
157
- puts IEEE_SINGLE.min_value.to_text(fmt) # -> 2E-45
158
- puts IEEE_SINGLE.min_normalized_value.to_text(fmt) # -> 1.18E-38
159
- puts IEEE_SINGLE.max_value.to_text(fmt) # -> 3.4E38
160
- puts IEEE_SINGLE.epsilon.to_text(fmt) # -> 1.19E-7
163
+ fmt = Numerals::Format[mode: :general, rounding: [precision: 3]]
164
+ puts IEEE_SINGLE.min_value.to_text(fmt) # -> 1e-45
165
+ puts IEEE_SINGLE.min_normalized_value.to_text(fmt) # -> 1.18e-38
166
+ puts IEEE_SINGLE.max_value.to_text(fmt) # -> 3.40e38
167
+ puts IEEE_SINGLE.epsilon.to_text(fmt) # -> 1.19e-7
161
168
 
162
- ##Convert between formats
169
+ ## Convert between formats
163
170
 
164
171
  v = IEEE_EXTENDED.from_text('1.1')
165
172
  v = v.convert_to(IEEE_SINGLE)
166
173
  v = v.convert_to(IEEE_DEC64)
167
174
 
168
- #Tools for the native floating point format
175
+ # Tools for the native floating point format
169
176
 
170
177
  This is an optional module to perform conversions and manipulate the native Float format.
171
178
 
@@ -182,7 +189,7 @@ This is an optional module to perform conversions and manipulate the native Floa
182
189
  puts float_significant_dec(Float::MAX_D) # -> 2.2250738585072009E-308
183
190
  puts float_significant_dec(Float::MIN_N) # -> 2.2250738585072014E-308
184
191
 
185
- Together with flt/sugar (from Flt) can be use to explore or work with Floats:
192
+ Together with flt/sugar (from Flt) can be use to explore or work with Floats:
186
193
 
187
194
  require 'flt/sugar'
188
195
 
@@ -196,7 +203,7 @@ Together with flt/sugar (from Flt) can be use to explore or work with Floats:
196
203
  puts float_significant_dec(Float::MIN_D.next_plus) # -> 1.0E-323
197
204
  puts float_significant_dec(Float::MAX_D.next_minus) # -> 2.2250738585072004E-308
198
205
 
199
- #Defining new formats
206
+ # Defining new formats
200
207
 
201
208
  New formats are defined using one of the classes defined in float-formats/classes.rb
202
209
  and passing the necessary parameters in a hash to the constructor.
@@ -218,17 +225,18 @@ the first bit, which will be hidden:
218
225
  Now we can encode values in this format, decode values, convet to other
219
226
  formats, query it's range, etc:
220
227
 
221
- puts MY_FP('0.1').to_bits_text(16) # -> 1ee66666
222
- puts MY_FP.max_value.to_text(Nio::Fmt.prec(3)) # -> 7.88E115
228
+ Numerals::Format[mode: :general, rounding: [precision: 3]]
229
+ puts MY_FP('0.1').to_bits_text(16) # -> 1EE66666
230
+ puts MY_FP.max_value.to_text # -> 7.8804e115
223
231
 
224
232
  You can look at float-formats/formats.rb to see how the built-in formats
225
233
  are defined.
226
234
 
227
- #License
235
+ # License
228
236
 
229
237
  This code is free to use under the terms of the MIT license.
230
238
 
231
- #References
239
+ # References
232
240
 
233
241
  [*Floating Point Representations.* C.B. Silio.](http://www.ece.umd.edu/class/enpm607.S2000/fltngpt.pdf)
234
242
  Description of formats used in UNIVAC 1100, CDC 6600/7600, PDP-11, IEEE754, IBM360/370
@@ -236,13 +244,13 @@ This code is free to use under the terms of the MIT license.
236
244
  [*Floating-Point Formats.* John Savard.](http://www.quadibloc.com/comp/cp0201.htm)
237
245
  Description of formats used in VAX and PDF-11
238
246
 
239
- ###IEEE754 binary formats
247
+ ### IEEE754 binary formats
240
248
 
241
249
  [*IEEE-754 References.* Christopher Vickery.](http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html)
242
250
 
243
251
  [*What Every Computer Scientist Should Know About Floating-Point Arithmetic.* David Goldberg.](http://docs.sun.com/source/806-3568/ncg_goldberg.html)
244
252
 
245
- ###DPD/IEEE754r decimal formats
253
+ ### DPD/IEEE754r decimal formats
246
254
 
247
255
  [*Decimal Arithmetic Encoding. Strawman 4d.* Mike Cowlishaw.](http://www2.hursley.ibm.com/decimal/decbits.pdf)
248
256
 
@@ -252,9 +260,9 @@ This code is free to use under the terms of the MIT license.
252
260
 
253
261
  [*DRAFT Standard for Floating-Point Arithmetic P754.* IEEE.](http://www.validlab.com/754R/drafts/archive/2007-10-05.pdf)
254
262
 
255
- ###HP 10 digits calculators
263
+ ### HP 10 digits calculators
256
264
 
257
- [*HP CPU and Programming*. David G.Hicks.](http://www.hpmuseum.org/techcpu.htm)
265
+ [*HP CPU and Programming*. David G.Hicks.](http://www.hpmuseum.org/techcpu.htm)
258
266
  Description of calculator CPUs from the Museum of HP Calculators.
259
267
 
260
268
  [*HP 35 ROM step by step.* Jacques Laporte](http://www.jacques-laporte.org/HP35%20ROM.htm)
@@ -263,7 +271,7 @@ This code is free to use under the terms of the MIT license.
263
271
  *Scientific Pocket Calculator Extends Range of Built-In Functions.* Eric A. Evett, Paul J. McClellan, Joseph P. Tanzini.
264
272
  Hewlett Packard Journal 1983-05 pgs 27-28. Describes format used in HP-15C.
265
273
 
266
- ###HP 12 digits calculators
274
+ ### HP 12 digits calculators
267
275
 
268
276
  *Software Internal Design Specification Volume I For the HP-71*. Hewlett Packard.
269
277
  Available from http://www.hpmuseum.org/cd/cddesc.htm
@@ -272,30 +280,30 @@ This code is free to use under the terms of the MIT license.
272
280
  Excerpted from *RPL: A Mathematical Control Language*. by W. C. Wickes.
273
281
  Available at http://www.hpcalc.org/details.php?id=1743
274
282
 
275
- ###HP-3000
283
+ ### HP-3000
276
284
 
277
285
  *A Pocket Calculator for Computer Science Professionals.* Eric A. Evett.
278
286
  Hewlett Packard Journal 1983-05 pg 37. Describes format used in HP-3000
279
287
 
280
- ###IBM
288
+ ### IBM
281
289
 
282
290
  [*IBM Floating Point Architecture.* Wikipedia.](http://en.wikipedia.org/wiki/IBM_Floating_Point_Architecture)
283
291
 
284
292
  [*The IBM eServer z990 floating-point unit*. G. Gerwig, H. Wetter, E. M. Schwarz, J. Haess, C. A. Krygowski, B. M. Fleischer and M. Kroener.](http://www.research.ibm.com/journal/rd/483/gerwig.html)
285
293
 
286
- ###MBF
294
+ ### MBF
287
295
 
288
296
  [*Microsoft Knowledbase Article 35826*](http://support.microsoft.com/?scid=kb%3Ben-us%3B35826&x=17&y=12)
289
297
 
290
298
  [*Microsoft MBF2IEEE library*](http://download.microsoft.com/download/vb30/install/1/win98/en-us/mbf2ieee.exe)
291
299
 
292
- ###Borland
300
+ ### Borland
293
301
 
294
302
  *An Overview of Floating Point Numbers.* Borland Developer Support Staff
295
303
 
296
304
  [*Pascal Floating-Point Page.* J R Stockton.](http://www.merlyn.demon.co.uk/pas-real.htm)
297
305
 
298
- ###8-bit micros
306
+ ### 8-bit micros
299
307
 
300
308
  This is the MS Basic format (BASIC09 for TRS-80 Color Computer, Dragon),
301
309
  also used in the Sinclair Spectrum.
@@ -306,26 +314,26 @@ also used in the Sinclair Spectrum.
306
314
  *Sinclair ZX Spectrum / Basic Programming.*. Steven Vickers.
307
315
  Chapter 24. http://www.worldofspectrum.org/ZXBasicManual/zxmanchap24.html
308
316
 
309
- ###Apple II
317
+ ### Apple II
310
318
 
311
319
  *Floating Point Routines for the 6502* Roy Rankin and Steve Wozniak.
312
320
  Dr. Dobb's Journal, August 1976, pages 17-19.
313
321
 
314
- ###C51
322
+ ### C51
315
323
 
316
324
  [*Advanced Development System* Franklin Software, Inc.](http://www.fsinc.com/reference/html/com9anm.htm)
317
325
 
318
- ###CDC6600
326
+ ### CDC6600
319
327
 
320
328
  *CONTROL DATA 6400/6500/6600 COMPUTER SYSTEMS Reference Manual*
321
329
  Manuals available at http://bitsavers.org/
322
330
 
323
- ###Cray
331
+ ### Cray
324
332
 
325
333
  *CRAY-1 COMPUTER SYSTEM Hardware Reference Manual*
326
334
  See pg 3-20 from 2240004 or pg 4-30 from HR-0808 or pg 4-21 from HP-0032.
327
335
  Manuals available at http://bitsavers.org/
328
336
 
329
- ###Wang 2200
337
+ ### Wang 2200
330
338
 
331
339
  [*Internal Floating Point Representation*](http://www.wang2200.org/fp_format.html)
data/Rakefile CHANGED
@@ -17,3 +17,5 @@ Rake::RDocTask.new do |rdoc|
17
17
  rdoc.rdoc_files.include('README*')
18
18
  rdoc.rdoc_files.include('lib/**/*.rb')
19
19
  end
20
+
21
+ task :default => :test
@@ -18,12 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'flt', ">= 1.4.7"
22
- spec.add_dependency 'numerals', ">= 0.3.0"
21
+ spec.add_dependency 'flt', "~> 1.5"
22
+ spec.add_dependency 'numerals', "~> 0.3"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.6"
25
- spec.add_development_dependency "rake"
26
- spec.add_development_dependency 'nio', ">= 0.2.4"
24
+ spec.add_development_dependency "bundler", ">= 1.9"
25
+ spec.add_development_dependency "rake", ">= 12.3.3"
27
26
 
28
27
  spec.required_ruby_version = '>= 1.9.3'
29
28
  end
@@ -477,6 +477,10 @@ class FormatBase
477
477
  # attr_accessor
478
478
  end
479
479
 
480
+ def self.normalized?
481
+ @normalized
482
+ end
483
+
480
484
  # compute a power of the radix (base)
481
485
  def self.radix_power(n)
482
486
  radix**n
@@ -579,7 +583,8 @@ class FormatBase
579
583
  precision: significand_digits,
580
584
  emin: radix_min_exp(:scientific_significand),
581
585
  emax: radix_max_exp(:scientific_significand),
582
- rounding:@round || :half_even
586
+ rounding: @round || :half_even,
587
+ normalized: @normalized
583
588
  )
584
589
  end
585
590
 
@@ -966,7 +971,7 @@ class FormatBase
966
971
 
967
972
  def read(numeral, exact_input, approximate_simplified)
968
973
  num = num_conversions.read(numeral, exact_input, approximate_simplified)
969
- num = num.normalize(@form_class.context) if exact_input
974
+ num = num.normalize(@form_class.context) if exact_input && @form_class.normalized?
970
975
  @form_class.num(num)
971
976
  end
972
977
 
@@ -95,7 +95,6 @@ IEEE.interchange_binary :IEEE_binary256_BE, 256, endianness: :big_endian
95
95
  IEEE.interchange_binary :IEEE_binary512_BE, 512, endianness: :big_endian
96
96
  IEEE.interchange_binary :IEEE_binary1024_BE, 1024, endianness: :big_endian
97
97
 
98
-
99
98
  # old names
100
99
  IEEE_binaryx = IEEE_binary80
101
100
  IEEE_HALF = IEEE_binary16
@@ -130,6 +129,47 @@ IEEE_DEC32 = IEEE_decimal32
130
129
  IEEE_DEC64 = IEEE_decimal64
131
130
  IEEE_DEC128 = IEEE_decimal128
132
131
 
132
+ # Brain Floating Point (bfloat16) - Google Brain 16-bit truncated version of IEEE_binary32
133
+ # Google Cloud TPUs, TensorFlow
134
+ # Intel AI processors: Nervana NNP-L1000, Xeon processors (AVX-512 BF16 extensions)
135
+ # Intel FPGAs
136
+ # ARMv8.6-A
137
+ # AMD ROCm libraries
138
+
139
+ IEEE.binary :BFLOAT16, significand: 7, exponent: 8, endianness: :little_endian
140
+ IEEE.binary :BFLOAT16_BE, significand: 7, exponent: 8, endianness: :big_endian
141
+
142
+ # MSFP8-11 Microsoft Floating Point (Project Brainwave)
143
+
144
+ IEEE.binary :MSFP8, significand: 2, exponent: 5, endianness: :little_endian
145
+ IEEE.binary :MSFP9, significand: 3, exponent: 5, endianness: :little_endian
146
+ IEEE.binary :MSFP10, significand: 4, exponent: 5, endianness: :little_endian
147
+ IEEE.binary :MSFP11, significand: 5, exponent: 5, endianness: :little_endian
148
+ IEEE.binary :MSFP8_BE, significand: 2, exponent: 5, endianness: :big_endian
149
+ IEEE.binary :MSFP9_BE, significand: 3, exponent: 5, endianness: :big_endian
150
+ IEEE.binary :MSFP10_BE, significand: 4, exponent: 5, endianness: :big_endian
151
+ IEEE.binary :MSFP11_BE, significand: 5, exponent: 5, endianness: :big_endian
152
+
153
+ # Khronos Vulkan unsigned minifloat formats
154
+
155
+ Flt.define BinaryFormat, :KHRONOS_VULKAN_UNSIGNED11,
156
+ fields:[:significand, 6, :exponent, 5], # :sign 1
157
+ bias: 2**(5-1)-1, bias_mode: :scientific_significand,
158
+ hidden_bit: true,
159
+ endianness: :little_endian,
160
+ round: :half_even,
161
+ gradual_underflow: true,
162
+ infinity: true, nan: true
163
+
164
+ Flt.define BinaryFormat, :KHRONOS_VULKAN_UNSIGNED10,
165
+ fields:[:significand, 5, :exponent, 5], # :sign 1
166
+ bias: 2**(5-1)-1, bias_mode: :scientific_significand,
167
+ hidden_bit: true,
168
+ endianness: :little_endian,
169
+ round: :half_even,
170
+ gradual_underflow: true,
171
+ infinity: true, nan: true
172
+
133
173
  # Excess 128 used by Microsoft Basic in 8-bit micros, Spectrum, ...
134
174
 
135
175
  Flt.define BinaryFormat, :XS128,
@@ -137,7 +177,6 @@ Flt.define BinaryFormat, :XS128,
137
177
  bias: 128, bias_mode: :fractional_significand,
138
178
  hidden_bit: true,
139
179
  endianness: :big_endian, round: :half_up,
140
- endianness: :big_endian,
141
180
  gradual_underflow: false, infinity: false, nan: false
142
181
 
143
182
  # HP-3000 excess 256 format, HP-Tandem...
@@ -181,6 +220,8 @@ Flt.define :MBF_DOUBLE, BinaryFormat,
181
220
  endianness: :little_endian,
182
221
  gradual_underflow: false, infinity: false, nan: false
183
222
 
223
+ MBF_EXTENDEND = XS128
224
+
184
225
  # DEC formats (VAX)
185
226
 
186
227
  Flt.define :VAX_F, BinaryFormat,
@@ -313,6 +354,10 @@ Flt.define :IBMX, HexadecimalFormat,
313
354
  bias: 8192, bias_mode: :fractional_significand,
314
355
  endianness: :big_endian
315
356
 
357
+ HFP_SINGLE = IBM32
358
+ HFP_DOUBLE = IBM64
359
+ HFP_EXTENDED = IBM128
360
+
316
361
  # Cray-1
317
362
  Flt.define :CRAY, BinaryFormat,
318
363
  fields:[:significand,48,:exponent,15,:sign,1],
@@ -1,5 +1,5 @@
1
1
  module Flt
2
2
  module Frmts
3
- VERSION = '0.3.0'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,85 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: float-formats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Goizueta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-05 00:00:00.000000000 Z
11
+ date: 2020-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flt
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.4.7
19
+ version: '1.5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.4.7
26
+ version: '1.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: numerals
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.3.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 0.3.0
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: '1.6'
48
- type: :development
33
+ version: '0.3'
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '1.6'
40
+ version: '0.3'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rake
42
+ name: bundler
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: '1.9'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - ">="
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: '1.9'
69
55
  - !ruby/object:Gem::Dependency
70
- name: nio
56
+ name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: 0.2.4
61
+ version: 12.3.3
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: 0.2.4
68
+ version: 12.3.3
83
69
  description: Floating-Point Formats
84
70
  email:
85
71
  - jgoizueta@gmail.com
@@ -130,8 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
116
  - !ruby/object:Gem::Version
131
117
  version: '0'
132
118
  requirements: []
133
- rubyforge_project:
134
- rubygems_version: 2.2.2
119
+ rubygems_version: 3.1.2
135
120
  signing_key:
136
121
  specification_version: 4
137
122
  summary: Floating-Point Formats