bits32
bits32 aSig, bSig, zSig, rem0, rem1, term0, term1;
INLINE bits32 extractFloat32Frac( float32 a )
bits32 aSig, bSig, q, allZero, alternateASig;
bits32 aSig, zSig, rem0, rem1, term0, term1;
return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 );
return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 );
bits32 aSig0, aSig1, absZ, aSigExtra;
if ( (bits32) ( aSigExtra<<1 ) == 0 ) absZ &= ~1;
normalizeFloat32Subnormal( bits32 aSig, int16 *zExpPtr, bits32 *zSigPtr )
bits32 aSig0, aSig1, absZ, aSigExtra;
bits32 aSig0, aSig1, zSig;
bits32 allZero;
bits32 lastBitMask, roundBitsMask;
if ( (bits32) ( z.low<<1 ) == 0 ) z.high &= ~1;
if ( ( ( (bits32) ( a.high<<1 ) ) | a.low ) == 0 ) return a;
bits32 aSig0, aSig1, bSig0, bSig1, zSig0, zSig1, zSig2;
INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
bits32 aSig0, aSig1, bSig0, bSig1, zSig0, zSig1;
bits32 aSig0, aSig1, bSig0, bSig1, zSig0, zSig1, zSig2, zSig3;
bits32 aSig0, aSig1, bSig0, bSig1, zSig0, zSig1, zSig2;
bits32 rem0, rem1, rem2, rem3, term0, term1, term2, term3;
static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
bits32 aSig0, aSig1, bSig0, bSig1, q, term0, term1, term2;
bits32 allZero, alternateASig0, alternateASig1, sigMean1;
bits32 aSig0, aSig1, zSig0, zSig1, zSig2, doubleZSig0;
bits32 rem0, rem1, rem2, rem3, term0, term1, term2, term3;
normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
INLINE bits32 extractFloat64Frac1( float64 a )
INLINE bits32 extractFloat64Frac0( float64 a )
bits32 aSig0,
bits32 aSig1,
bits32 *zSig0Ptr,
bits32 *zSig1Ptr
packFloat64( flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1, bits32 zSig2 )
flag zSign, int16 zExp, bits32 zSig0, bits32 zSig1 )
bits32 zSig2;
bits32 absA;
bits32 zSig0, zSig1;
bits32 aSig, aSigExtra;
if ( (bits32) ( aSigExtra<<1 ) == 0 ) z &= ~1;
bits32 aSig;
if ( (bits32) ( aSig<<( shiftCount & 31 ) ) ) {
bits32 aSig, zSig0, zSig1;
bits32 lastBitMask, roundBitsMask;
if ( (bits32) ( a<<1 ) == 0 ) return a;
bits32 aSig, bSig, zSig;
bits32 aSig, bSig, zSig;
bits32 aSig, bSig, zSig0, zSig1;
if ( 0x7FFD <= (bits32) zExp ) {
if ( a & (bits32) 0x80000000 )
bits32 aSig;
bits32 aSig;
if ( (bits32) ( aSig<<( shiftCount & 31 ) ) ) {
bits32 aSig;
bits32 aSig;
bits32 aSig;
bits32 aSig;
bits32 aSig;
bits32 lastBitMask, roundBitsMask;
if ( (bits32) ( a<<1 ) == 0 ) return a;
bits32 aSig, bSig, zSig;
bits32 aSig, bSig, zSig;
bits32 aSig, bSig;
bits32 zSig;
bits32 aSig, bSig, zSig;
bits32 aSig, bSig;
bits32 q;
bits32 alternateASig;
INLINE bits32 extractFloat32Frac( float32 a )
bits32 aSig, zSig;
return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 );
return ( a == b ) || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign || ( (bits32) ( ( a | b )<<1 ) == 0 );
if ( aSign != bSign ) return aSign && ( (bits32) ( ( a | b )<<1 ) != 0 );
normalizeFloat32Subnormal( bits32 aSig, int16 *zExpPtr, bits32 *zSigPtr )
bits32 zSig;
INLINE float32 packFloat32( flag zSign, int16 zExp, bits32 zSig )
return ( ( (bits32) zSign )<<31 ) + ( ( (bits32) zExp )<<23 ) + zSig;
static float32 roundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
normalizeRoundAndPackFloat32( flag zSign, int16 zExp, bits32 zSig )
bits32 zSig;
bits32 aSig;
if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
if ( 0x7FFD <= (bits32) ( zExp - 1 ) ) {
typedef !!!bits32 float32;
static const u_int32_t bits32[32] =
bits24 = (bits28 = bits32 + 4) + 4;
*il |= bits32[obit];
*ir |= bits32[obit-32];
*fl |= bits32[obit];
*fr |= bits32[obit - 32];
*p |= bits32[un_pbox[8 * b + j]];