1use hexf::hexf32 as h;
28
29use super::utils::snanf16;
30
31const T1: [f32; 1024] = [
34 h!("0x1.193ea8p-1"),
35 h!("0x1.199404p-1"),
36 h!("0x1.19e96ep-1"),
37 h!("0x1.1a3ee8p-1"),
38 h!("0x1.1a947p-1"),
39 h!("0x1.1aea04p-1"),
40 h!("0x1.1b3fa8p-1"),
41 h!("0x1.1b955cp-1"),
42 h!("0x1.1beb1cp-1"),
43 h!("0x1.1c40ecp-1"),
44 h!("0x1.1c96cap-1"),
45 h!("0x1.1cecb6p-1"),
46 h!("0x1.1d42b2p-1"),
47 h!("0x1.1d98bap-1"),
48 h!("0x1.1deed4p-1"),
49 h!("0x1.1e44fap-1"),
50 h!("0x1.1e9b3p-1"),
51 h!("0x1.1ef174p-1"),
52 h!("0x1.1f47c8p-1"),
53 h!("0x1.1f9e2ap-1"),
54 h!("0x1.1ff49ap-1"),
55 h!("0x1.204b1ap-1"),
56 h!("0x1.20a1aap-1"),
57 h!("0x1.20f846p-1"),
58 h!("0x1.214ef4p-1"),
59 h!("0x1.21a5bp-1"),
60 h!("0x1.21fc7ap-1"),
61 h!("0x1.225354p-1"),
62 h!("0x1.22aa3ep-1"),
63 h!("0x1.230136p-1"),
64 h!("0x1.23583cp-1"),
65 h!("0x1.23af54p-1"),
66 h!("0x1.24067ap-1"),
67 h!("0x1.245daep-1"),
68 h!("0x1.24b4f2p-1"),
69 h!("0x1.250c46p-1"),
70 h!("0x1.2563aap-1"),
71 h!("0x1.25bb1cp-1"),
72 h!("0x1.2612ap-1"),
73 h!("0x1.266a32p-1"),
74 h!("0x1.26c1d2p-1"),
75 h!("0x1.271984p-1"),
76 h!("0x1.277144p-1"),
77 h!("0x1.27c914p-1"),
78 h!("0x1.2820f4p-1"),
79 h!("0x1.2878e4p-1"),
80 h!("0x1.28d0e4p-1"),
81 h!("0x1.2928f2p-1"),
82 h!("0x1.298112p-1"),
83 h!("0x1.29d94p-1"),
84 h!("0x1.2a318p-1"),
85 h!("0x1.2a89cep-1"),
86 h!("0x1.2ae22ep-1"),
87 h!("0x1.2b3a9cp-1"),
88 h!("0x1.2b931cp-1"),
89 h!("0x1.2bebaap-1"),
90 h!("0x1.2c444ap-1"),
91 h!("0x1.2c9cfap-1"),
92 h!("0x1.2cf5bap-1"),
93 h!("0x1.2d4e8ap-1"),
94 h!("0x1.2da76ap-1"),
95 h!("0x1.2e005ap-1"),
96 h!("0x1.2e595cp-1"),
97 h!("0x1.2eb26cp-1"),
98 h!("0x1.2f0b8ep-1"),
99 h!("0x1.2f64c2p-1"),
100 h!("0x1.2fbe04p-1"),
101 h!("0x1.301758p-1"),
102 h!("0x1.3070bcp-1"),
103 h!("0x1.30ca3p-1"),
104 h!("0x1.3123b6p-1"),
105 h!("0x1.317d4cp-1"),
106 h!("0x1.31d6f4p-1"),
107 h!("0x1.3230aap-1"),
108 h!("0x1.328a74p-1"),
109 h!("0x1.32e44ep-1"),
110 h!("0x1.333e38p-1"),
111 h!("0x1.339834p-1"),
112 h!("0x1.33f24p-1"),
113 h!("0x1.344c5ep-1"),
114 h!("0x1.34a68cp-1"),
115 h!("0x1.3500ccp-1"),
116 h!("0x1.355b1cp-1"),
117 h!("0x1.35b57ep-1"),
118 h!("0x1.360ff2p-1"),
119 h!("0x1.366a76p-1"),
120 h!("0x1.36c50cp-1"),
121 h!("0x1.371fb4p-1"),
122 h!("0x1.377a6ep-1"),
123 h!("0x1.37d538p-1"),
124 h!("0x1.383014p-1"),
125 h!("0x1.388bp-1"),
126 h!("0x1.38e6p-1"),
127 h!("0x1.39411p-1"),
128 h!("0x1.399c32p-1"),
129 h!("0x1.39f766p-1"),
130 h!("0x1.3a52acp-1"),
131 h!("0x1.3aae04p-1"),
132 h!("0x1.3b096ep-1"),
133 h!("0x1.3b64eap-1"),
134 h!("0x1.3bc076p-1"),
135 h!("0x1.3c1c16p-1"),
136 h!("0x1.3c77c8p-1"),
137 h!("0x1.3cd38ap-1"),
138 h!("0x1.3d2f6p-1"),
139 h!("0x1.3d8b48p-1"),
140 h!("0x1.3de742p-1"),
141 h!("0x1.3e434ep-1"),
142 h!("0x1.3e9f6cp-1"),
143 h!("0x1.3efb9ep-1"),
144 h!("0x1.3f57ep-1"),
145 h!("0x1.3fb436p-1"),
146 h!("0x1.40109ep-1"),
147 h!("0x1.406d18p-1"),
148 h!("0x1.40c9a6p-1"),
149 h!("0x1.412646p-1"),
150 h!("0x1.4182f8p-1"),
151 h!("0x1.41dfbcp-1"),
152 h!("0x1.423c94p-1"),
153 h!("0x1.42998p-1"),
154 h!("0x1.42f67cp-1"),
155 h!("0x1.43538ep-1"),
156 h!("0x1.43b0bp-1"),
157 h!("0x1.440de6p-1"),
158 h!("0x1.446b3p-1"),
159 h!("0x1.44c88cp-1"),
160 h!("0x1.4525fcp-1"),
161 h!("0x1.45837ep-1"),
162 h!("0x1.45e114p-1"),
163 h!("0x1.463ebep-1"),
164 h!("0x1.469c7ap-1"),
165 h!("0x1.46fa4ap-1"),
166 h!("0x1.47582cp-1"),
167 h!("0x1.47b624p-1"),
168 h!("0x1.48142ep-1"),
169 h!("0x1.48724ap-1"),
170 h!("0x1.48d07cp-1"),
171 h!("0x1.492ec2p-1"),
172 h!("0x1.498d1ap-1"),
173 h!("0x1.49eb86p-1"),
174 h!("0x1.4a4a06p-1"),
175 h!("0x1.4aa89ap-1"),
176 h!("0x1.4b0742p-1"),
177 h!("0x1.4b65fep-1"),
178 h!("0x1.4bc4cep-1"),
179 h!("0x1.4c23b2p-1"),
180 h!("0x1.4c82aap-1"),
181 h!("0x1.4ce1b6p-1"),
182 h!("0x1.4d40d6p-1"),
183 h!("0x1.4da00ap-1"),
184 h!("0x1.4dff52p-1"),
185 h!("0x1.4e5ebp-1"),
186 h!("0x1.4ebe22p-1"),
187 h!("0x1.4f1da8p-1"),
188 h!("0x1.4f7d42p-1"),
189 h!("0x1.4fdcf2p-1"),
190 h!("0x1.503cb4p-1"),
191 h!("0x1.509c8ep-1"),
192 h!("0x1.50fc7ap-1"),
193 h!("0x1.515c7cp-1"),
194 h!("0x1.51bc92p-1"),
195 h!("0x1.521cbep-1"),
196 h!("0x1.527cfep-1"),
197 h!("0x1.52dd54p-1"),
198 h!("0x1.533dbep-1"),
199 h!("0x1.539e3ep-1"),
200 h!("0x1.53fed2p-1"),
201 h!("0x1.545f7cp-1"),
202 h!("0x1.54c03cp-1"),
203 h!("0x1.55211p-1"),
204 h!("0x1.5581fap-1"),
205 h!("0x1.55e2f8p-1"),
206 h!("0x1.56440ep-1"),
207 h!("0x1.56a538p-1"),
208 h!("0x1.570678p-1"),
209 h!("0x1.5767ccp-1"),
210 h!("0x1.57c938p-1"),
211 h!("0x1.582ab8p-1"),
212 h!("0x1.588c4ep-1"),
213 h!("0x1.58edfap-1"),
214 h!("0x1.594fbep-1"),
215 h!("0x1.59b196p-1"),
216 h!("0x1.5a1384p-1"),
217 h!("0x1.5a7588p-1"),
218 h!("0x1.5ad7a2p-1"),
219 h!("0x1.5b39d4p-1"),
220 h!("0x1.5b9c1ap-1"),
221 h!("0x1.5bfe78p-1"),
222 h!("0x1.5c60ecp-1"),
223 h!("0x1.5cc376p-1"),
224 h!("0x1.5d2616p-1"),
225 h!("0x1.5d88ccp-1"),
226 h!("0x1.5deb9ap-1"),
227 h!("0x1.5e4e7ep-1"),
228 h!("0x1.5eb17ap-1"),
229 h!("0x1.5f148cp-1"),
230 h!("0x1.5f77b4p-1"),
231 h!("0x1.5fdaf4p-1"),
232 h!("0x1.603e4ap-1"),
233 h!("0x1.60a1b8p-1"),
234 h!("0x1.61053cp-1"),
235 h!("0x1.6168d8p-1"),
236 h!("0x1.61cc8cp-1"),
237 h!("0x1.623056p-1"),
238 h!("0x1.629438p-1"),
239 h!("0x1.62f83p-1"),
240 h!("0x1.635c4p-1"),
241 h!("0x1.63c068p-1"),
242 h!("0x1.6424a8p-1"),
243 h!("0x1.6489p-1"),
244 h!("0x1.64ed6ep-1"),
245 h!("0x1.6551f4p-1"),
246 h!("0x1.65b694p-1"),
247 h!("0x1.661b4ap-1"),
248 h!("0x1.668018p-1"),
249 h!("0x1.66e4fep-1"),
250 h!("0x1.6749fcp-1"),
251 h!("0x1.67af14p-1"),
252 h!("0x1.681442p-1"),
253 h!("0x1.687988p-1"),
254 h!("0x1.68dee8p-1"),
255 h!("0x1.69446p-1"),
256 h!("0x1.69a9fp-1"),
257 h!("0x1.6a0f98p-1"),
258 h!("0x1.6a755ap-1"),
259 h!("0x1.6adb34p-1"),
260 h!("0x1.6b4128p-1"),
261 h!("0x1.6ba732p-1"),
262 h!("0x1.6c0d58p-1"),
263 h!("0x1.6c7394p-1"),
264 h!("0x1.6cd9eap-1"),
265 h!("0x1.6d405ap-1"),
266 h!("0x1.6da6e4p-1"),
267 h!("0x1.6e0d84p-1"),
268 h!("0x1.6e744p-1"),
269 h!("0x1.6edb14p-1"),
270 h!("0x1.6f4202p-1"),
271 h!("0x1.6fa90ap-1"),
272 h!("0x1.70102ap-1"),
273 h!("0x1.707766p-1"),
274 h!("0x1.70debap-1"),
275 h!("0x1.714628p-1"),
276 h!("0x1.71adbp-1"),
277 h!("0x1.72155p-1"),
278 h!("0x1.727d0cp-1"),
279 h!("0x1.72e4e2p-1"),
280 h!("0x1.734cd2p-1"),
281 h!("0x1.73b4dcp-1"),
282 h!("0x1.741dp-1"),
283 h!("0x1.74854p-1"),
284 h!("0x1.74ed98p-1"),
285 h!("0x1.75560cp-1"),
286 h!("0x1.75be9ap-1"),
287 h!("0x1.762742p-1"),
288 h!("0x1.769006p-1"),
289 h!("0x1.76f8e4p-1"),
290 h!("0x1.7761dep-1"),
291 h!("0x1.77caf2p-1"),
292 h!("0x1.78342p-1"),
293 h!("0x1.789d6ap-1"),
294 h!("0x1.7906dp-1"),
295 h!("0x1.79705p-1"),
296 h!("0x1.79d9ecp-1"),
297 h!("0x1.7a43a4p-1"),
298 h!("0x1.7aad76p-1"),
299 h!("0x1.7b1764p-1"),
300 h!("0x1.7b816ep-1"),
301 h!("0x1.7beb94p-1"),
302 h!("0x1.7c55d6p-1"),
303 h!("0x1.7cc032p-1"),
304 h!("0x1.7d2aacp-1"),
305 h!("0x1.7d954p-1"),
306 h!("0x1.7dfff2p-1"),
307 h!("0x1.7e6acp-1"),
308 h!("0x1.7ed5a8p-1"),
309 h!("0x1.7f40aep-1"),
310 h!("0x1.7fabdp-1"),
311 h!("0x1.80171p-1"),
312 h!("0x1.80826cp-1"),
313 h!("0x1.80ede4p-1"),
314 h!("0x1.815978p-1"),
315 h!("0x1.81c52ap-1"),
316 h!("0x1.8230f8p-1"),
317 h!("0x1.829ce4p-1"),
318 h!("0x1.8308ecp-1"),
319 h!("0x1.837512p-1"),
320 h!("0x1.83e154p-1"),
321 h!("0x1.844db4p-1"),
322 h!("0x1.84ba32p-1"),
323 h!("0x1.8526cep-1"),
324 h!("0x1.859386p-1"),
325 h!("0x1.86005cp-1"),
326 h!("0x1.866d5p-1"),
327 h!("0x1.86da62p-1"),
328 h!("0x1.874792p-1"),
329 h!("0x1.87b4ep-1"),
330 h!("0x1.88224cp-1"),
331 h!("0x1.888fd6p-1"),
332 h!("0x1.88fd7ep-1"),
333 h!("0x1.896b46p-1"),
334 h!("0x1.89d92ap-1"),
335 h!("0x1.8a472ep-1"),
336 h!("0x1.8ab55p-1"),
337 h!("0x1.8b2392p-1"),
338 h!("0x1.8b91f2p-1"),
339 h!("0x1.8c007p-1"),
340 h!("0x1.8c6f0ep-1"),
341 h!("0x1.8cddcap-1"),
342 h!("0x1.8d4ca6p-1"),
343 h!("0x1.8dbba2p-1"),
344 h!("0x1.8e2abcp-1"),
345 h!("0x1.8e99f6p-1"),
346 h!("0x1.8f095p-1"),
347 h!("0x1.8f78c8p-1"),
348 h!("0x1.8fe862p-1"),
349 h!("0x1.90581ap-1"),
350 h!("0x1.90c7f2p-1"),
351 h!("0x1.9137ecp-1"),
352 h!("0x1.91a804p-1"),
353 h!("0x1.92183cp-1"),
354 h!("0x1.928896p-1"),
355 h!("0x1.92f91p-1"),
356 h!("0x1.9369aap-1"),
357 h!("0x1.93da64p-1"),
358 h!("0x1.944b4p-1"),
359 h!("0x1.94bc3cp-1"),
360 h!("0x1.952d58p-1"),
361 h!("0x1.959e96p-1"),
362 h!("0x1.960ff6p-1"),
363 h!("0x1.968176p-1"),
364 h!("0x1.96f318p-1"),
365 h!("0x1.9764dap-1"),
366 h!("0x1.97d6cp-1"),
367 h!("0x1.9848c6p-1"),
368 h!("0x1.98baeep-1"),
369 h!("0x1.992d36p-1"),
370 h!("0x1.999fa2p-1"),
371 h!("0x1.9a123p-1"),
372 h!("0x1.9a84dep-1"),
373 h!("0x1.9af7bp-1"),
374 h!("0x1.9b6aa4p-1"),
375 h!("0x1.9bddbcp-1"),
376 h!("0x1.9c50f4p-1"),
377 h!("0x1.9cc45p-1"),
378 h!("0x1.9d37cep-1"),
379 h!("0x1.9dab7p-1"),
380 h!("0x1.9e1f34p-1"),
381 h!("0x1.9e931ap-1"),
382 h!("0x1.9f0724p-1"),
383 h!("0x1.9f7b52p-1"),
384 h!("0x1.9fefa4p-1"),
385 h!("0x1.a06418p-1"),
386 h!("0x1.a0d8bp-1"),
387 h!("0x1.a14d6cp-1"),
388 h!("0x1.a1c24cp-1"),
389 h!("0x1.a2375p-1"),
390 h!("0x1.a2ac78p-1"),
391 h!("0x1.a321c2p-1"),
392 h!("0x1.a39734p-1"),
393 h!("0x1.a40cc8p-1"),
394 h!("0x1.a4828p-1"),
395 h!("0x1.a4f85ep-1"),
396 h!("0x1.a56e6p-1"),
397 h!("0x1.a5e488p-1"),
398 h!("0x1.a65ad4p-1"),
399 h!("0x1.a6d146p-1"),
400 h!("0x1.a747dcp-1"),
401 h!("0x1.a7be98p-1"),
402 h!("0x1.a8357ap-1"),
403 h!("0x1.a8ac8p-1"),
404 h!("0x1.a923aep-1"),
405 h!("0x1.a99bp-1"),
406 h!("0x1.aa1278p-1"),
407 h!("0x1.aa8a16p-1"),
408 h!("0x1.ab01dap-1"),
409 h!("0x1.ab79c6p-1"),
410 h!("0x1.abf1d8p-1"),
411 h!("0x1.ac6a0ep-1"),
412 h!("0x1.ace26ep-1"),
413 h!("0x1.ad5af2p-1"),
414 h!("0x1.add39ep-1"),
415 h!("0x1.ae4c72p-1"),
416 h!("0x1.aec56cp-1"),
417 h!("0x1.af3e8ep-1"),
418 h!("0x1.afb7d8p-1"),
419 h!("0x1.b03148p-1"),
420 h!("0x1.b0aaep-1"),
421 h!("0x1.b124ap-1"),
422 h!("0x1.b19e8ap-1"),
423 h!("0x1.b2189ap-1"),
424 h!("0x1.b292d2p-1"),
425 h!("0x1.b30d32p-1"),
426 h!("0x1.b387bcp-1"),
427 h!("0x1.b4026ep-1"),
428 h!("0x1.b47d48p-1"),
429 h!("0x1.b4f84cp-1"),
430 h!("0x1.b57378p-1"),
431 h!("0x1.b5eecep-1"),
432 h!("0x1.b66a4cp-1"),
433 h!("0x1.b6e5f6p-1"),
434 h!("0x1.b761c6p-1"),
435 h!("0x1.b7ddc2p-1"),
436 h!("0x1.b859e8p-1"),
437 h!("0x1.b8d638p-1"),
438 h!("0x1.b952bp-1"),
439 h!("0x1.b9cf54p-1"),
440 h!("0x1.ba4c22p-1"),
441 h!("0x1.bac91cp-1"),
442 h!("0x1.bb463ep-1"),
443 h!("0x1.bbc38ep-1"),
444 h!("0x1.bc4106p-1"),
445 h!("0x1.bcbeaap-1"),
446 h!("0x1.bd3c7ap-1"),
447 h!("0x1.bdba76p-1"),
448 h!("0x1.be389cp-1"),
449 h!("0x1.beb6eep-1"),
450 h!("0x1.bf356cp-1"),
451 h!("0x1.bfb416p-1"),
452 h!("0x1.c032ecp-1"),
453 h!("0x1.c0b1eep-1"),
454 h!("0x1.c1311ep-1"),
455 h!("0x1.c1b07ap-1"),
456 h!("0x1.c23002p-1"),
457 h!("0x1.c2afb8p-1"),
458 h!("0x1.c32f9ap-1"),
459 h!("0x1.c3afaap-1"),
460 h!("0x1.c42fe6p-1"),
461 h!("0x1.c4b052p-1"),
462 h!("0x1.c530eap-1"),
463 h!("0x1.c5b1bp-1"),
464 h!("0x1.c632a4p-1"),
465 h!("0x1.c6b3c6p-1"),
466 h!("0x1.c73516p-1"),
467 h!("0x1.c7b696p-1"),
468 h!("0x1.c83844p-1"),
469 h!("0x1.c8ba2p-1"),
470 h!("0x1.c93c2cp-1"),
471 h!("0x1.c9be66p-1"),
472 h!("0x1.ca40d2p-1"),
473 h!("0x1.cac36ap-1"),
474 h!("0x1.cb4634p-1"),
475 h!("0x1.cbc92ep-1"),
476 h!("0x1.cc4c56p-1"),
477 h!("0x1.cccfbp-1"),
478 h!("0x1.cd533ap-1"),
479 h!("0x1.cdd6f4p-1"),
480 h!("0x1.ce5adep-1"),
481 h!("0x1.cedefap-1"),
482 h!("0x1.cf6348p-1"),
483 h!("0x1.cfe7c6p-1"),
484 h!("0x1.d06c74p-1"),
485 h!("0x1.d0f156p-1"),
486 h!("0x1.d17668p-1"),
487 h!("0x1.d1fbacp-1"),
488 h!("0x1.d28124p-1"),
489 h!("0x1.d306ccp-1"),
490 h!("0x1.d38ca8p-1"),
491 h!("0x1.d412b6p-1"),
492 h!("0x1.d498f8p-1"),
493 h!("0x1.d51f6cp-1"),
494 h!("0x1.d5a612p-1"),
495 h!("0x1.d62ceep-1"),
496 h!("0x1.d6b3fcp-1"),
497 h!("0x1.d73b3ep-1"),
498 h!("0x1.d7c2b4p-1"),
499 h!("0x1.d84a5ep-1"),
500 h!("0x1.d8d23cp-1"),
501 h!("0x1.d95a4ep-1"),
502 h!("0x1.d9e296p-1"),
503 h!("0x1.da6b14p-1"),
504 h!("0x1.daf3c6p-1"),
505 h!("0x1.db7cacp-1"),
506 h!("0x1.dc05c8p-1"),
507 h!("0x1.dc8f1cp-1"),
508 h!("0x1.dd18a4p-1"),
509 h!("0x1.dda262p-1"),
510 h!("0x1.de2c56p-1"),
511 h!("0x1.deb682p-1"),
512 h!("0x1.df40e4p-1"),
513 h!("0x1.dfcb7ep-1"),
514 h!("0x1.e0564ep-1"),
515 h!("0x1.e0e154p-1"),
516 h!("0x1.e16c94p-1"),
517 h!("0x1.e1f80ap-1"),
518 h!("0x1.e283bap-1"),
519 h!("0x1.e30fap-1"),
520 h!("0x1.e39bcp-1"),
521 h!("0x1.e42818p-1"),
522 h!("0x1.e4b4aap-1"),
523 h!("0x1.e54174p-1"),
524 h!("0x1.e5ce76p-1"),
525 h!("0x1.e65bb4p-1"),
526 h!("0x1.e6e92ap-1"),
527 h!("0x1.e776dap-1"),
528 h!("0x1.e804c6p-1"),
529 h!("0x1.e892eap-1"),
530 h!("0x1.e9214ap-1"),
531 h!("0x1.e9afe4p-1"),
532 h!("0x1.ea3ebap-1"),
533 h!("0x1.eacdccp-1"),
534 h!("0x1.eb5d18p-1"),
535 h!("0x1.ebecap-1"),
536 h!("0x1.ec7c64p-1"),
537 h!("0x1.ed0c66p-1"),
538 h!("0x1.ed9ca2p-1"),
539 h!("0x1.ee2d1cp-1"),
540 h!("0x1.eebdd4p-1"),
541 h!("0x1.ef4ec8p-1"),
542 h!("0x1.efdffap-1"),
543 h!("0x1.f07168p-1"),
544 h!("0x1.f10316p-1"),
545 h!("0x1.f19502p-1"),
546 h!("0x1.f2272ap-1"),
547 h!("0x1.f2b994p-1"),
548 h!("0x1.f34c3ap-1"),
549 h!("0x1.f3df22p-1"),
550 h!("0x1.f47248p-1"),
551 h!("0x1.f505aep-1"),
552 h!("0x1.f59954p-1"),
553 h!("0x1.f62d3ap-1"),
554 h!("0x1.f6c16p-1"),
555 h!("0x1.f755c8p-1"),
556 h!("0x1.f7ea7p-1"),
557 h!("0x1.f87f58p-1"),
558 h!("0x1.f91484p-1"),
559 h!("0x1.f9a9fp-1"),
560 h!("0x1.fa3fap-1"),
561 h!("0x1.fad592p-1"),
562 h!("0x1.fb6bc6p-1"),
563 h!("0x1.fc023cp-1"),
564 h!("0x1.fc98f6p-1"),
565 h!("0x1.fd2ff4p-1"),
566 h!("0x1.fdc734p-1"),
567 h!("0x1.fe5ebap-1"),
568 h!("0x1.fef684p-1"),
569 h!("0x1.ff8e92p-1"),
570 h!("0x1.001372p+0"),
571 h!("0x1.005fbep+0"),
572 h!("0x1.00ac2ep+0"),
573 h!("0x1.00f8cp+0"),
574 h!("0x1.014574p+0"),
575 h!("0x1.01924cp+0"),
576 h!("0x1.01df46p+0"),
577 h!("0x1.022c66p+0"),
578 h!("0x1.0279a8p+0"),
579 h!("0x1.02c70ep+0"),
580 h!("0x1.031498p+0"),
581 h!("0x1.036246p+0"),
582 h!("0x1.03b018p+0"),
583 h!("0x1.03fe0ep+0"),
584 h!("0x1.044c2ap+0"),
585 h!("0x1.049a6ap+0"),
586 h!("0x1.04e8cep+0"),
587 h!("0x1.053758p+0"),
588 h!("0x1.058608p+0"),
589 h!("0x1.05d4dcp+0"),
590 h!("0x1.0623d6p+0"),
591 h!("0x1.0672f4p+0"),
592 h!("0x1.06c23ap+0"),
593 h!("0x1.0711a4p+0"),
594 h!("0x1.076136p+0"),
595 h!("0x1.07b0eep+0"),
596 h!("0x1.0800ccp+0"),
597 h!("0x1.0850d2p+0"),
598 h!("0x1.08a0fcp+0"),
599 h!("0x1.08f15p+0"),
600 h!("0x1.0941cap+0"),
601 h!("0x1.09926ap+0"),
602 h!("0x1.09e334p+0"),
603 h!("0x1.0a3424p+0"),
604 h!("0x1.0a853cp+0"),
605 h!("0x1.0ad67ep+0"),
606 h!("0x1.0b27e6p+0"),
607 h!("0x1.0b7976p+0"),
608 h!("0x1.0bcb3p+0"),
609 h!("0x1.0c1d14p+0"),
610 h!("0x1.0c6f1ep+0"),
611 h!("0x1.0cc154p+0"),
612 h!("0x1.0d13b2p+0"),
613 h!("0x1.0d663ap+0"),
614 h!("0x1.0db8eap+0"),
615 h!("0x1.0e0bc6p+0"),
616 h!("0x1.0e5eccp+0"),
617 h!("0x1.0eb1fap+0"),
618 h!("0x1.0f0554p+0"),
619 h!("0x1.0f58dap+0"),
620 h!("0x1.0fac8ap+0"),
621 h!("0x1.100064p+0"),
622 h!("0x1.10546ap+0"),
623 h!("0x1.10a89cp+0"),
624 h!("0x1.10fcfap+0"),
625 h!("0x1.115182p+0"),
626 h!("0x1.11a638p+0"),
627 h!("0x1.11fb1ap+0"),
628 h!("0x1.125028p+0"),
629 h!("0x1.12a564p+0"),
630 h!("0x1.12faccp+0"),
631 h!("0x1.13506p+0"),
632 h!("0x1.13a624p+0"),
633 h!("0x1.13fc14p+0"),
634 h!("0x1.145232p+0"),
635 h!("0x1.14a87ep+0"),
636 h!("0x1.14fef8p+0"),
637 h!("0x1.1555ap+0"),
638 h!("0x1.15ac78p+0"),
639 h!("0x1.16037ep+0"),
640 h!("0x1.165ab4p+0"),
641 h!("0x1.16b218p+0"),
642 h!("0x1.1709acp+0"),
643 h!("0x1.176172p+0"),
644 h!("0x1.17b966p+0"),
645 h!("0x1.18118ap+0"),
646 h!("0x1.1869ep+0"),
647 h!("0x1.18c266p+0"),
648 h!("0x1.191b1ep+0"),
649 h!("0x1.197406p+0"),
650 h!("0x1.19cd2p+0"),
651 h!("0x1.1a266cp+0"),
652 h!("0x1.1a7feap+0"),
653 h!("0x1.1ad99ap+0"),
654 h!("0x1.1b337cp+0"),
655 h!("0x1.1b8d92p+0"),
656 h!("0x1.1be7dap+0"),
657 h!("0x1.1c4256p+0"),
658 h!("0x1.1c9d06p+0"),
659 h!("0x1.1cf7e8p+0"),
660 h!("0x1.1d53p+0"),
661 h!("0x1.1dae4cp+0"),
662 h!("0x1.1e09ccp+0"),
663 h!("0x1.1e658p+0"),
664 h!("0x1.1ec16ap+0"),
665 h!("0x1.1f1d8ap+0"),
666 h!("0x1.1f79ep+0"),
667 h!("0x1.1fd66ap+0"),
668 h!("0x1.20332cp+0"),
669 h!("0x1.209024p+0"),
670 h!("0x1.20ed54p+0"),
671 h!("0x1.214abap+0"),
672 h!("0x1.21a856p+0"),
673 h!("0x1.22062cp+0"),
674 h!("0x1.226438p+0"),
675 h!("0x1.22c27ep+0"),
676 h!("0x1.2320fcp+0"),
677 h!("0x1.237fb4p+0"),
678 h!("0x1.23dea4p+0"),
679 h!("0x1.243dccp+0"),
680 h!("0x1.249d3p+0"),
681 h!("0x1.24fccep+0"),
682 h!("0x1.255ca6p+0"),
683 h!("0x1.25bcb8p+0"),
684 h!("0x1.261d06p+0"),
685 h!("0x1.267d8ep+0"),
686 h!("0x1.26de52p+0"),
687 h!("0x1.273f54p+0"),
688 h!("0x1.27a09p+0"),
689 h!("0x1.28020ap+0"),
690 h!("0x1.2863cp+0"),
691 h!("0x1.28c5b4p+0"),
692 h!("0x1.2927e6p+0"),
693 h!("0x1.298a56p+0"),
694 h!("0x1.29ed04p+0"),
695 h!("0x1.2a4ff2p+0"),
696 h!("0x1.2ab31ep+0"),
697 h!("0x1.2b1688p+0"),
698 h!("0x1.2b7a34p+0"),
699 h!("0x1.2bde1ep+0"),
700 h!("0x1.2c424ap+0"),
701 h!("0x1.2ca6b6p+0"),
702 h!("0x1.2d0b64p+0"),
703 h!("0x1.2d7054p+0"),
704 h!("0x1.2dd584p+0"),
705 h!("0x1.2e3af8p+0"),
706 h!("0x1.2ea0aep+0"),
707 h!("0x1.2f06a8p+0"),
708 h!("0x1.2f6ce6p+0"),
709 h!("0x1.2fd366p+0"),
710 h!("0x1.303a2cp+0"),
711 h!("0x1.30a134p+0"),
712 h!("0x1.310884p+0"),
713 h!("0x1.317018p+0"),
714 h!("0x1.31d7f2p+0"),
715 h!("0x1.324012p+0"),
716 h!("0x1.32a87ap+0"),
717 h!("0x1.331128p+0"),
718 h!("0x1.337a1ep+0"),
719 h!("0x1.33e35cp+0"),
720 h!("0x1.344ce2p+0"),
721 h!("0x1.34b6b2p+0"),
722 h!("0x1.3520cap+0"),
723 h!("0x1.358b2cp+0"),
724 h!("0x1.35f5d8p+0"),
725 h!("0x1.3660cep+0"),
726 h!("0x1.36cc1p+0"),
727 h!("0x1.37379ep+0"),
728 h!("0x1.37a378p+0"),
729 h!("0x1.380f9cp+0"),
730 h!("0x1.387c1p+0"),
731 h!("0x1.38e8dp+0"),
732 h!("0x1.3955dep+0"),
733 h!("0x1.39c33ap+0"),
734 h!("0x1.3a30e4p+0"),
735 h!("0x1.3a9eep+0"),
736 h!("0x1.3b0d2ap+0"),
737 h!("0x1.3b7bc4p+0"),
738 h!("0x1.3beabp+0"),
739 h!("0x1.3c59ecp+0"),
740 h!("0x1.3cc97ap+0"),
741 h!("0x1.3d395cp+0"),
742 h!("0x1.3da99p+0"),
743 h!("0x1.3e1a16p+0"),
744 h!("0x1.3e8af2p+0"),
745 h!("0x1.3efc22p+0"),
746 h!("0x1.3f6da6p+0"),
747 h!("0x1.3fdf8p+0"),
748 h!("0x1.4051b2p+0"),
749 h!("0x1.40c438p+0"),
750 h!("0x1.413716p+0"),
751 h!("0x1.41aa4cp+0"),
752 h!("0x1.421ddcp+0"),
753 h!("0x1.4291c4p+0"),
754 h!("0x1.430604p+0"),
755 h!("0x1.437aap+0"),
756 h!("0x1.43ef96p+0"),
757 h!("0x1.4464e8p+0"),
758 h!("0x1.44da96p+0"),
759 h!("0x1.4550ap+0"),
760 h!("0x1.45c708p+0"),
761 h!("0x1.463dcep+0"),
762 h!("0x1.46b4fp+0"),
763 h!("0x1.472c74p+0"),
764 h!("0x1.47a458p+0"),
765 h!("0x1.481c9ap+0"),
766 h!("0x1.48953ep+0"),
767 h!("0x1.490e46p+0"),
768 h!("0x1.4987aep+0"),
769 h!("0x1.4a017ap+0"),
770 h!("0x1.4a7baap+0"),
771 h!("0x1.4af63ep+0"),
772 h!("0x1.4b7138p+0"),
773 h!("0x1.4bec98p+0"),
774 h!("0x1.4c685ep+0"),
775 h!("0x1.4ce48cp+0"),
776 h!("0x1.4d6122p+0"),
777 h!("0x1.4dde2p+0"),
778 h!("0x1.4e5b88p+0"),
779 h!("0x1.4ed95cp+0"),
780 h!("0x1.4f579ap+0"),
781 h!("0x1.4fd644p+0"),
782 h!("0x1.50555ap+0"),
783 h!("0x1.50d4ep+0"),
784 h!("0x1.5154d2p+0"),
785 h!("0x1.51d534p+0"),
786 h!("0x1.525606p+0"),
787 h!("0x1.52d748p+0"),
788 h!("0x1.5358fcp+0"),
789 h!("0x1.53db24p+0"),
790 h!("0x1.545dbep+0"),
791 h!("0x1.54e0ccp+0"),
792 h!("0x1.55645p+0"),
793 h!("0x1.55e84ap+0"),
794 h!("0x1.566cbap+0"),
795 h!("0x1.56f1a2p+0"),
796 h!("0x1.577702p+0"),
797 h!("0x1.57fcdep+0"),
798 h!("0x1.588332p+0"),
799 h!("0x1.590a02p+0"),
800 h!("0x1.59915p+0"),
801 h!("0x1.5a191ap+0"),
802 h!("0x1.5aa164p+0"),
803 h!("0x1.5b2a2cp+0"),
804 h!("0x1.5bb374p+0"),
805 h!("0x1.5c3d4p+0"),
806 h!("0x1.5cc78cp+0"),
807 h!("0x1.5d525cp+0"),
808 h!("0x1.5dddb2p+0"),
809 h!("0x1.5e698cp+0"),
810 h!("0x1.5ef5eep+0"),
811 h!("0x1.5f82d6p+0"),
812 h!("0x1.601048p+0"),
813 h!("0x1.609e44p+0"),
814 h!("0x1.612cccp+0"),
815 h!("0x1.61bbep+0"),
816 h!("0x1.624b8p+0"),
817 h!("0x1.62dbbp+0"),
818 h!("0x1.636c7p+0"),
819 h!("0x1.63fdcp+0"),
820 h!("0x1.648fa4p+0"),
821 h!("0x1.65221ap+0"),
822 h!("0x1.65b526p+0"),
823 h!("0x1.6648c6p+0"),
824 h!("0x1.66ddp+0"),
825 h!("0x1.6771d2p+0"),
826 h!("0x1.68073cp+0"),
827 h!("0x1.689d44p+0"),
828 h!("0x1.6933e6p+0"),
829 h!("0x1.69cb28p+0"),
830 h!("0x1.6a6308p+0"),
831 h!("0x1.6afb8ap+0"),
832 h!("0x1.6b94aep+0"),
833 h!("0x1.6c2e74p+0"),
834 h!("0x1.6cc8e2p+0"),
835 h!("0x1.6d63f4p+0"),
836 h!("0x1.6dffbp+0"),
837 h!("0x1.6e9c14p+0"),
838 h!("0x1.6f3926p+0"),
839 h!("0x1.6fd6e2p+0"),
840 h!("0x1.70754ep+0"),
841 h!("0x1.711468p+0"),
842 h!("0x1.71b436p+0"),
843 h!("0x1.7254b6p+0"),
844 h!("0x1.72f5eap+0"),
845 h!("0x1.7397d6p+0"),
846 h!("0x1.743a7ap+0"),
847 h!("0x1.74ddd8p+0"),
848 h!("0x1.7581f2p+0"),
849 h!("0x1.7626cap+0"),
850 h!("0x1.76cc6p+0"),
851 h!("0x1.7772b8p+0"),
852 h!("0x1.7819d4p+0"),
853 h!("0x1.78c1b6p+0"),
854 h!("0x1.796a5cp+0"),
855 h!("0x1.7a13cep+0"),
856 h!("0x1.7abe0ap+0"),
857 h!("0x1.7b6912p+0"),
858 h!("0x1.7c14eap+0"),
859 h!("0x1.7cc194p+0"),
860 h!("0x1.7d6f1p+0"),
861 h!("0x1.7e1d62p+0"),
862 h!("0x1.7ecc8cp+0"),
863 h!("0x1.7f7c8ep+0"),
864 h!("0x1.802d6ep+0"),
865 h!("0x1.80df2cp+0"),
866 h!("0x1.8191cap+0"),
867 h!("0x1.82454ap+0"),
868 h!("0x1.82f9b2p+0"),
869 h!("0x1.83afp+0"),
870 h!("0x1.846538p+0"),
871 h!("0x1.851c5ep+0"),
872 h!("0x1.85d474p+0"),
873 h!("0x1.868d7ap+0"),
874 h!("0x1.874776p+0"),
875 h!("0x1.880268p+0"),
876 h!("0x1.88be54p+0"),
877 h!("0x1.897b3ep+0"),
878 h!("0x1.8a3928p+0"),
879 h!("0x1.8af812p+0"),
880 h!("0x1.8bb802p+0"),
881 h!("0x1.8c78fcp+0"),
882 h!("0x1.8d3bp+0"),
883 h!("0x1.8dfe12p+0"),
884 h!("0x1.8ec234p+0"),
885 h!("0x1.8f876cp+0"),
886 h!("0x1.904dbcp+0"),
887 h!("0x1.911528p+0"),
888 h!("0x1.91ddbp+0"),
889 h!("0x1.92a75cp+0"),
890 h!("0x1.93722cp+0"),
891 h!("0x1.943e24p+0"),
892 h!("0x1.950b4ap+0"),
893 h!("0x1.95d99ep+0"),
894 h!("0x1.96a926p+0"),
895 h!("0x1.9779e6p+0"),
896 h!("0x1.984be2p+0"),
897 h!("0x1.991f1cp+0"),
898 h!("0x1.99f398p+0"),
899 h!("0x1.9ac95cp+0"),
900 h!("0x1.9ba06cp+0"),
901 h!("0x1.9c78ccp+0"),
902 h!("0x1.9d527ep+0"),
903 h!("0x1.9e2d8ap+0"),
904 h!("0x1.9f09fp+0"),
905 h!("0x1.9fe7bap+0"),
906 h!("0x1.a0c6e8p+0"),
907 h!("0x1.a1a782p+0"),
908 h!("0x1.a2898ap+0"),
909 h!("0x1.a36d08p+0"),
910 h!("0x1.a451fep+0"),
911 h!("0x1.a53872p+0"),
912 h!("0x1.a6206ap+0"),
913 h!("0x1.a709ecp+0"),
914 h!("0x1.a7f4fcp+0"),
915 h!("0x1.a8e1ap+0"),
916 h!("0x1.a9cfdcp+0"),
917 h!("0x1.aabfbap+0"),
918 h!("0x1.abb13cp+0"),
919 h!("0x1.aca46ap+0"),
920 h!("0x1.ad994ap+0"),
921 h!("0x1.ae8fep+0"),
922 h!("0x1.af8836p+0"),
923 h!("0x1.b08252p+0"),
924 h!("0x1.b17e38p+0"),
925 h!("0x1.b27bf2p+0"),
926 h!("0x1.b37b84p+0"),
927 h!("0x1.b47cf8p+0"),
928 h!("0x1.b58054p+0"),
929 h!("0x1.b685ap+0"),
930 h!("0x1.b78ce4p+0"),
931 h!("0x1.b89628p+0"),
932 h!("0x1.b9a172p+0"),
933 h!("0x1.baaeccp+0"),
934 h!("0x1.bbbe4p+0"),
935 h!("0x1.bccfd4p+0"),
936 h!("0x1.bde392p+0"),
937 h!("0x1.bef982p+0"),
938 h!("0x1.c011bp+0"),
939 h!("0x1.c12c24p+0"),
940 h!("0x1.c248e8p+0"),
941 h!("0x1.c36804p+0"),
942 h!("0x1.c48986p+0"),
943 h!("0x1.c5ad76p+0"),
944 h!("0x1.c6d3e2p+0"),
945 h!("0x1.c7fcdp+0"),
946 h!("0x1.c9285p+0"),
947 h!("0x1.ca566cp+0"),
948 h!("0x1.cb873p+0"),
949 h!("0x1.ccbaaap+0"),
950 h!("0x1.cdf0e4p+0"),
951 h!("0x1.cf29eep+0"),
952 h!("0x1.d065d2p+0"),
953 h!("0x1.d1a4a2p+0"),
954 h!("0x1.d2e66ap+0"),
955 h!("0x1.d42b3ap+0"),
956 h!("0x1.d5731ep+0"),
957 h!("0x1.d6be2ap+0"),
958 h!("0x1.d80c6ap+0"),
959 h!("0x1.d95df2p+0"),
960 h!("0x1.dab2dp+0"),
961 h!("0x1.dc0b18p+0"),
962 h!("0x1.dd66dcp+0"),
963 h!("0x1.dec62cp+0"),
964 h!("0x1.e0291ep+0"),
965 h!("0x1.e18fc4p+0"),
966 h!("0x1.e2fa34p+0"),
967 h!("0x1.e46882p+0"),
968 h!("0x1.e5dac6p+0"),
969 h!("0x1.e75114p+0"),
970 h!("0x1.e8cb84p+0"),
971 h!("0x1.ea4a3p+0"),
972 h!("0x1.ebcd3p+0"),
973 h!("0x1.ed549cp+0"),
974 h!("0x1.eee092p+0"),
975 h!("0x1.f0712cp+0"),
976 h!("0x1.f20688p+0"),
977 h!("0x1.f3a0c2p+0"),
978 h!("0x1.f53ffap+0"),
979 h!("0x1.f6e452p+0"),
980 h!("0x1.f88de8p+0"),
981 h!("0x1.fa3ce2p+0"),
982 h!("0x1.fbf162p+0"),
983 h!("0x1.fdab8cp+0"),
984 h!("0x1.ff6b8cp+0"),
985 h!("0x1.0098c2p+1"),
986 h!("0x1.017ed2p+1"),
987 h!("0x1.02680cp+1"),
988 h!("0x1.035484p+1"),
989 h!("0x1.044454p+1"),
990 h!("0x1.053796p+1"),
991 h!("0x1.062e62p+1"),
992 h!("0x1.0728d4p+1"),
993 h!("0x1.082708p+1"),
994 h!("0x1.09291ep+1"),
995 h!("0x1.0a2f34p+1"),
996 h!("0x1.0b396ap+1"),
997 h!("0x1.0c47e4p+1"),
998 h!("0x1.0d5ac4p+1"),
999 h!("0x1.0e723p+1"),
1000 h!("0x1.0f8e54p+1"),
1001 h!("0x1.10af54p+1"),
1002 h!("0x1.11d56p+1"),
1003 h!("0x1.1300a4p+1"),
1004 h!("0x1.143154p+1"),
1005 h!("0x1.1567a2p+1"),
1006 h!("0x1.16a3c6p+1"),
1007 h!("0x1.17e5f8p+1"),
1008 h!("0x1.192e78p+1"),
1009 h!("0x1.1a7d84p+1"),
1010 h!("0x1.1bd364p+1"),
1011 h!("0x1.1d306p+1"),
1012 h!("0x1.1e94c8p+1"),
1013 h!("0x1.2000eep+1"),
1014 h!("0x1.21752ap+1"),
1015 h!("0x1.22f1dep+1"),
1016 h!("0x1.24777p+1"),
1017 h!("0x1.26064ap+1"),
1018 h!("0x1.279ee4p+1"),
1019 h!("0x1.2941bep+1"),
1020 h!("0x1.2aef5cp+1"),
1021 h!("0x1.2ca854p+1"),
1022 h!("0x1.2e6d46p+1"),
1023 h!("0x1.303edcp+1"),
1024 h!("0x1.321dd2p+1"),
1025 h!("0x1.340af8p+1"),
1026 h!("0x1.36072ap+1"),
1027 h!("0x1.38135cp+1"),
1028 h!("0x1.3a30ap+1"),
1029 h!("0x1.3c6018p+1"),
1030 h!("0x1.3ea30ep+1"),
1031 h!("0x1.40faeep+1"),
1032 h!("0x1.43694cp+1"),
1033 h!("0x1.45efeap+1"),
1034 h!("0x1.4890c4p+1"),
1035 h!("0x1.4b4e16p+1"),
1036 h!("0x1.4e2a68p+1"),
1037 h!("0x1.51289cp+1"),
1038 h!("0x1.544c02p+1"),
1039 h!("0x1.57986ap+1"),
1040 h!("0x1.5b1246p+1"),
1041 h!("0x1.5ebec6p+1"),
1042 h!("0x1.62a41p+1"),
1043 h!("0x1.66c97ap+1"),
1044 h!("0x1.6b37dep+1"),
1045 h!("0x1.6ffa12p+1"),
1046 h!("0x1.751d8p+1"),
1047 h!("0x1.7ab31cp+1"),
1048 h!("0x1.80d0aep+1"),
1049 h!("0x1.8792eap+1"),
1050 h!("0x1.8f20aep+1"),
1051 h!("0x1.97b078p+1"),
1052 h!("0x1.a19214p+1"),
1053 h!("0x1.ad413cp+1"),
1054 h!("0x1.bb8d3ap+1"),
1055 h!("0x1.cdfa9cp+1"),
1056 h!("0x1.e7f1c2p+1"),
1057 h!("0x1.0a2924p+2"),
1058];
1059
1060pub fn cr_atanhf16(x: f16) -> f16 {
1061 let v = f32::from(x);
1062 let u = v.to_bits();
1063 let au = u & 0x7fffffff;
1064
1065 if au >= 0x3f800000 {
1066 if au == 0x3f800000 {
1068 return if au == u {
1070 f16::INFINITY
1071 } else {
1072 f16::NEG_INFINITY
1073 };
1074 }
1075 if au > 0x7f800000 {
1076 return x + x;
1078 }
1079 return snanf16();
1080 }
1081
1082 let t = v;
1085
1086 let neg = (u >> 31) != 0;
1088 const NEG: [f32; 2] = [1.0, -1.0];
1089 let s = NEG[usize::from(neg)];
1090
1091 if au >= 0x3f000000 {
1092 let i = (au - 0x3f000000) >> 13;
1094 return (s * T1[i as usize]) as f16;
1095 }
1096
1097 if au <= 0x3ce88000 {
1101 if au == 0 {
1103 return x; }
1105 return f32::mul_add(t, h!("0x1p-12"), t) as f16;
1106 }
1107
1108 if au == 0x3da78000 {
1110 return (s * h!("0x1.4fbffep-4")) as f16; }
1112
1113 const P: [f32; 6] = [
1117 h!("0x1.000004p+0"),
1118 h!("0x1.55558ep-2"),
1119 h!("0x1.997ceep-3"),
1120 h!("0x1.2785fcp-3"),
1121 h!("0x1.871ffp-4"),
1122 h!("0x1.43b244p-3"),
1123 ];
1124 let tt = t * t;
1125 let c9 = f32::mul_add(P[5], tt, P[4]); let mut c5 = f32::mul_add(P[3], tt, P[2]); let mut c1 = f32::mul_add(P[1], tt, P[0]); c5 = f32::mul_add(c9, tt * tt, c5);
1129 c1 = f32::mul_add(c5, tt * tt, c1);
1130 (t * c1) as f16
1131}
1132
1133#[cfg(test)]
1134mod tests {
1135 #[test]
1136 fn exhaustive() {
1137 for b in 0..=u16::MAX {
1138 let x = f16::from_bits(b);
1139 let y1 = super::cr_atanhf16(x);
1140 let y2 = core_math::atanhf16(x);
1141 assert_eq!(
1142 y1.to_bits(),
1143 y2.to_bits(),
1144 "atanhf16({x} @ {b:#04x}) = ({y1} @ {y1b:#04x}) vs ({y2} @ {y2b:#04x})",
1145 y1b = y1.to_bits(),
1146 y2b = y2.to_bits()
1147 );
1148 }
1149 }
1150
1151 #[test]
1152 fn edge() {
1153 assert_eq!(
1154 super::cr_atanhf16(-f16::NAN).to_bits(),
1155 (-f16::NAN).to_bits()
1156 );
1157 assert_eq!(
1158 super::cr_atanhf16(-f16::INFINITY).to_bits(),
1159 super::snanf16().to_bits() );
1161 assert_eq!(super::cr_atanhf16(-0.0).to_bits(), (-0.0_f16).to_bits());
1162 assert_eq!(super::cr_atanhf16(0.0).to_bits(), (0.0_f16).to_bits());
1163 assert_eq!(
1164 super::cr_atanhf16(f16::INFINITY).to_bits(),
1165 super::snanf16().to_bits() );
1167 assert_eq!(super::cr_atanhf16(f16::NAN).to_bits(), (f16::NAN).to_bits());
1168 }
1169}