A commonly used argument reduction technique in elementary function computations begins with two positive floating point numbers \alpha and \gamma that approximate (usually irrational but not necessarily) numbers 1/C and C, e.g., C = 2\pi for trigonometric functions and ln 2 for ex. Given an argument to the function of interest it extracts z as defined by x\alpha = z + \zeta with z = k2-N and |\zeta| ≤ 2-N-1, where k, N are integers and N ≥ 0 is preselected, and then computes u = x - z\gamma. Usually z\gamma takes more bits than the working precision provides for storing its significand, and thus exact x-z\gamma may not be represented exactly by a floating point number of the same precision. This will cause performance penalty when the working precision is the highest available on the underlying hardware and thus considerable extra work is needed to get all the bits of x - z\gamma right. This paper presents theorems that show under mild conditions that can be easily met on today?s computer hardware and still allow \alpha \approx 1/C and \gamma \approx C to almost the full working precision, x-z. is a floating point number of the same precision. An algorithmic procedure based on the theorems is obtained. The results will enhance performance, in particular on machines that has hardware support for fused-multiply-add (fma) instruction(s).
Citation:
Ren-Cang Li, Sylvie Boldo, Marc Daumas, "Theorems on Efficient Argument Reductions," arith, pp.129, 16th IEEE Symposium on Computer Arithmetic (ARITH-16 '03), 2003