35,7 → 35,7 |
#ifndef __SFTYPES_H__ |
#define __SFTYPES_H__ |
|
#include <endian.h> |
#include <byteorder.h> |
#include <stdint.h> |
|
typedef union { |
43,11 → 43,11 |
uint32_t binary; |
|
struct { |
#if __BYTE_ORDER == __BIG_ENDIAN |
#if defined(ARCH_IS_BIG_ENDIAN) |
uint32_t sign:1; |
uint32_t exp:8; |
uint32_t fraction:23; |
#elif __BYTE_ORDER == __LITTLE_ENDIAN |
#elif defined(ARCH_IS_LITTLE_ENDIAN) |
uint32_t fraction:23; |
uint32_t exp:8; |
uint32_t sign:1; |
62,11 → 62,11 |
uint64_t binary; |
|
struct { |
#if __BYTE_ORDER == __BIG_ENDIAN |
#if defined(ARCH_IS_BIG_ENDIAN) |
uint64_t sign:1; |
uint64_t exp:11; |
uint64_t fraction:52; |
#elif __BYTE_ORDER == __LITTLE_ENDIAN |
#elif defined(ARCH_IS_LITTLE_ENDIAN) |
uint64_t fraction:52; |
uint64_t exp:11; |
uint64_t sign:1; |
81,7 → 81,10 |
#define FLOAT64_MAX |
#define FLOAT64_MIN |
|
/* For recognizing NaNs or infinity use isFloat32NaN and is Float32Inf, comparing with this constants is not sufficient */ |
/* |
* For recognizing NaNs or infinity use isFloat32NaN and is Float32Inf, |
* comparing with these constants is not sufficient. |
*/ |
#define FLOAT32_NAN 0x7FC00001 |
#define FLOAT32_SIGNAN 0x7F800001 |
#define FLOAT32_INF 0x7F800000 |