Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
extF80_eq.c File Reference
#include <stdbool.h>
#include <stdint.h>
#include "platform.h"
#include "internals.h"
#include "specialize.h"
#include "softfloat.h"
Include dependency graph for extF80_eq.c:

Go to the source code of this file.

Functions

bool extF80_eq (extFloat80_t a, extFloat80_t b)
 

Function Documentation

◆ extF80_eq()

bool extF80_eq ( extFloat80_t a,
extFloat80_t b )

Definition at line 44 of file extF80_eq.c.

45{
46 union { struct extFloat80M s; extFloat80_t f; } uA;
47 uint_fast16_t uiA64;
48 uint_fast64_t uiA0;
49 union { struct extFloat80M s; extFloat80_t f; } uB;
50 uint_fast16_t uiB64;
51 uint_fast64_t uiB0;
52
53 uA.f = a;
54 uiA64 = uA.s.signExp;
55 uiA0 = uA.s.signif;
56 uB.f = b;
57 uiB64 = uB.s.signExp;
58 uiB0 = uB.s.signif;
59 if ( isNaNExtF80UI( uiA64, uiA0 ) || isNaNExtF80UI( uiB64, uiB0 ) ) {
60 if (
61 softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
62 || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
63 ) {
65 }
66 return false;
67 }
68 return
69 (uiA0 == uiB0)
70 && ((uiA64 == uiB64) || (! uiA0 && ! ((uiA64 | uiB64) & 0x7FFF)));
71
72}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1181
void softfloat_raiseFlags(uint_fast8_t flags)
#define softfloat_isSigNaNExtF80UI(uiA64, uiA0)
Definition specialize.h:202
#define isNaNExtF80UI(a64, a0)
Definition internals.h:150
@ softfloat_flag_invalid
Definition softfloat.h:89
uint16_t uint_fast16_t
Definition stdint.h:155
uint64_t uint_fast64_t
Definition stdint.h:157
uint16_t signExp
char * s
Here is the call graph for this function: