@@ -144,108 +144,203 @@ pub const BIT_PATTERNS_7: &[u8] = &[
144144] ;
145145
146146pub const BIT_PATTERNS_8 : & [ u8 ] = & [
147- 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x09 , 0x0a , 0x0b , 0x0c , 0x0d , 0x0e , 0x0f ,
148- 0xf0 , 0x80 , 0x3b , 0xff ,
147+ 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 , 0x8 , 0x9 , 0xa , 0xb , 0xc , 0xd , 0xe , 0xf , 0x10 , 0x11 ,
148+ 0x12 , 0x13 , 0x14 , 0x15 , 0x16 , 0x17 , 0x18 , 0x19 , 0x1a , 0x1b , 0x1c , 0x1d , 0x1e , 0x1f , 0x20 , 0x21 ,
149+ 0x22 , 0x23 , 0x24 , 0x25 , 0x26 , 0x27 , 0x28 , 0x29 , 0x2a , 0x2b , 0x2c , 0x2d , 0x2e , 0x2f , 0x30 , 0x31 ,
150+ 0x32 , 0x33 , 0x34 , 0x35 , 0x36 , 0x37 , 0x38 , 0x39 , 0x3a , 0x3b , 0x3c , 0x3d , 0x3e , 0x3f , 0x40 , 0x41 ,
151+ 0x42 , 0x43 , 0x44 , 0x45 , 0x46 , 0x47 , 0x48 , 0x49 , 0x4a , 0x4b , 0x4c , 0x4d , 0x4e , 0x4f , 0x50 , 0x51 ,
152+ 0x52 , 0x53 , 0x54 , 0x55 , 0x56 , 0x57 , 0x58 , 0x59 , 0x5a , 0x5b , 0x5c , 0x5d , 0x5e , 0x5f , 0x60 , 0x61 ,
153+ 0x62 , 0x63 , 0x64 , 0x65 , 0x66 , 0x67 , 0x68 , 0x69 , 0x6a , 0x6b , 0x6c , 0x6d , 0x6e , 0x6f , 0x70 , 0x71 ,
154+ 0x72 , 0x73 , 0x74 , 0x75 , 0x76 , 0x77 , 0x78 , 0x79 , 0x7a , 0x7b , 0x7c , 0x7d , 0x7e , 0x7f , 0x80 , 0x81 ,
155+ 0x82 , 0x83 , 0x84 , 0x85 , 0x86 , 0x87 , 0x88 , 0x89 , 0x8a , 0x8b , 0x8c , 0x8d , 0x8e , 0x8f , 0x90 , 0x91 ,
156+ 0x92 , 0x93 , 0x94 , 0x95 , 0x96 , 0x97 , 0x98 , 0x99 , 0x9a , 0x9b , 0x9c , 0x9d , 0x9e , 0x9f , 0xa0 , 0xa1 ,
157+ 0xa2 , 0xa3 , 0xa4 , 0xa5 , 0xa6 , 0xa7 , 0xa8 , 0xa9 , 0xaa , 0xab , 0xac , 0xad , 0xae , 0xaf , 0xb0 , 0xb1 ,
158+ 0xb2 , 0xb3 , 0xb4 , 0xb5 , 0xb6 , 0xb7 , 0xb8 , 0xb9 , 0xba , 0xbb , 0xbc , 0xbd , 0xbe , 0xbf , 0xc0 , 0xc1 ,
159+ 0xc2 , 0xc3 , 0xc4 , 0xc5 , 0xc6 , 0xc7 , 0xc8 , 0xc9 , 0xca , 0xcb , 0xcc , 0xcd , 0xce , 0xcf , 0xd0 , 0xd1 ,
160+ 0xd2 , 0xd3 , 0xd4 , 0xd5 , 0xd6 , 0xd7 , 0xd8 , 0xd9 , 0xda , 0xdb , 0xdc , 0xdd , 0xde , 0xdf , 0xe0 , 0xe1 ,
161+ 0xe2 , 0xe3 , 0xe4 , 0xe5 , 0xe6 , 0xe7 , 0xe8 , 0xe9 , 0xea , 0xeb , 0xec , 0xed , 0xee , 0xef , 0xf0 , 0xf1 ,
162+ 0xf2 , 0xf3 , 0xf4 , 0xf5 , 0xf6 , 0xf7 , 0xf8 , 0xf9 , 0xfa , 0xfb , 0xfc , 0xfd , 0xfe , 0xff ,
149163] ;
150164
165+ #[ rustfmt:: skip]
151166pub const BIT_PATTERNS_16 : & [ u16 ] = & [
152- 0x0000 , // 0.0
153- 0x0400 , // The smallest normal value.
154- 0x37ff , // The value just below 0.5.
155- 0x3800 , // 0.5
156- 0x3801 , // The value just above 0.5.
157- 0x3bff , // The value just below 1.0.
158- 0x3c00 , // 1.0
159- 0x3c01 , // The value just above 1.0.
160- 0x3e00 , // 1.5
161- 0x4900 , // 10
162- 0x7bff , // The largest finite value.
163- 0x7c00 , // Infinity.
164- // NaNs.
165- // - Quiet NaNs
166- 0x7f23 , 0x7e00 , // - Signalling NaNs
167- 0x7d23 , 0x7c01 , // Subnormals.
168- // - A recognisable bit pattern.
169- 0x0012 , // - The largest subnormal value.
170- 0x03ff , // - The smallest subnormal value.
171- 0x0001 , // The same values again, but negated.
167+ // Simple values:
168+ // 0.0
169+ 0x0000 ,
170+ // The smallest normal value
171+ 0x0400 ,
172+ // The value just below 0.5
173+ 0x37ff ,
174+ // 0.5
175+ 0x3800 ,
176+ // The value just above 0.5
177+ 0x3801 ,
178+ // The value just below 1.0
179+ 0x3bff ,
180+ // 1.0
181+ 0x3c00 ,
182+ // The value just above 1.0
183+ 0x3c01 ,
184+ // 1.5
185+ 0x3e00 ,
186+ // 10
187+ 0x4900 ,
188+ // The largest finite value
189+ 0x7bff ,
190+ // Infinity.
191+ 0x7c00 ,
192+
193+ // NaNs:
194+ // Quiet NaNs
195+ 0x7f23 ,
196+ 0x7e00 ,
197+ // Signalling NaNs
198+ 0x7d23 ,
199+ 0x7c01 ,
200+
201+ // Subnormals:
202+ // A recognisable bit pattern
203+ 0x0012 ,
204+ // The largest subnormal value
205+ 0x03ff ,
206+ // The smallest subnormal value
207+ 0x0001 ,
208+
209+ // Other values:
210+ // Above values, negated
172211 0x8000 , 0x8400 , 0xb7ff , 0xb800 , 0xb801 , 0xbbff , 0xbc00 , 0xbc01 , 0xbe00 , 0xc900 , 0xfbff , 0xfc00 ,
173212 0xff23 , 0xfe00 , 0xfd23 , 0xfc01 , 0x8012 , 0x83ff , 0x8001 ,
213+ // Random values
214+ 0xfc00 , 0xc000 , 0x5140 , 0x5800 , 0x63d2 , 0x5630 , 0x3560 , 0x9191 , 0x4178 , 0x6212 , 0x67d0 , 0x3312 ,
215+ 0x4cef , 0x4973 , 0x3ecc , 0x5166 , 0x4d80 , 0x6248 , 0x46fd , 0x39c4 , 0x39c5 , 0x4866 , 0x6050 , 0x498e ,
216+ 0x4a0f ,
217+ // Previous values in a different order
218+ 0x3555 , 0xfc00 , 0xc000 , 0x9191 , 0x5140 , 0x5800 , 0x8001 , 0x83ff , 0x63d2 , 0x5630 , 0x3560 , 0x4178 ,
219+ 0x7d23 , 0x7c01 , 0x0012 , 0xb800 , 0x03ff , 0x0001 , 0x7e00 , 0x7f23 , 0x8000 , 0x8400 , 0xb7ff , 0xb801 ,
220+ 0x3312 , 0x4cef , 0x4973 , 0x39c4 , 0x3ecc , 0x5166 , 0x67d0 , 0x6212 , 0x4d80 , 0x6248 , 0x46fd , 0x39c5 ,
221+ 0xbc01 , 0xbe00 , 0xc900 , 0xfc01 , 0xfbff , 0xfc00 , 0xbc00 , 0xbbff , 0xff23 , 0xfe00 , 0xfd23 , 0x8012 ,
222+ 0x37ff , 0x3800 , 0x3801 , 0x7bff , 0x3bff , 0x3c00 , 0x0400 , 0x0000 , 0x3c01 , 0x3e00 , 0x4900 , 0x7c00 ,
223+ 0x498e , 0x4a0f , 0x6050 , 0x4866 ,
224+
225+ // Specific values:
226+ // As close to 1/3 as possible.
227+ 0x3555 ,
174228] ;
175229
230+ #[ rustfmt:: skip]
176231pub const BIT_PATTERNS_32 : & [ u32 ] = & [
177- // Simple values.
178- 0x00000000 , // 0.0
179- 0x00800000 , // The smallest normal value.
180- 0x3effffff , // The value just below 0.5.
181- 0x3f000000 , // 0.5
182- 0x3f000001 , // The value just above 0.5.
183- 0x3f7fffff , // The value just below 1.0.
184- 0x3f800000 , // 1.0
185- 0x3f800001 , // The value just above 1.0.
186- 0x3fc00000 , // 1.5
187- 0x41200000 , // 10
188- 0x7f8fffff , // The largest finite value.
189- 0x7f800000 , // Infinity.
190- // NaNs.
191- // - Quiet NaNs
192- 0x7fd23456 , 0x7fc00000 , // - Signalling NaNs
193- 0x7f923456 , 0x7f800001 , // Subnormals.
194- // - A recognisable bit pattern.
195- 0x00123456 , // - The largest subnormal value.
196- 0x007fffff , // - The smallest subnormal value.
197- 0x00000001 , // The same values again, but negated.
232+ // Simple values:
233+ // 0.0
234+ 0x00000000 ,
235+ // The smallest normal value
236+ 0x00800000 ,
237+ // The value just below 0.5
238+ 0x3effffff ,
239+ // 0.5
240+ 0x3f000000 ,
241+ // The value just above 0.5
242+ 0x3f000001 ,
243+ // The value just below 1.0
244+ 0x3f7fffff ,
245+ // 1.0
246+ 0x3f800000 ,
247+ // The value just above 1.0
248+ 0x3f800001 ,
249+ // 1.5
250+ 0x3fc00000 ,
251+ // 10
252+ 0x41200000 ,
253+ // The largest finite value
254+ 0x7f8fffff ,
255+ // Infinity
256+ 0x7f800000 ,
257+
258+ // NaNs:
259+ // Quiet NaNs
260+ 0x7fd23456 ,
261+ 0x7fc00000 ,
262+ // Signalling NaNs
263+ 0x7f923456 ,
264+ 0x7f800001 ,
265+
266+ // Subnormals:
267+ // A recognisable bit pattern
268+ 0x00123456 ,
269+ // The largest subnormal value
270+ 0x007fffff ,
271+ // The smallest subnormal value
272+ 0x00000001 ,
273+
274+ // Other values:
275+ // Above values, negated
198276 0x80000000 , 0x80800000 , 0xbeffffff , 0xbf000000 , 0xbf000001 , 0xbf7fffff , 0xbf800000 , 0xbf800001 ,
199277 0xbfc00000 , 0xc1200000 , 0xff8fffff , 0xff800000 , 0xffd23456 , 0xffc00000 , 0xff923456 , 0xff800001 ,
200- 0x80123456 , 0x807fffff , 0x80000001 ,
278+ 0x80123456 , 0x807fffff , 0x80000001 , 0x80123456 , 0x807fffff , 0x80000001 ,
279+ // Random values
280+ 0x4205cccd , 0x4229178D , 0x42C6A0C5 , 0x3B3302F7 , 0x3F9DF45E , 0x41DAA3D7 , 0x47C3501D , 0xC3889333 ,
281+ 0xC2C675C3 , 0xC69C449A , 0xC341FD71 , 0xC502DFD7 , 0xBBB43958 , 0x3EE24DD3 , 0x42B1C28F , 0x42F06666 ,
282+ 0x45D379C3 , 0x44637148 , 0x3CBBECAB , 0x4113EDFA , 0x444B22F2 , 0x1FD93A96 , 0x9921055F , 0xFF626925 ,
283+
284+ // Specific values:
285+ // Approximately Pi
286+ 0x40490fdb ,
287+ // Approximately 1/3
288+ 0x3eaaaaab ,
201289] ;
202290
291+ #[ rustfmt:: skip]
203292pub const BIT_PATTERNS_64 : & [ u64 ] = & [
204- // Simple values.
205- 0x0000000000000000 , // 0.0
206- 0x0010000000000000 , // The smallest normal value.
207- 0x3fdfffffffffffff , // The value just below 0.5.
208- 0x3fe0000000000000 , // 0.5
209- 0x3fe0000000000001 , // The value just above 0.5.
210- 0x3fefffffffffffff , // The value just below 1.0.
211- 0x3ff0000000000000 , // 1.0
212- 0x3ff0000000000001 , // The value just above 1.0.
213- 0x3ff8000000000000 , // 1.5
214- 0x4024000000000000 , // 10
215- 0x7fefffffffffffff , // The largest finite value.
216- 0x7ff0000000000000 , // Infinity.
217- // NaNs.
218- // - Quiet NaNs
219- 0x7ff923456789abcd ,
220- 0x7ff8000000000000 ,
221- // - Signalling NaNs
222- 0x7ff123456789abcd ,
293+ // Simple values:
294+ // 0.0
295+ 0x0000000000000000 ,
296+ // The smallest normal value
297+ 0x0010000000000000 ,
298+ // The value just below 0.5
299+ 0x3fdfffffffffffff ,
300+ // 0.5
301+ 0x3fe0000000000000 ,
302+ // The value just above 0.5
303+ 0x3fe0000000000001 ,
304+ // The value just below 1.0
305+ 0x3fefffffffffffff ,
306+ // 1.0
307+ 0x3ff0000000000000 ,
308+ // The value just above 1.0
309+ 0x3ff0000000000001 ,
310+ // 1.5
311+ 0x3ff8000000000000 ,
312+ // 10
313+ 0x4024000000000000 ,
314+ // The largest finite value
315+ 0x7fefffffffffffff ,
316+ // Infinity
223317 0x7ff0000000000000 ,
224- // Subnormals.
225- // - A recognisable bit pattern.
318+
319+ // NaNs:
320+ // Quiet NaNs
321+ 0x7ff923456789abcd , 0x7ff8000000000000 ,
322+ // Signalling NaNs
323+ 0x7ff123456789abcd , 0x7ff0000000000000 ,
324+
325+ // Subnormals:
326+ // A recognisable bit pattern
226327 0x000123456789abcd ,
227- // - The largest subnormal value.
328+ // The largest subnormal value
228329 0x000fffffffffffff ,
229- // - The smallest subnormal value.
330+ // The smallest subnormal value
230331 0x0000000000000001 ,
231- // The same values again, but negated.
232- 0x8000000000000000 ,
233- 0x8010000000000000 ,
234- 0xbfdfffffffffffff ,
235- 0xbfe0000000000000 ,
236- 0xbfe0000000000001 ,
237- 0xbfefffffffffffff ,
238- 0xbff0000000000000 ,
239- 0xbff0000000000001 ,
240- 0xbff8000000000000 ,
241- 0xc024000000000000 ,
242- 0xffefffffffffffff ,
243- 0xfff0000000000000 ,
244- 0xfff923456789abcd ,
245- 0xfff8000000000000 ,
246- 0xfff123456789abcd ,
247- 0xfff0000000000000 ,
248- 0x800123456789abcd ,
249- 0x800fffffffffffff ,
250- 0x8000000000000001 ,
332+
333+ // Other values:
334+ // Above values, negated
335+ 0x8000000000000000 , 0x8010000000000000 , 0xbfdfffffffffffff , 0xbfe0000000000000 ,
336+ 0xbfe0000000000001 , 0xbfefffffffffffff , 0xbff0000000000000 , 0xbff0000000000001 ,
337+ 0xbff8000000000000 , 0xc024000000000000 , 0xffefffffffffffff , 0xfff0000000000000 ,
338+ 0xfff923456789abcd , 0xfff8000000000000 , 0xfff123456789abcd , 0xfff0000000000000 ,
339+ 0x800123456789abcd , 0x800fffffffffffff , 0x8000000000000001 ,
340+
341+ // Specific values:
342+ // Pi
343+ 0x400921FB54442D18 ,
344+ // Approximately 1/3
345+ 0x3fd5555555555555 ,
251346] ;
0 commit comments