ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libecb/ecb.h
(Generate patch)

Comparing libecb/ecb.h (file contents):
Revision 1.104 by root, Thu Jun 28 19:38:29 2012 UTC vs.
Revision 1.105 by root, Thu Jun 28 19:42:30 2012 UTC

587 uint32_t r; 587 uint32_t r;
588 588
589 #if ECB_STDFP 589 #if ECB_STDFP
590 memcpy (&r, &x, 4); 590 memcpy (&r, &x, 4);
591 #else 591 #else
592 /* slow emulation, works for anything but nan's and -0 */ 592 /* slow emulation, works for anything but -0 */
593 ECB_EXTERN_C float frexpf (float v, int *e); 593 ECB_EXTERN_C float frexpf (float v, int *e);
594 uint32_t m; 594 uint32_t m;
595 int e; 595 int e;
596 596
597 if (x == 0e0f ) return 0; 597 if (x == 0e0f ) return 0;
598 if (x > +3.40282346638528860e+38f) return 0x7f800000U; 598 if (x > +3.40282346638528860e+38f) return 0x7f800000U;
599 if (x < -3.40282346638528860e+38f) return 0xff800000U; 599 if (x < -3.40282346638528860e+38f) return 0xff800000U;
600 if (x != x ) return 0x7fbfffffU;
600 601
601 m = frexpf (x, &e) * 0x1000000U; 602 m = frexpf (x, &e) * 0x1000000U;
602 603
603 r = m & 0x80000000U; 604 r = m & 0x80000000U;
604 605
659 uint64_t r; 660 uint64_t r;
660 661
661 #if ECB_STDFP 662 #if ECB_STDFP
662 memcpy (&r, &x, 8); 663 memcpy (&r, &x, 8);
663 #else 664 #else
664 /* slow emulation, works for anything but nan's and -0 */ 665 /* slow emulation, works for anything but -0 */
665 ECB_EXTERN_C double frexp (double v, int *e); 666 ECB_EXTERN_C double frexp (double v, int *e);
666 uint64_t m; 667 uint64_t m;
667 int e; 668 int e;
668 669
669 if (x == 0e0 ) return 0; 670 if (x == 0e0 ) return 0;
670 if (x > +1.79769313486231470e+308) return 0x7ff0000000000000U; 671 if (x > +1.79769313486231470e+308) return 0x7ff0000000000000U;
671 if (x < -1.79769313486231470e+308) return 0xfff0000000000000U; 672 if (x < -1.79769313486231470e+308) return 0xfff0000000000000U;
673 if (x != x ) return 0X7ff7ffffffffffffU;
672 674
673 m = frexpf (x, &e) * 0x1000000U; 675 m = frexpf (x, &e) * 0x1000000U;
674 m = frexp (x, &e) * 0x20000000000000U; 676 m = frexp (x, &e) * 0x20000000000000U;
675 677
676 r = m & 0x8000000000000000;; 678 r = m & 0x8000000000000000;;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines