@@ -240,83 +240,83 @@ int test() {
240240
241241#if PICO_DOUBLE_HAS_DOUBLE_TO_FIX64_M_CONVERSIONS
242242 printf ("double2fix64\n" );
243- test_checki64 (double2fix64 (3.5 , 8 ), 0x380 , "double2fix641 " );
244- test_checki64 (double2fix64 (-3.5 , 8 ), -0x380 , "double2fix642 " );
245- test_checki64 (double2fix64 (32768.0 , 16 ), 32768ll << 16 , "double2fix643 " );
246- test_checki64 (double2fix64 (65536.0 , 16 ), 65536ll << 16 , "double2fix644 " );
247- test_checki64 (double2fix64 (2147483648.0 , 16 ), 2147483648ll << 16 , "double2fix644b " );
248- test_checki64 (double2fix64 (65536.0 * 65536.0 * 32768.0 , 16 ), INT64_MAX , "double2fix644c " );
249- test_checki64 (double2fix64 (INFINITY , 16 ), INT64_MAX , "double2fix645 " );
250- test_checki64 (double2fix64 (- INFINITY , 16 ), INT64_MIN , "double2fix645b " );
251- test_checki64 (double2fix64 (INFINITY , -16 ), INT64_MAX , "double2fix645c " );
252- test_checki64 (double2fix64 (- INFINITY , -16 ), INT64_MIN , "double2fix645d " );
253- test_checki64 (double2fix64 (INFINITY , 0 ), INT64_MAX , "double2fix645e " );
254- test_checki64 (double2fix64 (- INFINITY , 0 ), INT64_MIN , "double2fix645f " );
255- test_checki64 (double2fix64 (3.24999 , 2 ), 12 , "double2fix646 " );
256- test_checki64 (double2fix64 (3.25 , 2 ), 13 , "double2fix647 " );
257- test_checki64 (double2fix64 (-3.24999 , 2 ), -13 , "double2fix648 " );
258- test_checki64 (double2fix64 (-3.25 , 2 ), -13 , "double2fix649 " );
259- test_checki64 (double2fix64 (-3.0 , -1 ), -2 , "double2fix6410 " ); // not very useful
260- test_checki64 (double2fix64 (2147483648.0 * 2147483648.0 , 16 ), INT64_MAX , "double2fix6411 " );
261- test_checki64 (double2fix64 (0.0 , 16 ), 0 , "double2fix6412 " );
262- test_checki64 (double2fix64 (0.0 , -16 ), 0 , "double2fix6412b " );
263- test_checki64 (double2fix64 (-0.0 , 16 ), 0 , "double2fix6413 " );
264- test_checki64 (double2fix64 (-0.0 , -16 ), 0 , "double2fix6413b " );
265- test_checki64 (double2fix64 (-3.25 , 40 ), -13ll * (1ll << 38 ), "double2fix6414 " );
243+ test_checki64 (double2fix64 (3.5 , 8 ), 0x380 , "double2fix64_1 " );
244+ test_checki64 (double2fix64 (-3.5 , 8 ), -0x380 , "double2fix64_2 " );
245+ test_checki64 (double2fix64 (32768.0 , 16 ), 32768ll << 16 , "double2fix64_3 " );
246+ test_checki64 (double2fix64 (65536.0 , 16 ), 65536ll << 16 , "double2fix64_4 " );
247+ test_checki64 (double2fix64 (2147483648.0 , 16 ), 2147483648ll << 16 , "double2fix64_4b " );
248+ test_checki64 (double2fix64 (65536.0 * 65536.0 * 32768.0 , 16 ), INT64_MAX , "double2fix64_4c " );
249+ test_checki64 (double2fix64 (INFINITY , 16 ), INT64_MAX , "double2fix64_5 " );
250+ test_checki64 (double2fix64 (- INFINITY , 16 ), INT64_MIN , "double2fix64_5b " );
251+ test_checki64 (double2fix64 (INFINITY , -16 ), INT64_MAX , "double2fix64_5c " );
252+ test_checki64 (double2fix64 (- INFINITY , -16 ), INT64_MIN , "double2fix64_5d " );
253+ test_checki64 (double2fix64 (INFINITY , 0 ), INT64_MAX , "double2fix64_5e " );
254+ test_checki64 (double2fix64 (- INFINITY , 0 ), INT64_MIN , "double2fix64_5f " );
255+ test_checki64 (double2fix64 (3.24999 , 2 ), 12 , "double2fix64_6 " );
256+ test_checki64 (double2fix64 (3.25 , 2 ), 13 , "double2fix64_7 " );
257+ test_checki64 (double2fix64 (-3.24999 , 2 ), -13 , "double2fix64_8 " );
258+ test_checki64 (double2fix64 (-3.25 , 2 ), -13 , "double2fix64_9 " );
259+ test_checki64 (double2fix64 (-3.0 , -1 ), -2 , "double2fix64_10 " ); // not very useful
260+ test_checki64 (double2fix64 (2147483648.0 * 2147483648.0 , 16 ), INT64_MAX , "double2fix64_11 " );
261+ test_checki64 (double2fix64 (0.0 , 16 ), 0 , "double2fix64_12 " );
262+ test_checki64 (double2fix64 (0.0 , -16 ), 0 , "double2fix64_12b " );
263+ test_checki64 (double2fix64 (-0.0 , 16 ), 0 , "double2fix64_13 " );
264+ test_checki64 (double2fix64 (-0.0 , -16 ), 0 , "double2fix64_13b " );
265+ test_checki64 (double2fix64 (-3.25 , 40 ), -13ll * (1ll << 38 ), "double2fix64_14 " );
266266 u64d .u = 0xc00a000000000001 ;
267- test_checki64 (double2fix64 (u64d .d , 40 ), -13ll * (1ll << 38 ) - 1ll , "double2fix6414b " );
267+ test_checki64 (double2fix64 (u64d .d , 40 ), -13ll * (1ll << 38 ) - 1ll , "double2fix64_14b " );
268268
269269 u64d .u = 0xc00a000080000001 ;
270- test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 2ll , "double2fix6414c " );
270+ test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 2ll , "double2fix64_14c " );
271271 u64d .u = 0xc00a000080000000 ;
272- test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 1ll , "double2fix6414d " );
272+ test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 1ll , "double2fix64_14d " );
273273 u64d .u = 0xc00a000000000001 ;
274- test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 1ll , "double2fix6414e " );
274+ test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ) - 1ll , "double2fix64_14e " );
275275 u64d .u = 0xc00a000000000000 ;
276- test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ), "double2fix6414f " );
276+ test_checki64 (double2fix64 (u64d .d , 20 ), -13ll * (1ll << 18 ), "double2fix64_14f " );
277277
278278 u64d .u = 0xc00a000080000001 ;
279- test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix6414g " );
279+ test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix64_14g " );
280280 u64d .u = 0xc00a000080000000 ;
281- test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix6414h " );
281+ test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix64_14h " );
282282 u64d .u = 0xc00a000000000001 ;
283- test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix6414i " );
283+ test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ) - 1ll , "double2fix64_14i " );
284284 u64d .u = 0xc00a000000000000 ;
285- test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ), "double2fix6414j " );
285+ test_checki64 (double2fix64 (u64d .d , 19 ), -13ll * (1ll << 17 ), "double2fix64_14j " );
286286 u64d .u = 0x7fe0000000012345ull ;
287- test_checki64 (double2fix64 (u64d .d , 0 ), INT64_MAX , "double2fix6415a " );
288- test_checki64 (double2fix64 (u64d .d , 1 ), INT64_MAX , "double2fix6415b " );
289- test_checki64 (double2fix64 (u64d .d , 2 ), INT64_MAX , "double2fix6415c " );
287+ test_checki64 (double2fix64 (u64d .d , 0 ), INT64_MAX , "double2fix64_15a " );
288+ test_checki64 (double2fix64 (u64d .d , 1 ), INT64_MAX , "double2fix64_15b " );
289+ test_checki64 (double2fix64 (u64d .d , 2 ), INT64_MAX , "double2fix64_15c " );
290290 u64d .u = 0xffe0000000012345ull ;
291- test_checki64 (double2fix64 (u64d .d , 0 ), INT64_MIN , "double2fix6416a " );
292- test_checki64 (double2fix64 (u64d .d , 1 ), INT64_MIN , "double2fix6416b " );
293- test_checki64 (double2fix64 (u64d .d , 2 ), INT64_MIN , "double2fix6416c " );
291+ test_checki64 (double2fix64 (u64d .d , 0 ), INT64_MIN , "double2fix64_16a " );
292+ test_checki64 (double2fix64 (u64d .d , 1 ), INT64_MIN , "double2fix64_16b " );
293+ test_checki64 (double2fix64 (u64d .d , 2 ), INT64_MIN , "double2fix64_16c " );
294294
295295 printf ("double2ufix64\n" );
296- test_checku64 (double2ufix64 (3.5 , 8 ), 0x380 , "double2ufix641 " );
297- test_checku64 (double2ufix64 (-3.5 , 8 ), 0 , "double2ufix642 " );
298- test_checku64 (double2ufix64 (32768.0 , 16 ), 32768ull << 16 , "double2ufix643 " );
299- test_checku64 (double2ufix64 (65536.0 , 16 ), 65536ull << 16 , "double2ufix644 " );
300- test_checku64 (double2ufix64 (2147483648.0 , 16 ), 2147483648ull << 16 , "double2ufix644b " );
301- test_checku64 (double2ufix64 (INFINITY , 16 ), UINT64_MAX , "double2ufix645 " );
302- test_checku64 (double2ufix64 (- INFINITY , 16 ), 0 , "double2ufix645b " );
303- test_checku64 (double2ufix64 (INFINITY , -16 ), UINT64_MAX , "double2ufix645c " );
304- test_checku64 (double2ufix64 (- INFINITY , -16 ), 0 , "double2ufix645d " );
305- test_checku64 (double2ufix64 (INFINITY , 0 ), UINT64_MAX , "double2ufix645e " );
306- test_checku64 (double2ufix64 (- INFINITY , 0 ), 0 , "double2ufix645f " );
307- test_checku64 (double2ufix64 (3.24999 , 2 ), 12 , "double2ufix646 " );
308- test_checku64 (double2ufix64 (3.25 , 2 ), 13 , "double2ufix647 " );
309- test_checku64 (double2ufix64 (3.0 , -1 ), 1 , "double2ufix648 " ); // not very useful
310- test_checku64 (double2ufix64 (0.0 , 16 ), 0 , "double2ufix649 " );
311- test_checku64 (double2ufix64 (-0.0 , 16 ), 0 , "double2ufix6410 " );
296+ test_checku64 (double2ufix64 (3.5 , 8 ), 0x380 , "double2ufix64_1 " );
297+ test_checku64 (double2ufix64 (-3.5 , 8 ), 0 , "double2ufix64_2 " );
298+ test_checku64 (double2ufix64 (32768.0 , 16 ), 32768ull << 16 , "double2ufix64_3 " );
299+ test_checku64 (double2ufix64 (65536.0 , 16 ), 65536ull << 16 , "double2ufix64_4 " );
300+ test_checku64 (double2ufix64 (2147483648.0 , 16 ), 2147483648ull << 16 , "double2ufix64_4b " );
301+ test_checku64 (double2ufix64 (INFINITY , 16 ), UINT64_MAX , "double2ufix64_5 " );
302+ test_checku64 (double2ufix64 (- INFINITY , 16 ), 0 , "double2ufix64_5b " );
303+ test_checku64 (double2ufix64 (INFINITY , -16 ), UINT64_MAX , "double2ufix64_5c " );
304+ test_checku64 (double2ufix64 (- INFINITY , -16 ), 0 , "double2ufix64_5d " );
305+ test_checku64 (double2ufix64 (INFINITY , 0 ), UINT64_MAX , "double2ufix64_5e " );
306+ test_checku64 (double2ufix64 (- INFINITY , 0 ), 0 , "double2ufix64_5f " );
307+ test_checku64 (double2ufix64 (3.24999 , 2 ), 12 , "double2ufix64_6 " );
308+ test_checku64 (double2ufix64 (3.25 , 2 ), 13 , "double2ufix64_7 " );
309+ test_checku64 (double2ufix64 (3.0 , -1 ), 1 , "double2ufix64_8 " ); // not very useful
310+ test_checku64 (double2ufix64 (0.0 , 16 ), 0 , "double2ufix64_9 " );
311+ test_checku64 (double2ufix64 (-0.0 , 16 ), 0 , "double2ufix64_10 " );
312312 u64d .u = 0x7fe0000000012345ull ;
313- test_checku64 (double2ufix64 (u64d .d , 0 ), UINT64_MAX , "double2ufix6411a " );
314- test_checku64 (double2ufix64 (u64d .d , 1 ), UINT64_MAX , "double2ufix6411b " );
315- test_checku64 (double2ufix64 (u64d .d , 2 ), UINT64_MAX , "double2ufix6411c " );
313+ test_checku64 (double2ufix64 (u64d .d , 0 ), UINT64_MAX , "double2ufix64_11a " );
314+ test_checku64 (double2ufix64 (u64d .d , 1 ), UINT64_MAX , "double2ufix64_11b " );
315+ test_checku64 (double2ufix64 (u64d .d , 2 ), UINT64_MAX , "double2ufix64_11c " );
316316 u64d .u = 0xffe0000000012345ull ;
317- test_checku64 (double2ufix64 (u64d .d , 0 ), 0 , "double2ufix6412a " );
318- test_checku64 (double2ufix64 (u64d .d , 1 ), 0 , "double2ufix6412b " );
319- test_checku64 (double2ufix64 (u64d .d , 2 ), 0 , "double2ufix6412c " );
317+ test_checku64 (double2ufix64 (u64d .d , 0 ), 0 , "double2ufix64_12a " );
318+ test_checku64 (double2ufix64 (u64d .d , 1 ), 0 , "double2ufix64_12b " );
319+ test_checku64 (double2ufix64 (u64d .d , 2 ), 0 , "double2ufix64_12c " );
320320#endif
321321
322322#if PICO_DOUBLE_HAS_DOUBLE_TO_FIX32_Z_CONVERSIONS
@@ -518,53 +518,53 @@ int test() {
518518
519519#if PICO_DOUBLE_HAS_DOUBLE_TO_INT64_M_CONVERSIONS
520520 printf ("double2int64\n" );
521- test_checki64 (double2int64 (0.0 ), 0 , "double2int641 " );
522- test_checki64 (double2int64 (0.25 ), 0 , "double2int641b " );
523- test_checki64 (double2int64 (0.5 ), 0 , "double2int642 " );
524- test_checki64 (double2int64 (0.75 ), 0 , "double2int642b " );
525- test_checki64 (double2int64 (1.0 ), 1 , "double2int643 " );
526- test_checki64 (double2int64 (-10.0 ), -10 , "double2int643b " );
527- test_checki64 (double2int64 (-0.0 ), 0 , "double2int643c " );
528- test_checki64 (double2int64 (-0.25 ), -1 , "double2int644 " );
529- test_checki64 (double2int64 (-0.5 ), -1 , "double2int644b " );
530- test_checki64 (double2int64 (-0.75 ), -1 , "double2int645 " );
531- test_checki64 (double2int64 (-1.0 ), -1 , "double2int645b " );
521+ test_checki64 (double2int64 (0.0 ), 0 , "double2int64_1 " );
522+ test_checki64 (double2int64 (0.25 ), 0 , "double2int64_1b " );
523+ test_checki64 (double2int64 (0.5 ), 0 , "double2int64_2 " );
524+ test_checki64 (double2int64 (0.75 ), 0 , "double2int64_2b " );
525+ test_checki64 (double2int64 (1.0 ), 1 , "double2int64_3 " );
526+ test_checki64 (double2int64 (-10.0 ), -10 , "double2int64_3b " );
527+ test_checki64 (double2int64 (-0.0 ), 0 , "double2int64_3c " );
528+ test_checki64 (double2int64 (-0.25 ), -1 , "double2int64_4 " );
529+ test_checki64 (double2int64 (-0.5 ), -1 , "double2int64_4b " );
530+ test_checki64 (double2int64 (-0.75 ), -1 , "double2int64_5 " );
531+ test_checki64 (double2int64 (-1.0 ), -1 , "double2int64_5b " );
532532 // todo test correct rounding around maximum precision
533- test_checki64 (double2int64 (2147483647.0 ), INT32_MAX , "double2int646 " );
534- test_checki64 (double2int64 (21474836470.0 ), 21474836470ll , "double2int647 " );
535- test_checki64 (double2int64 (-2147483648.0 ), INT32_MIN , "double2int648 " );
536- test_checki64 (double2int64 (-21474836480.0 ), -21474836480ll , "double2int649 " );
537- test_checki64 (double2int64 (-2.5 ), -3 , "double2int6410 " );
538- test_checki64 (double2int64 (-2.4 ), -3 , "double2int6411 " );
533+ test_checki64 (double2int64 (2147483647.0 ), INT32_MAX , "double2int64_6 " );
534+ test_checki64 (double2int64 (21474836470.0 ), 21474836470ll , "double2int64_7 " );
535+ test_checki64 (double2int64 (-2147483648.0 ), INT32_MIN , "double2int64_8 " );
536+ test_checki64 (double2int64 (-21474836480.0 ), -21474836480ll , "double2int64_9 " );
537+ test_checki64 (double2int64 (-2.5 ), -3 , "double2int64_10 " );
538+ test_checki64 (double2int64 (-2.4 ), -3 , "double2int64_11 " );
539539 u64d .u = 0xc000000000000000ull ;
540- test_checki64 (double2int64 (u64d .d ), -2 , "double2int6412 " );
540+ test_checki64 (double2int64 (u64d .d ), -2 , "double2int64_12 " );
541541 u64d .u = 0xc008000000000000ull ;
542- test_checki64 (double2int64 (u64d .d ), -3 , "double2int6412b " );
542+ test_checki64 (double2int64 (u64d .d ), -3 , "double2int64_12b " );
543543 u64d .u = 0xc000000000000001ull ;
544- test_checki64 (double2int64 (u64d .d ), -3 , "double2int6412c " );
544+ test_checki64 (double2int64 (u64d .d ), -3 , "double2int64_12c " );
545545 u64d .u = 0xc000000080000000ull ;
546- test_checki64 (double2int64 (u64d .d ), -3 , "double2int6412d " );
546+ test_checki64 (double2int64 (u64d .d ), -3 , "double2int64_12d " );
547547 u64d .u = 0xc000000100000000ull ;
548- test_checki64 (double2int64 (u64d .d ), -3 , "double2int6412e " );
548+ test_checki64 (double2int64 (u64d .d ), -3 , "double2int64_12e " );
549549 u64d .u = 0xc000000100000001ull ;
550- test_checki64 (double2int64 (u64d .d ), -3 , "double2int6412f " );
551- test_checki64 (double2int64 (make_positive_denormal_double ()), 0 , "double2int6413 " );
552- test_checki64 (double2int64 (make_negative_denormal_double ()), 0 , "double2int6414 " );
550+ test_checki64 (double2int64 (u64d .d ), -3 , "double2int64_12f " );
551+ test_checki64 (double2int64 (make_positive_denormal_double ()), 0 , "double2int64_13 " );
552+ test_checki64 (double2int64 (make_negative_denormal_double ()), 0 , "double2int64_14 " );
553553
554554 printf ("double2uint64\n" );
555- test_checku64 (double2uint64 (0.0 ), 0 , "double2uint641 " );
556- test_checku64 (double2uint64 (0.25 ), 0 , "double2uint642 " );
557- test_checku64 (double2uint64 (0.5 ), 0 , "double2uint643 " );
558- test_checku64 (double2uint64 (0.75 ), 0 , "double2uint644 " );
559- test_checku64 (double2uint64 (1.0 ), 1 , "double2uint645 " );
560- test_checku64 (double2uint64 (2147483647.0 ), INT32_MAX , "double2uint646 " );
561- test_checku64 (double2uint64 (2147483648.0 ), INT32_MAX + 1u , "double2uint647 " );
555+ test_checku64 (double2uint64 (0.0 ), 0 , "double2uint64_1 " );
556+ test_checku64 (double2uint64 (0.25 ), 0 , "double2uint64_2 " );
557+ test_checku64 (double2uint64 (0.5 ), 0 , "double2uint64_3 " );
558+ test_checku64 (double2uint64 (0.75 ), 0 , "double2uint64_4 " );
559+ test_checku64 (double2uint64 (1.0 ), 1 , "double2uint64_5 " );
560+ test_checku64 (double2uint64 (2147483647.0 ), INT32_MAX , "double2uint64_6 " );
561+ test_checku64 (double2uint64 (2147483648.0 ), INT32_MAX + 1u , "double2uint64_7 " );
562562 // todo test correct rounding around maximum precision
563- test_checku64 (double2uint64 (4294967294.5 ), 4294967294ull , "double2uint648 " );
564- test_checku64 (double2uint64 (4294967295.0 ), 4294967295ull , "double2uint649 " );
565- test_checku64 (double2uint64 (42949672950.0 ), 42949672950 , "double2uint6410 " );
566- test_checku64 (double2uint64 (make_positive_denormal_double ()), 0 , "double2uint6411 " );
567- test_checku64 (double2uint64 (make_negative_denormal_double ()), 0 , "double2uint6412 " );
563+ test_checku64 (double2uint64 (4294967294.5 ), 4294967294ull , "double2uint64_8 " );
564+ test_checku64 (double2uint64 (4294967295.0 ), 4294967295ull , "double2uint64_9 " );
565+ test_checku64 (double2uint64 (42949672950.0 ), 42949672950 , "double2uint64_10 " );
566+ test_checku64 (double2uint64 (make_positive_denormal_double ()), 0 , "double2uint64_11 " );
567+ test_checku64 (double2uint64 (make_negative_denormal_double ()), 0 , "double2uint64_12 " );
568568#endif
569569
570570#if PICO_DOUBLE_HAS_DOUBLE_TO_INT32_Z_CONVERSIONS
0 commit comments