41#include "specialize.h"
71 if ( ! signA )
return a;
77 if ( ! (expA | sigA) )
return a;
83 if ( ! sigA )
return a;
85 expA = normExpSig.
exp;
86 sigA = normExpSig.
sig;
90 expZ = ((expA - 0x7F)>>1) + 0x7E;
92 sigA = (sigA | 0x00800000)<<8;
96 if ( expA ) sigZ >>= 1;
100 if ( (sigZ & 0x3F) < 2 ) {
101 shiftedSigZ = sigZ>>2;
102 negRem = shiftedSigZ * shiftedSigZ;
104 if ( negRem & 0x80000000 ) {
107 if ( negRem ) --sigZ;
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
uint_fast32_t softfloat_propagateNaNF32UI(uint_fast32_t uiA, uint_fast32_t uiB)
void softfloat_raiseFlags(uint_fast8_t flags)
float32_t f32_sqrt(float32_t a)
float32_t softfloat_roundPackToF32(bool, int_fast16_t, uint_fast32_t)
struct exp16_sig32 softfloat_normSubnormalF32Sig(uint_fast32_t)
uint32_t softfloat_approxRecipSqrt32_1(unsigned int oddExpA, uint32_t a)