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

Go to the source code of this file.

Functions

float128_t f128_add (float128_t a, float128_t b)
 

Function Documentation

◆ f128_add()

float128_t f128_add ( float128_t a,
float128_t b )

Definition at line 43 of file f128_add.c.

44{
45 union ui128_f128 uA;
46 uint_fast64_t uiA64, uiA0;
47 bool signA;
48 union ui128_f128 uB;
49 uint_fast64_t uiB64, uiB0;
50 bool signB;
51#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
53 (*magsFuncPtr)(
55#endif
56
57 uA.f = a;
58 uiA64 = uA.ui.v64;
59 uiA0 = uA.ui.v0;
60 signA = signF128UI64( uiA64 );
61 uB.f = b;
62 uiB64 = uB.ui.v64;
63 uiB0 = uB.ui.v0;
64 signB = signF128UI64( uiB64 );
65#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
66 if ( signA == signB ) {
67 return softfloat_addMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
68 } else {
69 return softfloat_subMagsF128( uiA64, uiA0, uiB64, uiB0, signA );
70 }
71#else
72 magsFuncPtr =
74 return (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
75#endif
76
77}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1181
float128_t softfloat_addMagsF128(uint_fast64_t uiA64, uint_fast64_t uiA0, uint_fast64_t uiB64, uint_fast64_t uiB0, bool signZ)
float128_t softfloat_subMagsF128(uint_fast64_t uiA64, uint_fast64_t uiA0, uint_fast64_t uiB64, uint_fast64_t uiB0, bool signZ)
uint64_t uint_fast64_t
Definition stdint.h:157
Here is the call graph for this function:
Here is the caller graph for this function: