Lines Matching full:reciprocal
80 // [1, 2.0) and get a Q32 approximate reciprocal using a small minimax in ARM_EABI_FNALIAS()
81 // polynomial approximation: reciprocal = 3/4 + 1/sqrt(2) - b/2. This in ARM_EABI_FNALIAS()
84 uint32_t reciprocal = UINT32_C(0x7504f333) - q31b; in ARM_EABI_FNALIAS() local
86 // Now refine the reciprocal estimate using a Newton-Raphson iteration: in ARM_EABI_FNALIAS()
94 correction = -((uint64_t)reciprocal * q31b >> 32); in ARM_EABI_FNALIAS()
95 reciprocal = (uint64_t)reciprocal * correction >> 31; in ARM_EABI_FNALIAS()
96 correction = -((uint64_t)reciprocal * q31b >> 32); in ARM_EABI_FNALIAS()
97 reciprocal = (uint64_t)reciprocal * correction >> 31; in ARM_EABI_FNALIAS()
98 correction = -((uint64_t)reciprocal * q31b >> 32); in ARM_EABI_FNALIAS()
99 reciprocal = (uint64_t)reciprocal * correction >> 31; in ARM_EABI_FNALIAS()
101 // Exhaustive testing shows that the error in reciprocal after three steps in ARM_EABI_FNALIAS()
103 // expectations. We bump the reciprocal by a tiny value to force the error in ARM_EABI_FNALIAS()
107 reciprocal -= 2; in ARM_EABI_FNALIAS()
109 // The numerical reciprocal is accurate to within 2^-28, lies in the in ARM_EABI_FNALIAS()
111 // than the true reciprocal of b. Multiplying a by this reciprocal thus in ARM_EABI_FNALIAS()
118 // is the error in the reciprocal of b scaled by the maximum in ARM_EABI_FNALIAS()
121 rep_t quotient = (uint64_t)reciprocal*(aSignificand << 1) >> 32; in ARM_EABI_FNALIAS()