Files | |
file | add.c |
file | add.h |
file | common.c |
file | common.h |
file | comparison.c |
file | comparison.h |
file | conversion.c |
file | conversion.h |
file | div.c |
file | div.h |
file | mul.c |
file | mul.h |
file | other.c |
file | other.h |
file | sftypes.h |
file | softfloat.c |
file | softfloat.h |
file | sub.c |
file | sub.h |
Data Structures | |
union | float32 |
union | float64 |
Defines | |
#define | FLOAT32_BIAS 0x7F |
#define | FLOAT32_FRACTION_SIZE 23 |
#define | FLOAT32_HIDDEN_BIT_MASK 0x800000 |
#define | FLOAT32_INF 0x7F800000 |
#define | FLOAT32_MAX 0x7f800000 |
#define | FLOAT32_MAX_EXPONENT 0xFF |
#define | FLOAT32_MIN 0xff800000 |
#define | FLOAT32_NAN 0x7FC00001 |
#define | FLOAT32_SIGNAN 0x7F800001 |
#define | FLOAT64_BIAS 0x3FF |
#define | FLOAT64_FRACTION_SIZE 52 |
#define | FLOAT64_HIDDEN_BIT_MASK 0x10000000000000ll |
#define | FLOAT64_INF 0x7FF0000000000000ll |
#define | FLOAT64_MAX |
#define | FLOAT64_MAX_EXPONENT 0x7FF |
#define | FLOAT64_MIN |
#define | FLOAT64_NAN 0x7FF8000000000001ll |
#define | FLOAT64_SIGNAN 0x7FF0000000000001ll |
#define | FLOAT80_BIAS 0x3FFF |
Functions | |
double | __adddf3 (double a, double b) |
float | __addsf3 (float a, float b) |
int | __cmpsf2 (float a, float b) |
double | __divdf3 (double a, double b) |
float | __divsf3 (float a, float b) |
int | __eqsf2 (float a, float b) |
double | __extendsfdf2 (float a) |
long | __fixdfdi (double a) |
int | __fixdfsi (double a) |
long long | __fixdfti (double a) |
long | __fixsfdi (float a) |
int | __fixsfsi (float a) |
long long | __fixsfti (float a) |
unsigned long | __fixunsdfdi (double a) |
unsigned int | __fixunsdfsi (double a) |
unsigned long long | __fixunsdfti (double a) |
unsigned long | __fixunssfdi (float a) |
unsigned int | __fixunssfsi (float a) |
unsigned long long | __fixunssfti (float a) |
double | __floatdidf (long i) |
float | __floatdisf (long i) |
double | __floatsidf (int i) |
float | __floatsisf (int i) |
double | __floattidf (long long i) |
float | __floattisf (long long i) |
double | __floatundidf (unsigned long i) |
float | __floatundisf (unsigned long i) |
double | __floatunsidf (unsigned int i) |
float | __floatunsisf (unsigned int i) |
double | __floatuntidf (unsigned long long i) |
float | __floatuntisf (unsigned long long i) |
int | __gesf2 (float a, float b) |
int | __gtsf2 (float a, float b) |
Return positive value, if a>b and neither is NaN. | |
int | __lesf2 (float a, float b) |
int | __ltsf2 (float a, float b) |
Return negative value, if a<b and neither is NaN. | |
double | __muldf3 (double a, double b) |
float | __mulsf3 (float a, float b) |
double | __negdf2 (double a) |
float | __negsf2 (float a) |
int | __nesf2 (float a, float b) |
float | __powisf2 (float a, int b) |
double | __subdf3 (double a, double b) |
float | __subsf3 (float a, float b) |
float | __truncdfsf2 (double a) |
int | __unordsf2 (float a, float b) |
static uint32_t | _float32_to_uint32_helper (float32 a) |
Helping procedure for converting float32 to uint32. | |
static uint64_t | _float32_to_uint64_helper (float32 a) |
Helping procedure for converting float32 to uint64. | |
static uint64_t | _float64_to_uint64_helper (float64 a) |
Helping procedure for converting float64 to uint64. | |
float32 | addFloat32 (float32 a, float32 b) |
Add two Float32 numbers with same signs. | |
float64 | addFloat64 (float64 a, float64 b) |
Add two Float64 numbers with same signs. | |
float64 | convertFloat32ToFloat64 (float32 a) |
float32 | convertFloat64ToFloat32 (float64 a) |
int | countZeroes32 (uint32_t i) |
Counts leading zeroes in 32bit unsigned integer. | |
int | countZeroes64 (uint64_t i) |
Counts leading zeroes in 64bit unsigned integer. | |
int | countZeroes8 (uint8_t i) |
Counts leading zeroes in byte. | |
float32 | divFloat32 (float32 a, float32 b) |
float64 | divFloat64 (float64 a, float64 b) |
uint64_t | divFloat64estim (uint64_t a, uint64_t b) |
float64 | finishFloat64 (int32_t cexp, uint64_t cfrac, char sign) |
Take fraction shifted by 10 bits to left, round it, normalize it and detect exceptions. | |
int32_t | float32_to_int32 (float32 a) |
int64_t | float32_to_int64 (float32 a) |
uint32_t | float32_to_uint32 (float32 a) |
uint64_t | float32_to_uint64 (float32 a) |
int32_t | float64_to_int32 (float64 a) |
int64_t | float64_to_int64 (float64 a) |
uint32_t | float64_to_uint32 (float64 a) |
uint64_t | float64_to_uint64 (float64 a) |
float32 | int32_to_float32 (int32_t i) |
float64 | int32_to_float64 (int32_t i) |
float32 | int64_to_float32 (int64_t i) |
float64 | int64_to_float64 (int64_t i) |
int | isFloat32eq (float32 a, float32 b) |
int | isFloat32gt (float32 a, float32 b) |
int | isFloat32Infinity (float32 f) |
int | isFloat32lt (float32 a, float32 b) |
int | isFloat32NaN (float32 f) |
int | isFloat32SigNaN (float32 f) |
int | isFloat32Zero (float32 f) |
int | isFloat64Infinity (float64 d) |
int | isFloat64NaN (float64 d) |
int | isFloat64SigNaN (float64 d) |
int | isFloat64Zero (float64 d) |
void | mul64integers (uint64_t a, uint64_t b, uint64_t *lo, uint64_t *hi) |
Multiply two 64 bit numbers and return result in two parts. | |
float32 | mulFloat32 (float32 a, float32 b) |
Multiply two 32 bit float numbers. | |
float64 | mulFloat64 (float64 a, float64 b) |
Multiply two 64 bit float numbers. | |
void | roundFloat32 (int32_t *exp, uint32_t *fraction) |
Round and normalize number expressed by exponent and fraction with first bit (equal to hidden bit) at 30. | |
void | roundFloat64 (int32_t *exp, uint64_t *fraction) |
Round and normalize number expressed by exponent and fraction with first bit (equal to hidden bit) at 62. | |
float32 | subFloat32 (float32 a, float32 b) |
Subtract two float32 numbers with same signs. | |
float64 | subFloat64 (float64 a, float64 b) |
Subtract two float64 numbers with same signs. | |
float32 | uint32_to_float32 (uint32_t i) |
Convert unsigned integer to float32. | |
float64 | uint32_to_float64 (uint32_t i) |
Convert unsigned integer to float64. | |
float32 | uint64_to_float32 (uint64_t i) |
float64 | uint64_to_float64 (uint64_t i) |
Variables | |
char | zeroTable [256] |
int __eqsf2 | ( | float | a, | |
float | b | |||
) |
Definition at line 392 of file softfloat.c.
static uint32_t _float32_to_uint32_helper | ( | float32 | a | ) | [static] |
Helping procedure for converting float32 to uint32.
a | floating point number in normalized form (no NaNs or Inf are checked ) |
Definition at line 153 of file conversion.c.
static uint64_t _float32_to_uint64_helper | ( | float32 | a | ) | [static] |
Helping procedure for converting float32 to uint64.
a | floating point number in normalized form (no NaNs or Inf are checked ) |
Definition at line 292 of file conversion.c.
static uint64_t _float64_to_uint64_helper | ( | float64 | a | ) | [static] |
Helping procedure for converting float64 to uint64.
a | floating point number in normalized form (no NaNs or Inf are checked ) |
Definition at line 220 of file conversion.c.
int countZeroes32 | ( | uint32_t | i | ) |
int countZeroes64 | ( | uint64_t | i | ) |
int countZeroes8 | ( | uint8_t | i | ) |
float64 finishFloat64 | ( | int32_t | cexp, | |
uint64_t | cfrac, | |||
char | sign | |||
) |
Definition at line 85 of file comparison.c.
void mul64integers | ( | uint64_t | a, | |
uint64_t | b, | |||
uint64_t * | lo, | |||
uint64_t * | hi | |||
) |
void roundFloat32 | ( | int32_t * | exp, | |
uint32_t * | fraction | |||
) |
void roundFloat64 | ( | int32_t * | exp, | |
uint64_t * | fraction | |||
) |