Lines Matching +full:high +full:- +full:efficiency
23 * n0 = ((*(int*)&one)>>29)^1; * index of high word *
24 * ix0 = *(n0+(int*)&x); * high word of x *
25 * ix1 = *((1-n0)+(int*)&x); * low word of x *
27 * value. That is non-ANSI, and, moreover, the gcc instruction
136 /* Get a 64-bit int from a double. */
172 /* Set a double from a 64-bit int. */
310 /* The above works on non-i386 too, but we use this to check v. */
316 * Attempt to get strict C99 semantics for assignment with non-C99 compilers.
378 __s = __w - (a); \
379 (b) = ((a) - (__w - __s)) + ((b) - __s); \
386 * "Normalize" the terms in the infinite-precision expression a + b for
398 * STRICT_ASSIGN() like we do elsewhere, since the efficiency of this
399 * algorithm would be destroyed by non-null strict assignments. (The
400 * compilers are correct to be broken -- the efficiency of all floating
405 * any extra precision into the type of 'a' -- 'a' should have type float_t,
408 * reduce their own extra-precision and efficiency problems. In
421 (b) = ((a) - __w) + (b); \
427 __r = __ia - __vw; \
436 (b) = ((a) - __w) + (b); \
458 * or by having |c| a few percent smaller than |a|. Pre-normalization of
462 * exercise 19). We gain considerable efficiency by requiring the terms to
531 * underflow, sign and efficiency bugs by rewriting I*y as
533 * In particular, I*Inf is corrupted to NaN+I*Inf, and I*-0 is corrupted
534 * to -0.0+I*0.0.
584 * this here to reduce those problems, and have not solved the efficiency
587 * centralized here and should copy any solution of the efficiency problems.
607 return ((double)(x + 0x1.8p52) - 0x1.8p52); in rnint()
615 * extra precision case, usually without losing efficiency. in rnintf()
617 return ((float)(x + 0x1.8p23F) - 0x1.8p23F); in rnintf()
635 return (x + __CONCAT(0x1.8p, LDBL_MANT_DIG) / 2 - in rnintl()
690 * The following are fast floor macros for 0 <= |x| < 0x1p(N-1), where
692 * half-cycle trignometric functions (e.g., sinpi(x)).
695 (j0) = (((ix) >> 23) & 0xff) - 0x7f; \
701 (j0) = (((ix) >> 20) & 0x7ff) - 0x3ff; \
706 (lx) &= ~((uint32_t)0xffffffff >> ((j0) - 20)); \
712 j0 = ix - 0x3fff + 1; \
715 (lx) &= ~((((lx) << 32)-1) >> (j0)); \
718 _m = (uint64_t)-1 >> (j0); \
729 e = u.bits.exp - 16383; \
731 m = ((1llu << 49) - 1) >> (e + 1); \
735 m = (uint64_t)-1 >> (e - 48); \
739 (ar) = (x) - (ai); \
754 if (!(rp)->lo_set) \
755 RETURNF((rp)->hi); \
756 RETURNF((rp)->hi + (rp)->lo); \
759 if (!(rp)->lo_set) \
760 RETURNI((rp)->hi); \
761 RETURNI((rp)->hi + (rp)->lo); \