Skip to main content

Range Reduction

  • Chapter
  • First Online:
Elementary Functions
  • 1819 Accesses

Abstract

The algorithms presented in the previous chapters for evaluating the elementary functions only give correct result if the argument is within a given bounded interval.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 99.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    In the radix of the floating-point system being used —2 in general.

  2. 2.

    Gal and Bachelis [199] use the same kind of range reduction, but slightly differently. Some accuracy is lost when subtracting \({{\mathrm{RN}}}(kC_2)\) from \({{\mathrm{RN}}}(x-{{\mathrm{RN}}}(kC_1))\). To avoid this, they keep these terms separate. This is also done by Tang (see section 6.2.1).

  3. 3.

    Unless subtraction is not correctly rounded. To my knowledge, there is no current computer with such a poor arithmetic.

  4. 4.

    http://lipforge.ens-lyon.fr/projects/crlibm/.

  5. 5.

    Important notice: one can easily find an even better approximation to C as a sum of two floating-point numbers, however, it may not satisfy the property presented in Theorem 18, that is, \(x - k\cdot {}(C_1+C_2)\) may not be computed exactly by Algorithm 23.

  6. 6.

    Beware: \(RN(-k \cdot C_3)\) is not necessarily very small in front of \(v_\ell \). If we need that property—which is likely if we want to evaluate some approximating polynomial at the reduced argument—some further manipulations are needed.

  7. 7.

    If \(Q_{j}\) is less than \(\beta ^{p-1}\), this value does not actually correspond to a floating-point number of exponent exponent. In such a case, the actual lowest value of \(\epsilon \) is larger. However, the value corresponding to \(Q_{j}\) is actually attained for another value of the exponent: let \(\ell \) be the integer such that \(\beta ^{p-1} \le \beta ^\ell {}Q_{j} < \beta ^p\); from

    $$ CQ_{j}\left| \frac{P_{j}}{Q_{j}} - \frac{\beta ^{exponent-p+1}}{C}\right| = C\beta ^{\ell }Q_{j}\left| \frac{P_{j}}{\beta ^{\ell }Q_{j}} - \frac{\beta ^{exponent-\ell -p+1}}{C}\right| $$

    we deduce that the value of \(\epsilon \) corresponding to \(Q_{j}\) is actually attained when the exponent equals \(exponent-\ell \). Therefore the fact that \(Q_{j}\) may be less than \(\beta ^{p-1}\) has no influence on the final result, that is, the search for the lowest possible value of \(\epsilon \).

  8. 8.

    This formula looks correct only for positive values of \(\nu \). It would be more correct, although maybe less clear, to write: \(r = \sum _{i=\nu }^{N-1}x_im_i + \sum _{i=-p}^{\nu -1}x_i2^i\).

  9. 9.

    We denote \(\lfloor x \rceil \) the integer that is nearest to x.

  10. 10.

    In all practical cases, C is a transcendental number, so that \(m_i^+\) and \(m_i^-\) are never equal to \(-C\), 0, or \(+C\).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jean-Michel Muller .

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer Science+Business Media New York

About this chapter

Cite this chapter

Muller, JM. (2016). Range Reduction. In: Elementary Functions. Birkhäuser, Boston, MA. https://doi.org/10.1007/978-1-4899-7983-4_11

Download citation

Publish with us

Policies and ethics