Numworks Epsilon  1.4.1
Graphing Calculator Operating System
specialize.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include "softfloat_types.h"

Go to the source code of this file.

Classes

struct  commonNaN
 

Macros

#define init_detectTininess   softfloat_tininess_afterRounding
 
#define ui32_fromPosOverflow   0xFFFFFFFF
 
#define ui32_fromNegOverflow   0
 
#define ui32_fromNaN   0xFFFFFFFF
 
#define i32_fromPosOverflow   0x7FFFFFFF
 
#define i32_fromNegOverflow   (-0x7FFFFFFF - 1)
 
#define i32_fromNaN   0x7FFFFFFF
 
#define ui64_fromPosOverflow   UINT64_C( 0xFFFFFFFFFFFFFFFF )
 
#define ui64_fromNegOverflow   0
 
#define ui64_fromNaN   UINT64_C( 0xFFFFFFFFFFFFFFFF )
 
#define i64_fromPosOverflow   UINT64_C( 0x7FFFFFFFFFFFFFFF )
 
#define i64_fromNegOverflow   (-UINT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
 
#define i64_fromNaN   UINT64_C( 0x7FFFFFFFFFFFFFFF )
 
#define defaultNaNF16UI   0xFE00
 
#define softfloat_isSigNaNF16UI(uiA)   ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
 
#define defaultNaNF32UI   0xFFC00000
 
#define softfloat_isSigNaNF32UI(uiA)   ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
 
#define defaultNaNF64UI   UINT64_C( 0xFFF8000000000000 )
 
#define softfloat_isSigNaNF64UI(uiA)   ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
 
#define defaultNaNExtF80UI64   0xFFFF
 
#define defaultNaNExtF80UI0   UINT64_C( 0xC000000000000000 )
 
#define softfloat_isSigNaNExtF80UI(uiA64, uiA0)   ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
 
#define defaultNaNF128UI96   0xFFFF8000
 
#define defaultNaNF128UI64   0
 
#define defaultNaNF128UI32   0
 
#define defaultNaNF128UI0   0
 

Functions

void softfloat_f16UIToCommonNaN (uint_fast16_t uiA, struct commonNaN *zPtr)
 
uint_fast16_t softfloat_commonNaNToF16UI (const struct commonNaN *aPtr)
 
uint_fast16_t softfloat_propagateNaNF16UI (uint_fast16_t uiA, uint_fast16_t uiB)
 
void softfloat_f32UIToCommonNaN (uint_fast32_t uiA, struct commonNaN *zPtr)
 
uint_fast32_t softfloat_commonNaNToF32UI (const struct commonNaN *aPtr)
 
uint_fast32_t softfloat_propagateNaNF32UI (uint_fast32_t uiA, uint_fast32_t uiB)
 
void softfloat_f64UIToCommonNaN (uint_fast64_t uiA, struct commonNaN *zPtr)
 
uint_fast64_t softfloat_commonNaNToF64UI (const struct commonNaN *aPtr)
 
uint_fast64_t softfloat_propagateNaNF64UI (uint_fast64_t uiA, uint_fast64_t uiB)
 
void softfloat_extF80MToCommonNaN (const struct extFloat80M *aSPtr, struct commonNaN *zPtr)
 
void softfloat_commonNaNToExtF80M (const struct commonNaN *aPtr, struct extFloat80M *zSPtr)
 
void softfloat_propagateNaNExtF80M (const struct extFloat80M *aSPtr, const struct extFloat80M *bSPtr, struct extFloat80M *zSPtr)
 
void softfloat_f128MToCommonNaN (const uint32_t *aWPtr, struct commonNaN *zPtr)
 
void softfloat_commonNaNToF128M (const struct commonNaN *aPtr, uint32_t *zWPtr)
 
void softfloat_propagateNaNF128M (const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr)
 

Macro Definition Documentation

◆ defaultNaNExtF80UI0

#define defaultNaNExtF80UI0   UINT64_C( 0xC000000000000000 )

Definition at line 193 of file specialize.h.

◆ defaultNaNExtF80UI64

#define defaultNaNExtF80UI64   0xFFFF

Definition at line 192 of file specialize.h.

◆ defaultNaNF128UI0

#define defaultNaNF128UI0   0

Definition at line 338 of file specialize.h.

◆ defaultNaNF128UI32

#define defaultNaNF128UI32   0

Definition at line 337 of file specialize.h.

◆ defaultNaNF128UI64

#define defaultNaNF128UI64   0

Definition at line 336 of file specialize.h.

◆ defaultNaNF128UI96

#define defaultNaNF128UI96   0xFFFF8000

Definition at line 335 of file specialize.h.

◆ defaultNaNF16UI

#define defaultNaNF16UI   0xFE00

Definition at line 87 of file specialize.h.

◆ defaultNaNF32UI

#define defaultNaNF32UI   0xFFC00000

Definition at line 122 of file specialize.h.

◆ defaultNaNF64UI

#define defaultNaNF64UI   UINT64_C( 0xFFF8000000000000 )

Definition at line 157 of file specialize.h.

◆ i32_fromNaN

#define i32_fromNaN   0x7FFFFFFF

Definition at line 58 of file specialize.h.

◆ i32_fromNegOverflow

#define i32_fromNegOverflow   (-0x7FFFFFFF - 1)

Definition at line 57 of file specialize.h.

◆ i32_fromPosOverflow

#define i32_fromPosOverflow   0x7FFFFFFF

Definition at line 56 of file specialize.h.

◆ i64_fromNaN

#define i64_fromNaN   UINT64_C( 0x7FFFFFFFFFFFFFFF )

Definition at line 69 of file specialize.h.

◆ i64_fromNegOverflow

#define i64_fromNegOverflow   (-UINT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)

Definition at line 68 of file specialize.h.

◆ i64_fromPosOverflow

#define i64_fromPosOverflow   UINT64_C( 0x7FFFFFFFFFFFFFFF )

Definition at line 67 of file specialize.h.

◆ init_detectTininess

#define init_detectTininess   softfloat_tininess_afterRounding

Definition at line 47 of file specialize.h.

◆ softfloat_isSigNaNExtF80UI

#define softfloat_isSigNaNExtF80UI (   uiA64,
  uiA0 
)    ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))

Definition at line 201 of file specialize.h.

◆ softfloat_isSigNaNF16UI

#define softfloat_isSigNaNF16UI (   uiA)    ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))

Definition at line 94 of file specialize.h.

◆ softfloat_isSigNaNF32UI

#define softfloat_isSigNaNF32UI (   uiA)    ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))

Definition at line 129 of file specialize.h.

◆ softfloat_isSigNaNF64UI

#define softfloat_isSigNaNF64UI (   uiA)    ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))

Definition at line 164 of file specialize.h.

◆ ui32_fromNaN

#define ui32_fromNaN   0xFFFFFFFF

Definition at line 55 of file specialize.h.

◆ ui32_fromNegOverflow

#define ui32_fromNegOverflow   0

Definition at line 54 of file specialize.h.

◆ ui32_fromPosOverflow

#define ui32_fromPosOverflow   0xFFFFFFFF

Definition at line 53 of file specialize.h.

◆ ui64_fromNaN

#define ui64_fromNaN   UINT64_C( 0xFFFFFFFFFFFFFFFF )

Definition at line 66 of file specialize.h.

◆ ui64_fromNegOverflow

#define ui64_fromNegOverflow   0

Definition at line 65 of file specialize.h.

◆ ui64_fromPosOverflow

#define ui64_fromPosOverflow   UINT64_C( 0xFFFFFFFFFFFFFFFF )

Definition at line 64 of file specialize.h.

Function Documentation

◆ softfloat_commonNaNToExtF80M()

void softfloat_commonNaNToExtF80M ( const struct commonNaN aPtr,
struct extFloat80M zSPtr 
)

◆ softfloat_commonNaNToF128M()

void softfloat_commonNaNToF128M ( const struct commonNaN aPtr,
uint32_t zWPtr 
)

◆ softfloat_commonNaNToF16UI()

uint_fast16_t softfloat_commonNaNToF16UI ( const struct commonNaN aPtr)

◆ softfloat_commonNaNToF32UI()

uint_fast32_t softfloat_commonNaNToF32UI ( const struct commonNaN aPtr)

Definition at line 45 of file s_commonNaNToF32UI.c.

◆ softfloat_commonNaNToF64UI()

uint_fast64_t softfloat_commonNaNToF64UI ( const struct commonNaN aPtr)

Definition at line 45 of file s_commonNaNToF64UI.c.

◆ softfloat_extF80MToCommonNaN()

void softfloat_extF80MToCommonNaN ( const struct extFloat80M aSPtr,
struct commonNaN zPtr 
)

◆ softfloat_f128MToCommonNaN()

void softfloat_f128MToCommonNaN ( const uint32_t aWPtr,
struct commonNaN zPtr 
)

◆ softfloat_f16UIToCommonNaN()

void softfloat_f16UIToCommonNaN ( uint_fast16_t  uiA,
struct commonNaN zPtr 
)

◆ softfloat_f32UIToCommonNaN()

void softfloat_f32UIToCommonNaN ( uint_fast32_t  uiA,
struct commonNaN zPtr 
)

Definition at line 48 of file s_f32UIToCommonNaN.c.

◆ softfloat_f64UIToCommonNaN()

void softfloat_f64UIToCommonNaN ( uint_fast64_t  uiA,
struct commonNaN zPtr 
)

Definition at line 48 of file s_f64UIToCommonNaN.c.

◆ softfloat_propagateNaNExtF80M()

void softfloat_propagateNaNExtF80M ( const struct extFloat80M aSPtr,
const struct extFloat80M bSPtr,
struct extFloat80M zSPtr 
)

◆ softfloat_propagateNaNF128M()

void softfloat_propagateNaNF128M ( const uint32_t aWPtr,
const uint32_t bWPtr,
uint32_t zWPtr 
)

◆ softfloat_propagateNaNF16UI()

uint_fast16_t softfloat_propagateNaNF16UI ( uint_fast16_t  uiA,
uint_fast16_t  uiB 
)

◆ softfloat_propagateNaNF32UI()

uint_fast32_t softfloat_propagateNaNF32UI ( uint_fast32_t  uiA,
uint_fast32_t  uiB 
)

◆ softfloat_propagateNaNF64UI()

uint_fast64_t softfloat_propagateNaNF64UI ( uint_fast64_t  uiA,
uint_fast64_t  uiB 
)

Definition at line 51 of file s_propagateNaNF64UI.c.