27 memcpy(&result, source, 4);
30 return ((uint32_t) * (source + 0) << 0x18) +
31 ((uint32_t) * (source + 1) << 0x10) +
32 ((uint16_t) * (source + 2) << 0x08) + (uint8_t) * (source + 3);
39 memcpy(&result, source, 8);
42 return ((uint64_t) * (source + 0) << 0x38) +
43 ((uint64_t) * (source + 1) << 0x30) +
44 ((uint64_t) * (source + 2) << 0x28) +
45 ((uint64_t) * (source + 3) << 0x20) +
46 ((uint32_t) * (source + 4) << 0x18) +
47 ((uint32_t) * (source + 5) << 0x10) +
48 ((uint16_t) * (source + 6) << 0x08) + (uint8_t) * (source + 7);
56 int half = (halfp[0] << 8) + halfp[1];
57 int exp = (half >> 10) & 0x1f;
58 int mant = half & 0x3ff;
61 val = ldexp(mant, -24);
63 val = ldexp(mant + 1024, exp - 25);
65 val = mant == 0 ? INFINITY : NAN;
66 return (
float)(half & 0x8000 ? -val : val);