equal
deleted
inserted
replaced
2152 f128M_rem( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr ) |
2152 f128M_rem( const float128_t *aPtr, const float128_t *bPtr, float128_t *zPtr ) |
2153 { |
2153 { |
2154 *zPtr = f128_rem( *aPtr, *bPtr ); |
2154 *zPtr = f128_rem( *aPtr, *bPtr ); |
2155 } |
2155 } |
2156 |
2156 |
|
2157 static inline float128_t |
|
2158 f128_negate( float128_t a) { |
|
2159 struct uint128 sigA; |
|
2160 uint_fast64_t uiA64, uiA0; |
|
2161 union ui128_f128 uA; |
|
2162 |
|
2163 uA.f = a; |
|
2164 uiA64 = uA.ui.v64; |
|
2165 uiA0 = uA.ui.v0; |
|
2166 if (isNaNF128UI( uiA64, uiA0 )) return a; |
|
2167 uiA64 ^= 0x80000000; |
|
2168 return uA.f; |
|
2169 } |
|
2170 |
|
2171 static inline void |
|
2172 f128M_negate( const float128_t *aPtr, float128_t *zPtr ) |
|
2173 { |
|
2174 *zPtr = f128_negate( *aPtr ); |
|
2175 } |
|
2176 |
2157 #endif // SUPPORT_QUADFLOAT |
2177 #endif // SUPPORT_QUADFLOAT |
2158 |
2178 |
2159 %} |
2179 %} |
2160 ! ! |
2180 ! ! |
2161 |
2181 |
2583 No, you shalt not divide by zero |
2603 No, you shalt not divide by zero |
2584 " |
2604 " |
2585 ^ ZeroDivide raiseRequestWith:thisContext. |
2605 ^ ZeroDivide raiseRequestWith:thisContext. |
2586 ]. |
2606 ]. |
2587 ^ aNumber remainderFromLongFloat:self |
2607 ^ aNumber remainderFromLongFloat:self |
|
2608 ! |
|
2609 |
|
2610 negated |
|
2611 "return the receiver negated" |
|
2612 |
|
2613 %{ /* NOCONTEXT */ |
|
2614 #ifdef SUPPORT_QUADFLOAT |
|
2615 OBJ newFloat; |
|
2616 float128_t result, myVal; |
|
2617 |
|
2618 myVal = __quadFloatVal(self); |
|
2619 f128M_negate( &myVal, &result ); |
|
2620 __qMKQFLOAT(newFloat, result); |
|
2621 RETURN ( newFloat ); |
|
2622 #endif |
|
2623 %}. |
2588 ! ! |
2624 ! ! |
2589 |
2625 |
2590 !QuadFloat methodsFor:'coercing & converting'! |
2626 !QuadFloat methodsFor:'coercing & converting'! |
2591 |
2627 |
2592 generality |
2628 generality |