Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Warning: preg_replace(): Compilation failed: this version of PCRE is not compiled with PCRE_UTF8 support at offset 0 in /web/Sites/BlickinsBuch.de/functions.php on line 241 Blickinsbuch.de - Handbook of Floating-Point Arithmetic - Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin, Claude-Pierre Jeannerod, Lefevre Vincent, Guillaume Melquiond
     Artikel werden geladen

    Handbook of Floating-Point Arithmetic

    Handbook of Floating-Point Arithmetic

    Autoren:

    Verlag:
    Springer Basel AG  Weitere Titel dieses Verlages anzeigen

    Erschienen: Dezember 2009
    Seiten: 572
    Sprache: Englisch
    Preis: 117.69 €
    Illustration: 100 black white illustrations, 100 black white line drawings
    Maße: 264x187x43
    Einband: Gebundene Ausgabe
    ISBN: 9780817647049

    Inhaltsverzeichnis

    Prefacexv
    List of Figuresxvii
    List of Tablesxxi
    I Introduction, Basic Definitions, and Standards1
    1Introduction3
    1.1Some History3
    1.2Desirable Properties6
    1.3Some Strange Behaviors7
    1.3.1Some famous bugs7
    1.3.2Difficult problems8
    2Definitions and Basic Notions13
    2.1Floating-Point Numbers13
    2.2Rounding20
    2.2.1Rounding modes20
    2.2.2Useful properties22
    2.2.3Relative error due to rounding23
    2.3Exceptions25
    2.4 Lost or Preserved Properties of the Arithmetic on the Real
    Numbers27
    2.5Note on the Choice of the Radix29
    2.5.1Representation errors29
    2.5.2A case for radix 1030
    2.6Tools for Manipulating Floating-Point Errors32
    2.6.1The ulp function32
    2.6.2Errors in ulps and relative errors37
    2.6.3An example: iterated products37
    2.6.4Unit roundoff39
    2.7Note on Radix Conversion40
    2.7.1Conditions on the formats40
    2.7.2Conversion algorithms43
    2.8The Fused Multiply-Add (FMA) Instruction51
    2.9Interval Arithmetic51
    2.9.1Intervals with floating-point bounds52
    2.9.2Optimized rounding52
    3Floating-Point Formats and Environment55
    3.1The IEEE 754-1985 Standard56
    3.1.1Formats specified by IEEE 754-198556
    3.1.2Little-endian, big-endian60
    3.1.3Rounding modes specified by IEEE 754-198561
    3.1.4Operations specified by IEEE 754-198562
    3.1.5Exceptions specified by IEEE 754-198566
    3.1.6Special values69
    3.2The IEEE 854-1987 Standard70
    3.2.1Constraints internal to a format70
    3.2.2Various formats and the constraints between them71
    3.2.3 Conversions between floating-point numbers and
    decimal strings72
    3.2.4Rounding73
    3.2.5Operations73
    3.2.6Comparisons74
    3.2.7Exceptions74
    3.3The Need for a Revision74
    3.3.1A typical problem: "double rounding"75
    3.3.2Various ambiguities77
    3.4The New IEEE 754-2008 Standard79
    3.4.1Formats specified by the revised standard80
    3.4.2Binary interchange format encodings81
    3.4.3Decimal interchange format encodings82
    3.4.4Larger formats92
    3.4.5Extended and extendable precisions92
    3.4.6Attributes93
    3.4.7Operations specified by the standard97
    3.4.8Comparisons99
    3.4.9Conversions99
    3.4.10Default exception handling100
    3.4.11Recommended transcendental functions103
    3.5Floating-Point Hardware in Current Processors104
    3.5.1The common hardware denominator104
    3.5.2Fused multiply-add104
    3.5.3Extended precision104
    3.5.4Rounding and precision control105
    3.5.5SIMD instructions106
    3.5.6Floating-point on x86 processors: SSE2 versus x87106
    3.5.7Decimal arithmetic107
    3.6Floating-Point Hardware in Recent Graphics Processing Units108
    3.7Relations with Programming Languages109
    3.7.1The Language Independent Arithmetic (LIA) standard109
    3.7.2Programming languages110
    3.8Checking the Environment110
    3.8.1 MACHAR....................................................Ill
    3.8.2 Paranoia......................................................Ill
    3.8.3UCBTest115
    3.8.4TestFloat116
    3.8.5IeeeCC754116
    3.8.6Miscellaneous116
    II Cleverly Using Floating-Point Arithmetic117
    4Basic Properties and Algorithms119
    4.1Testing the Computational Environment119
    4.1.1Computing the radix119
    4.1.2Computing the precision121
    4.2Exact Operations122
    4.2.1Exact addition122
    4.2.2Exact multiplications and divisions124
    4.3Accurate Computations of Sums of Two Numbers125
    4.3.1The Fast2Sum algorithm126
    4.3.2The 2Sum algorithm129
    4.3.3If we do not use rounding to nearest131
    4.4Computation of Products132
    4.4.1Veltkamp splitting132
    4.4.2Dekker's multiplication algorithm135
    4.5Complex numbers139
    4.5.1Various error bounds140
    4.5.2Error bound for complex multiplication141
    4.5.3Complex division144
    4.5.4Complex square root149
    5The Fused Multiply-Add Instruction151
    5.1The 2MultFMA Algorithm152
    5.2Computation of Residuals of Division and Square Root153
    5.3Newton-Raphson-Based Division with an FMA155
    5.3.1Variants of the Newton-Raphson iteration155
    5.3.2 Using the Newton-Raphson iteration for correctly
    rounded division160
    5.4Newton-Raphson-Based Square Root with an FMA167
    5.4.1The basic iterations167
    5.4.2 Using the Newton-Raphson iteration for correctly
    rounded square roots168
    5.5Multiplication by an Arbitrary-Precision Constant171
    5.5.1 Checking for a given constant C if Algorithm 5.2 will
    always work172
    5.6Evaluation of the Error of an FMA175
    5.7Evaluation of Integer Powers177
    6 Enhanced Floating-Point Sums, Dot Products, and Polynomial
    Values181
    6.1Preliminaries182
    6.1.1Floating-point arithmetic models183
    6.1.2Notation for error analysis and classical error estimates184
    6.1.3Properties for deriving running error bounds187
    6.2Computing Validated Running Error Bounds188
    6.3Computing Sums More Accurately190
    6.3.1Reordering the operands, and a bit more190
    6.3.2Compensated sums192
    6.3.3Implementing a "long accumulator"199
    6.3.4On the sum of three floating-point numbers199
    6.4Compensated Dot Products201
    6.5Compensated Polynomial Evaluation203
    7Languages and Compilers205
    7.1A Play with Many Actors205
    7.1.1Floating-point evaluation in programming languages206
    7.1.2Processors, compilers, and operating systems208
    7.1.3In the hands of the programmer209
    7.2Floating Point in the C Language209
    7.2.1Standard C99 headers and IEEE 754-1985 support209
    7.2.2Types210
    7.2.3Expression evaluation213
    7.2.4Code transformations216
    7.2.5Enabling unsafe optimizations217
    7.2.6Summary: a few horror stories218
    7.3Floating-Point Arithmetic in the C++ Language220
    7.3.1Semantics220
    7.3.2Numeric limits221
    7.3.3Overloaded functions222
    7.4FORTRAN Floating Point in a Nutshell223
    7.4.1Philosophy223
    7.4.2IEEE 754 support in FORTRAN226
    7.5Java Floating Point in a Nutshell227
    7.5.1Philosophy227
    7.5.2Types and classes228
    7.5.3Infinities, NaNs, and signed zeros230
    7.5.4Missing features231
    7.5.5Reproducibility232
    7.5.6The BigDecimal package233
    7.6Conclusion234
    III Implementing Floating-Point Operators237
    8Algorithms for the Five Basic Operations239
    8.1Overview of Basic Operation Implementation239
    8.2Implementing IEEE 754-2008 Rounding241
    8.2.1 Rounding a nonzero finite value with unbounded
    exponent range241
    8.2.2Overflow243
    8.2.3Underflow and subnormal results244
    8.2.4The inexact exception245
    8.2.5Rounding for actual operations245
    8.3Floating-Point Addition and Subtraction246
    8.3.1Decimal addition249
    8.3.2Decimal addition using binary encoding250
    8.3.3Subnormal inputs and outputs in binary addition251
    8.4Floating-Point Multiplication251
    8.4.1Normal case252
    8.4.2Handling subnormal numbers in binary multiplication252
    8.4.3Decimal specifics253
    8.5Floating-Point Fused Multiply-Add254
    8.5.1Case analysis for normal inputs254
    8.5.2Handling subnormal inputs258
    8.5.3Handling decimal cohorts259
    8.5.4Overview of a binary FMA implementation259
    8.6Floating-Point Division262
    8.6.1Overview and special cases262
    8.6.2Computing the significand quotient263
    8.6.3Managing subnormal numbers264
    8.6.4The inexact exception265
    8.6.5Decimal specifics265
    8.7Floating-Point Square Root265
    8.7.1Overview and special cases265
    8.7.2Computing the significand square root266
    8.7.3Managing subnormal numbers267
    8.7.4The inexact exception267
    8.7.5Decimal specifics267
    9Hardware Implementation of Floating-Point Arithmetic269
    9.1Introduction and Context269
    9.1.1Processor internal formats269
    9.1.2Hardware handling of subnormal numbers270
    9.1.3Full-custom VLSI versus reconfigurable circuits271
    9.1.4Hardware decimal arithmetic272
    9.1.5Pipelining273
    9.2The Primitives and Their Cost274
    9.2.1Integer adders274
    9.2.2Digit-by-integer multiplication in hardware280
    9.2.3Using nonstandard representations of numbers280
    9.2.4Binary integer multiplication281
    9.2.5Decimal integer multiplication283
    9.2.6Shifters284
    9.2.7Leading-zero counters284
    9.2.8 Tables and table-based methods for fixed-point
    function approximation286
    9.3Binary Floating-Point Addition288
    9.3.1Overview288
    9.3.2A first dual-path architecture289
    9.3.3Leading-zero anticipation291
    9.3.4Probing further on floating-point adders295
    9.4Binary Floating-Point Multiplication296
    9.4.1Basic architecture296
    9.4.2FPGA implementation296
    9.4.3VLSI implementation optimized for delay298
    9.4.4Managing subnormals301
    9.5Binary Fused Multiply-Add302
    9.5.1Classic architecture303
    9.5.2To probe further305
    9.6Division305
    9.6.1Digit-recurrence division306
    9.6.2Decimal division309
    9.7Conclusion: Beyond the FPU309
    9.7.1Optimization in context of standard operators310
    9.7.2Operation with a constant operand311
    9.7.3Block floating point313
    9.7.4Specific architectures for accumulation313
    9.7.5Coarser-grain operators317
    9.8Probing Further320
    10Software Implementation of Floating-Point Arithmetic321
    10.1Implementation Context322
    10.1.1Standard encoding of binary floating-point data322
    10.1.2Available integer operators323
    10.1.3First examples326
    10.1.4Design choices and optimizations328
    10.2Binary Floating-Point Addition329
    10.2.1Flandling special values330
    10.2.2Computing the sign of the result332
    10.2.3 Swapping the operands and computing the alignment
    shift333
    10.2.4Getting the correctly rounded result335
    10.3Binary Floating-Point Multiplication341
    10.3.1Handling special values341
    10.3.2Sign and exponent computation343
    10.3.3Overflow detection345
    10.3.4Getting the correctly rounded result346
    10.4Binary Floating-Point Division349
    10.4.1Handling special values350
    10.4.2Sign and exponent computation351
    10.4.3Overflow detection354
    10.4.4Getting the correctly rounded result355
    10.5Binary Floating-Point Square Root361
    10.5.1Handling special values362
    10.5.2Exponent computation364
    10.5.3Getting the correctly rounded result365
    IV Elementary Functions373
    11Evaluating Floating-Point Elementary Functions375
    11.1Basic Range Reduction Algorithms379
    11.1.1Cody and Waite's reduction algorithm379
    11.1.2Payne and Hanek's algorithm381
    11.2Bounding the Relative Error of Range Reduction382
    11.3More Sophisticated Range Reduction Algorithms384
    11.3.1 An example of range reduction for the exponential
    function386
    11.3.2An example of range reduction for the logarithm387
    11.4Polynomial or Rational Approximations388
    11.4.1I? case389
    11.4.2L00, or minimax case390
    11.4.3"Truncated" approximations392
    11.5Evaluating Polynomials393
    11.6Correct Rounding of Elementary Functions to binary64394
    11.6.1 The Table Maker's Dilemma and Ziv's onion peeling
    strategy394
    11.6.2When the TMD is solved395
    11.6.3Rounding test396
    11.6.4Accurate second step400
    11.6.5Error analysis and the accuracy/performance tradeoff401
    11.7Computing Error Bounds402
    11.7.1The point with efficient code402
    11.7.2Example: a "double-double" polynomial evaluation403
    12Solving the Table Maker's Dilemma405
    12.1Introduction405
    12.1.1The Table Maker's Dilemma406
    12.1.2Brief history of the TMD410
    12.1.3Organization of the chapter411
    12.2Preliminary Remarks on the Table Maker's Dilemma412
    12.2.1Statistical arguments: what can be expected in practice412
    12.2.2In some domains, there is no need to find worst cases416
    12.2.3 Deducing the worst cases from other functions or
    domains419
    12.3The Table Maker's Dilemma for Algebraic Functions420
    12.3.1Algebraic and transcendental numbers and functions420
    12.3.2The elementary case of quotients422
    12.3.3Around Liouville's theorem424
    12.3.4 Generating bad rounding cases for the square root
    using Hensel 2-adic lifting425
    12.4Solving the Table Maker's Dilemma for Arbitrary Functions429
    12.4.1 Lindemann's theorem: application to some
    transcendental functions429
    12.4.2A theorem of Nesterenko and Waldschmidt430
    12.4.3A first method: tabulated differences432
    12.4.4 From the TMD to the distance between a grid and a
    segment434
    12.4.5Linear approximation: Lefevre's algorithm436
    12.4.6The SLZ algorithm443
    12.4.7Periodic functions on large arguments448
    12.5Some Results449
    12.5.1 Worst cases for the exponential, logarithmic,
    trigonometric, and hyperbolic functions449
    12.5.2A special case: integer powers458
    12.6Current Limits and Perspectives458
    V Extensions461
    13Formalisms for Certifying Floating-Point Algorithms463
    13.1Formalizing Floating-Point Arithmetic463
    13.1.1Defining floating-point numbers464
    13.1.2Simplifying the definition466
    13.1.3Defining rounding operators467
    13.1.4Extending the set of numbers470
    13.2Formalisms for Certifying Algorithms by Hand471
    13.2.1Hardware units471
    13.2.2Low-level algorithms472
    13.2.3Advanced algorithms473
    13.3Automating Proofs474
    13.3.1Computing on bounds475
    13.3.2Counting digits477
    13.3.3Manipulating expressions479
    13.3.4Handling the relative error483
    13.4Using Gappa484
    13.4.1Toy implementation of sine484
    13.4.2Integer division on Itanium488
    14Extending the Precision493
    14.1Double-Words, Triple-Words494
    14.1.1Double-word arithmetic495
    14.1.2Static triple-word arithmetic498
    14.1.3Quad-word arithmetic500
    14.2Floating-Point Expansions503
    14.3Floating-Point Numbers with Batched Additional Exponent509
    14.4Large Precision Relying on Processor Integers510
    14.4.1 Using arbitrary-precision integer arithmetic for
    arbitrary-precision floating-point arithmetic512
    14.4.2 A brief introduction to arbitrary-precision integer
    arithmetic513
    VI Perspectives and Appendix517
    15Conclusion and Perspectives519
    16Appendix: Number Theory Tools for Floating-Point Arithmetic521
    16.1Continued Fractions521
    16.2The LLL Algorithm524
    Bibliography529
    Index567