ISO/IEC/IEEE 60559:2011
(Main)Information technology - Microprocessor Systems - Floating-Point arithmetic
Information technology - Microprocessor Systems - Floating-Point arithmetic
ISO/IEC/IEEE 60559:2011(E) specifies formats and methods for floating-point arithmetic in computer systems - standard and extended functions with single, double, extended, and extendable precision and recommends formats for data interchange. Exception conditions are defined and standard handling of these conditions is specified. It provides a method for computation with floating-point numbers that will yield the same result whether the processing is done in hardware, software, or a combination of the two. The results of the computation will be identical, independent of implementation, given the same input data. Errors, and error conditions, in the mathematical processing will be reported in a consistent manner regardless of implementation. This first edition, published as ISO/IEC/IEEE 60559, replaces the second edition of IEC 60559.
Technologies de l'information — Systèmes de microprocesseurs — Arithmétique flottante
General Information
Relations
Frequently Asked Questions
ISO/IEC/IEEE 60559:2011 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Microprocessor Systems - Floating-Point arithmetic". This standard covers: ISO/IEC/IEEE 60559:2011(E) specifies formats and methods for floating-point arithmetic in computer systems - standard and extended functions with single, double, extended, and extendable precision and recommends formats for data interchange. Exception conditions are defined and standard handling of these conditions is specified. It provides a method for computation with floating-point numbers that will yield the same result whether the processing is done in hardware, software, or a combination of the two. The results of the computation will be identical, independent of implementation, given the same input data. Errors, and error conditions, in the mathematical processing will be reported in a consistent manner regardless of implementation. This first edition, published as ISO/IEC/IEEE 60559, replaces the second edition of IEC 60559.
ISO/IEC/IEEE 60559:2011(E) specifies formats and methods for floating-point arithmetic in computer systems - standard and extended functions with single, double, extended, and extendable precision and recommends formats for data interchange. Exception conditions are defined and standard handling of these conditions is specified. It provides a method for computation with floating-point numbers that will yield the same result whether the processing is done in hardware, software, or a combination of the two. The results of the computation will be identical, independent of implementation, given the same input data. Errors, and error conditions, in the mathematical processing will be reported in a consistent manner regardless of implementation. This first edition, published as ISO/IEC/IEEE 60559, replaces the second edition of IEC 60559.
ISO/IEC/IEEE 60559:2011 is classified under the following ICS (International Classification for Standards) categories: 35.160 - Microprocessor systems. The ICS classification helps identify the subject area and facilitates finding related standards.
ISO/IEC/IEEE 60559:2011 has the following relationships with other standards: It is inter standard links to ISO/IEC 60559:2020, IEC 559:1989. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase ISO/IEC/IEEE 60559:2011 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.
Standards Content (Sample)
ISO/IEC/IEEE 60559
Edition 1.0 2011-06
INTERNATIONAL
STANDARD
Information technology – Microprocessor Systems – Floating-Point arithmetic
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by
any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from ISO, IEC
or IEEE at the respective address given below.
ISO copyright office IEC Central Office The Institute of Electrical and Electronics Engineers, Inc
Case postale 56 3, rue de Varembé 3 Park Avenue
CH-1211 Geneva 20 CH-1211 Geneva 20 US-New York, NY10016-5997
Tel. +41 22 749 01 11 Switzerland USA
Fax +41 22 749 09 47 Email: inmail@iec.ch Email: stds-info@ieee.org
Email: copyright@iso.org Web: www.iec.ch Web: www.ieee.org
Web: www.iso.org
About the IEC
The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
International Standards for all electrical, electronic and related technologies.
About IEC publications
The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
latest edition, a corrigenda or an amendment might have been published.
Catalogue of IEC publications: www.iec.ch/searchpub
The IEC on-line Catalogue enables you to search by a variety of criteria (reference number, text, technical committee,…).
It also gives information on projects, withdrawn and replaced publications.
IEC Just Published: www.iec.ch/online_news/justpub
Stay up to date on all new IEC publications. Just Published details twice a month all new publications released. Available
on-line and also by email.
Electropedia: www.electropedia.org
The world's leading online dictionary of electronic and electrical terms containing more than 20 000 terms and definitions
in English and French, with equivalent terms in additional languages. Also known as the International Electrotechnical
Vocabulary online.
Customer Service Centre: www.iec.ch/webstore/custserv
If you wish to give us your feedback on this publication or need further assistance, please visit the Customer Service
Centre FAQ or contact us:
Email: csc@iec.ch
Tel.: +41 22 919 02 11
ISO/IEC/IEEE 60559
Edition 1.0 2011-06
INTERNATIONAL
STANDARD
Information technology – Microprocessor Systems – Floating-Point arithmetic
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
PRICE CODE
U
ICS 35.200 ISBN 978-2-88912-566-1
ISO/IEC/IEEE FDIS 60559:2010(E)
Contents
1. Overview .1
1.1 Scope .1
1.2 Purpose .1
1.3 Inclusions .1
1.4 Exclusions .2
1.5 Programming environment considerations .2
1.6 Word usage .2
2. Definitions, abbreviations, and acronyms .3
2.1 Definitions .3
2.2 Abbreviations and acronyms .5
3. Floating-point formats .6
3.1 Overview .6
3.2 Specification levels .7
3.3 Sets of floating-point data .7
3.4 Binary interchange format encodings .9
3.5 Decimal interchange format encodings .10
3.6 Interchange format parameters .13
3.7 Extended and extendable precisions .14
4. Attributes and rounding .15
4.1 Attribute specification .15
4.2 Dynamic modes for attributes .15
4.3 Rounding-direction attributes .16
5. Operations .17
5.1 Overview .17
5.2 Decimal exponent calculation .18
5.3 Homogeneous general-computational operations .19
5.4 formatOf general-computational operations .21
5.5 Quiet-computational operations .23
5.6 Signaling-computational operations .24
5.7 Non-computational operations .24
5.8 Details of conversions from floating-point to integer formats .26
5.9 Details of operations to round a floating-point datum to integral value .27
5.10 Details of totalOrder predicate .28
5.11 Details of comparison predicates .29
5.12 Details of conversion between floating-point data and external character sequences .30
6. Infinity, NaNs, and sign bit .34
6.1 Infinity arithmetic .34
6.2 Operations with NaNs .34
6.3 The sign bit .35
7. Default exception handling .36
7.1 Overview: exceptions and flags .36
7.2 Invalid operation .37
7.3 Division by zero .37
7.4 Overflow .37
7.5 Underflow .38
7.6 Inexact .38
8. Alternate exception handling attributes .39
8.1 Overview .39
8.2 Resuming alternate exception handling attributes .39
8.3 Immediate and delayed alternate exception handling attributes .40
Copyright © IEEE 2008. All rights reserved i
9. Recommended operations .41
9.1 Conforming language- and implementation-defined functions .41
9.2 Recommended correctly rounded functions .42
9.3 Operations on dynamic modes for attributes .46
9.4 Reduction operations .46
10. Expression evaluation .48
10.1 Expression evaluation rules .48
10.2 Assignments, parameters, and function values .48
10.3 preferredWidth attributes for expression evaluation .49
10.4 Literal meaning and value-changing optimizations .50
11. Reproducible floating-point results .51
Annex A (informative) Bibliography .53
Annex B (informative) Program debugging support .55
Index of operations .57
ii Copyright © IEEE 2008. All rights reserved
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission)
form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC
participate in the development of International Standards through technical committees established by the
respective organization to deal with particular fields of technical activity. ISO and IEC technical committees
collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in
liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have
established a joint technical committee, ISO/IEC JTC 1.
IEEE Standards documents are developed within the IEEE Societies and the Standards Coordinating Committees
of the IEEE Standards Association (IEEE-SA) Standards Board. The IEEE develops its standards through a
consensus development process, approved by the American National Standards Institute, which brings together
volunteers representing varied viewpoints and interests to achieve the final product. Volunteers are not necessarily
members of the Institute and serve without compensation. While the IEEE administers the process and
establishes rules to promote fairness in the consensus development process, the IEEE does not independently
evaluate, test, or verify the accuracy of any of the information contained in its standards.
The main task of ISO/IEC JTC 1 is to prepare International Standards. Draft International Standards adopted by
the joint technical committee are circulated to national bodies for voting. Publication as an International Standard
requires approval by at least 75 % of the national bodies casting a vote.
Attention is called to the possibility that implementation of this standard may require the use of subject matter
covered by patent rights. By publication of this standard, no position is taken with respect to the existence or
validity of any patent rights in connection therewith. ISO/IEEE is not responsible for identifying essential patents or
patent claims for which a license may be required, for conducting inquiries into the legal validity or scope of
patents or patent claims or determining whether any licensing terms or conditions provided in connection with
submission of a Letter of Assurance or a Patent Statement and Licensing Declaration Form, if any, or in any
licensing agreements are reasonable or non-discriminatory. Users of this standard are expressly advised that
determination of the validity of any patent rights, and the risk of infringement of such rights, is entirely their own
responsibility. Further information may be obtained from ISO or the IEEE Standards Association.
ISO/IEC/IEEE 60559 was prepared by the Microprocessor Standards Committee of the IEEE Computer Society
of the IEEE (as IEEE 754-2008). It was adopted by Joint Technical Committee ISO/IEC JTC 1, Information
technology, Subcommittee SC 25, Interconnection of information technology equipment in parallel with its approval
by the ISO/IEC national bodies, under the “fast-track procedure” defined in the Partner Standards Development
Organization cooperation agreement between ISO and IEEE. IEEE is responsible for the maintenance of this
document with participation and input from ISO/IEC national bodies.
This first edition, published as ISO/IEC/IEEE 60559, replaces the second edition of IEC 60559.
IEEE Introduction
IEEE Standards documents are developed within the IEEE Societies and the Standards Coordinating Committees of the
IEEE Standards Association (IEEE-SA) Standards Board. The IEEE develops its standards through a consensus
development process, approved by the American National Standards Institute, which brings together volunteers
representing varied viewpoints and interests to achieve the final product. Volunteers are not necessarily members of the
Institute and serve without compensation. While the IEEE administers the process and establishes rules to promote
fairness in the consensus development process, the IEEE does not independently evaluate, test, or verify the accuracy
of any of the information or the soundness of any judgments contained in its standards.
Use of an IEEE Standard is wholly voluntary. The IEEE disclaims liability for any personal injury, property or other
damage, of any nature whatsoever, whether special, indirect, consequential, or compensatory, directly or indirectly
resulting from the publication, use of, or reliance upon this, or any other IEEE Standard document.
The IEEE does not warrant or represent the accuracy or content of the material contained herein, and expressly
disclaims any express or implied warranty, including any implied warranty of merchantability or fitness for a specific
purpose, or that the use of the material contained herein is free from patent infringement. IEEE Standards documents
are supplied “AS IS”.
The existence of an IEEE Standard does not imply that there are no other ways to produce, test, measure, purchase,
market, or provide other goods and services related to the scope of the IEEE Standard. Furthermore, the viewpoint
expressed at the time a standard is approved and issued is subject to change brought about through developments in the
state of the art and comments received from users of the standard. Every IEEE Standard is subjected to review at least
every five years for revision or reaffirmation. When a document is more than five years old and has not been
reaffirmed, it is reasonable to conclude that its contents, although still of some value, do not wholly reflect the present
state of the art. Users are cautioned to check to determine that they have the latest edition of any IEEE Standard.
In publishing and making this document available, the IEEE is not suggesting or rendering professional or other
services for, or on behalf of, any person or entity. Nor is the IEEE undertaking to perform any duty owed by any other
person or entity to another. Any person utilizing this, and any other IEEE Standards document, should rely upon his or
her independent judgment in the exercise of reasonable care in any given circumstances or, as appropriate, seek the
advice of a competent professional in determining the appropriateness of a given IEEE standard.
Interpretations: Occasionally questions may arise regarding the meaning of portions of standards as they relate to
specific applications. When the need for interpretations is brought to the attention of IEEE, the Institute will initiate
action to prepare appropriate responses. Since IEEE Standards represent a consensus of concerned interests, it is
important to ensure that any interpretation has also received the concurrence of a balance of interests. For this reason,
IEEE and the members of its societies and Standards Coordinating Committees are not able to provide an instant
response to interpretation requests except in those cases where the matter has previously received formal consideration.
A statement, written or oral, that is not processed in accordance with the IEEE-SA Standards Board Operations Manual
shall not be considered the official position of IEEE or any of its committees and shall not be considered to be, nor be
relied upon as, a formal interpretation of the IEEE. At lectures, symposia, seminars, or educational courses, an
individual presenting information on IEEE standards shall make it clear that his or her views should be considered the
personal views of that individual rather than the formal position, explanation, or interpretation of the IEEE.
Comments for revision of IEEE Standards are welcome from any interested party, regardless of membership affiliation
with IEEE. Suggestions for changes in documents should be in the form of a proposed change of text, together with
appropriate supporting comments. Comments on standards and requests for interpretations should be submitted to the
following address:
Secretary, IEEE-SA Standards Board
445 Hoes Lane
Piscataway, NJ 08854
USA
Authorization to photocopy portions of any individual standard for internal or personal use is granted by The Institute
of Electrical and Electronics Engineers, Inc., provided that the appropriate fee is paid to Copyright Clearance Center.
To arrange for payment of licensing fee, please contact Copyright Clearance Center, Customer Service, 222 Rosewood
Drive, Danvers, MA 01923 USA; +1 978 750 8400. Permission to photocopy portions of any individual standard for
educational classroom use can also be obtained through the Copyright Clearance Center.
This introduction is not part of IEEE Std 754-2008, IEEE Standard for Floating-Point Arithmetic.
This standard is a product of the Floating-Point Working Group of, and sponsored by, the Microprocessor
Standards Committee of the IEEE Computer Society.
This standard provides a discipline for performing floating-point computation that yields results
independent of whether the processing is done in hardware, software, or a combination of the two. For
operations specified in the normative part of this standard, numerical results and exceptions are uniquely
determined by the values of the input data, the operation, and the destination, all under user control.
This standard defines a family of commercially feasible ways for systems to perform binary and decimal
floating-point arithmetic. Among the desiderata that guided the formulation of this standard were:
a) Facilitate movement of existing programs from diverse computers to those that adhere to this
standard as well as among those that adhere to this standard.
b) Enhance the capabilities and safety available to users and programmers who, although not expert
in numerical methods, might well be attempting to produce numerically sophisticated programs.
c) Encourage experts to develop and distribute robust and efficient numerical programs that are
portable, by way of minor editing and recompilation, onto any computer that conforms to this
standard and possesses adequate capacity. Together with language controls it should be possible to
write programs that produce identical results on all conforming systems.
d) Provide direct support for
― execution-time diagnosis of anomalies
― smoother handling of exceptions
― interval arithmetic at a reasonable cost.
e) Provide for development of
― standard elementary functions such as exp and cos
― high precision (multiword) arithmetic
― coupled numerical and symbolic algebraic computation.
f) Enable rather than preclude further refinements and extensions.
In programming environments, this standard is also intended to form the basis for a dialog between the
numerical community and programming language designers. It is hoped that language-defined methods for
the control of expression evaluation and exceptions might be defined in coming years, so that it will be
possible to write programs that produce identical results on all conforming systems. However, it is
recognized that utility and safety in languages are sometimes antagonists, as are efficiency and portability.
Therefore, it is hoped that language designers will look on the full set of operation, precision, and exception
controls described here as a guide to providing the programmer with the ability to portably control
expressions and exceptions. It is also hoped that designers will be guided by this standard to provide
extensions in a completely portable way.
Copyright © IEEE 2008. All rights reserved v
Notice to users
Laws and regulations
Users of these documents should consult all applicable laws and regulations. Compliance with the
provisions of this standard does not imply compliance to any applicable regulatory requirements.
Implementers of the standard are responsible for observing or referring to the applicable regulatory
requirements. IEEE does not, by the publication of its standards, intend to urge action that is not in
compliance with applicable laws, and these documents may not be construed as doing so.
Copyrights
This document is copyrighted by the IEEE. It is made available for a wide variety of both public and private
uses. These include both use, by reference, in laws and regulations, and use in private self-regulation,
standardization, and the promotion of engineering practices and methods. By making this document
available for use and adoption by public authorities and private users, the IEEE does not waive any rights in
copyright to this document.
Updating of IEEE documents
Users of IEEE standards should be aware that these documents may be superseded at any time by the
issuance of new editions or may be amended from time to time through the issuance of amendments,
corrigenda, or errata. An official IEEE document at any point in time consists of the current edition of the
document together with any amendments, corrigenda, or errata then in effect. In order to determine whether
a given document is the current edition and whether it has been amended through the issuance of
amendments, corrigenda, or errata, please visit the IEEE Standards Association Web site at
http://ieeexplore.ieee.org/xpl/standards.jsp, or contact the IEEE at the address listed previously.
For more information about the IEEE Standards Association or the IEEE standards development process,
visit the IEEE-SA Web site at http://standards.ieee.org.
Errata
Errata, if any, for this and all other standards can be accessed at the following URL: http://standards.ieee.org/
reading/ieee/updates/errata/index.html. Users are encouraged to check that URL for errata periodically.
Interpretations
Current interpretations can be accessed at the following URL: http://standards.ieee.org/reading/ieee/interp/
index.html.
Patents
Attention is called to the possibility that implementation of this standard may require use of subject matter
covered by patent rights. By publication of this standard, no position is taken with respect to the existence
or validity of any patent rights in connection therewith. A patent holder or patent applicant has filed a
statement of assurance that it will grant licenses under these rights without compensation or under
reasonable rates, with reasonable terms and conditions that are demonstrably free of any unfair
discrimination to applicants desiring to obtain such licenses. Other Essential Patent Claims may exist for
which a statement of assurance has not been received. The IEEE is not responsible for identifying Essential
Patent Claims for which a license may be required, for conducting inquiries into the legal validity or scope
of Patents Claims, or for determining whether any licensing terms or conditions provided in connection with
submission of a Letter of Assurance, if any, or in any licensing agreements are reasonable or non-
discriminatory. Users of this standard are expressly advised that determination of the validity of any patent
rights, and the risk of infringement of such rights, is entirely their own responsibility. Further information
may be obtained from the IEEE Standards Association.
Copyright © IEEE 2008. All rights reserved vii
Floating-Point arithmetic
IMPORTANT NOTICE: This standard is not intended to assure safety, security, health, or environmental
protection in all circumstances. Implementers of the standard are responsible for determining appropriate safety,
security, environmental, and health practices or regulatory requirements.
This IEEE document is made available for use subject to important notices and legal disclaimers. These notices
and disclaimers appear in all publications containing this document and may be found under the heading
“Important Notice” or “Important Notices and Disclaimers Concerning IEEE Documents”. They can also be
obtained on request from IEEE or viewed at http://standards.ieee.org/IPR/disclaimers.html.
1.0
1. Overview
1.1.0
1.1 Scope
This standard specifies formats and methods for floating-point arithmetic in computer systems—standard
and extended functions with single, double, extended, and extendable precision—and recommends formats
for data interchange. Exception conditions are defined and standard handling of these conditions is
specified.
1.2.0
1.2 Purpose
This standard provides a method for computation with floating-point numbers that will yield the same result
whether the processing is done in hardware, software, or a combination of the two. The results of the
computation will be identical, independent of implementation, given the same input data. Errors, and error
conditions, in the mathematical processing will be reported in a consistent manner regardless of
implementation.
1.3.0
1.3 Inclusions
This standard specifies:
― Formats for binary and decimal floating-point data, for computation and data interchange.
― Addition, subtraction, multiplication, division, fused multiply add, square root, compare, and other
operations.
― Conversions between integer and floating-point formats.
― Conversions between different floating-point formats.
― Conversions between floating-point formats and external representations as character sequences.
― Floating-point exceptions and their handling, including data that are not numbers (NaNs).
1.4.0
1.4 Exclusions
This standard does not specify:
― Formats of integers.
― Interpretation of the sign and significand fields of NaNs.
1.5.0
1.5 Programming environment considerations
This standard specifies floating-point arithmetic in two radices, 2 and 10. A programming environment may
conform to this standard in one radix or in both.
This standard does not define all aspects of a conforming programming environment. Such behavior should
be defined by a programming language definition supporting this standard, if available, and otherwise by a
particular implementation. Some programming language specifications might permit some behaviors to be
defined by the implementation.
Language-defined behavior should be defined by a programming language standard supporting this
standard. Then all implementations conforming both to this floating-point standard and to that language
standard behave identically with respect to such language-defined behaviors. Standards for languages
intended to reproduce results exactly on all platforms are expected to specify behavior more tightly than do
standards for languages intended to maximize performance on every platform.
Because this standard requires facilities that are not currently available in common programming languages,
the standards for such languages might not be able to fully conform to this standard if they are no longer
being revised. If the language can be extended by a function library or class or package to provide a
conforming environment, then that extension should define all the language-defined behaviors that would
normally be defined by a language standard.
Implementation-defined behavior is defined by a specific implementation of a specific programming
environment conforming to this standard. Implementations define behaviors not specified by this standard
nor by any relevant programming language standard or programming language extension.
Conformance to this standard is a property of a specific implementation of a specific programming
environment, rather than of a language specification.
However a language standard could also be said to conform to this standard if it were constructed so that
every conforming implementation of that language also conformed automatically to this standard.
1.6.0
1.6 Word usage
In this standard three words are used to differentiate between different levels of requirements and
optionality, as follows:
― may indicates a course of action permissible within the limits of the standard with no implied
preference (“may” means “is permitted to”)
― shall indicates mandatory requirements strictly to be followed in order to conform to the standard
and from which no deviation is permitted (“shall” means “is required to”)
― should indicates that among several possibilities, one is recommended as particularly suitable,
without mentioning or excluding others; or that a certain course of action is preferred but not
necessarily required; or that (in the negative form) a certain course of action is deprecated but not
prohibited (“should” means “is recommended to”).
Further:
― might indicates the possibility of a situation that could occur, with no implication of the likelihood
of that situation (“might” means “could possibly”)
― see followed by a number is a cross-reference to the clause or subclause of this standard identified
by that number
― NOTE introduces text that is informative (that is, is not a requirement of this standard).
2.0
2. Definitions, abbreviations, and acronyms
2.1.0
2.1 Definitions
For the purposes of this standard, the following terms and definitions apply.
2.1.1 applicable attribute: The value of an attribute governing a particular instance of execution of a
computational operation of this standard. Languages specify how the applicable attribute is determined.
2.1.2 arithmetic format: A floating-point format that can be used to represent floating-point operands or
results for the operations of this standard.
2.1.3 attribute: An implicit parameter to operations of this standard, which a user might statically set in a
programming language by specifying a constant value. The term attribute might refer to the parameter (as in
“rounding-direction attribute”) or its value (as in “roundTowardZero attribute”).
2.1.4 basic format: One of five floating-point representations, three binary and two decimal, whose
encodings are specified by this standard, and which can be used for arithmetic. One or more of the basic
formats is implemented in any conforming implementation.
2.1.5 biased exponent: The sum of the exponent and a constant (bias) chosen to make the biased
exponent’s range nonnegative.
2.1.6 binary floating-point number: A floating-point number with radix two.
2.1.7 block: A language-defined syntactic unit for which a user can specify attributes. Language standards
might provide means for users to specify attributes for blocks of varying scopes, even as large as an entire
program and as small as a single operation.
2.1.8 canonical encoding: The preferred encoding of a floating-point representation in a format. Applied to
declets, significands of finite numbers, infinities, and NaNs, especially in decimal formats.
2.1.9 canonicalized number: A floating-point number whose encoding (if there is one) is canonical.
2.1.10 cohort: The set of all floating-point representations that represent a given floating-point number in a
given floating-point format. In this context −0 and +0 are considered distinct and are in different cohorts.
2.1.11 computational operation: An operation that can signal floating-point exceptions, or that produces
floating-point results, or that produces integer results by rounding them to fit destination formats according
to a rounding direction rule. Comparisons are computational operations.
2.1.12 correct rounding: This standard’s method of converting an infinitely precise result to a floating-
point number, as determined by the applicable rounding direction. A floating-point number so obtained is
said to be correctly rounded.
2.1.13 decimal floating-point number: A floating-point number with radix ten.
2.1.14 declet: An encoding of three decimal digits into ten bits using the densely-packed-decimal encoding
scheme. Of the 1024 possible declets, 1000 canonical declets are produced by computational operations,
while 24 non-canonical declets are not produced by computational operations, but are accepted in operands.
2.1.15 denormalized number: See: subnormal number.
2.1.16 destination: The location for the result of an operation upon one or more operands. A destination
might be either explicitly designated by the user or implicitly supplied by the system (for example,
intermediate results in subexpressions or arguments for procedures). Some languages place the results of
intermediate calculations in destinations beyond the user’s control; nonetheless, this standard defines the
result of an operation in terms of that destination’s format and the operands’ values.
2.1.17 dynamic mode: An optional method of dynamically setting attributes by means of operations of this
standard to set, test, save, and restore them.
2.1.18 exception: An event that occurs when an operation on some particular operands has no outcome
suitable for every reasonable application. That operation might signal one or more exceptions by invoking
the default or, if explicitly requested, a language-defined alternate handling. Note that event, exception, and
signal are defined in diverse ways in different programming environments.
2.1.19 exponent: The component of a finite floating-point representation that signifies the integer power to
which the radix is raised in determining the value of that floating-point representation. The exponent e is
used when the significand is regarded as an integer digit and fraction field, and the exponent q is used when
the significand is regarded as an integer; e = q + p − 1 where p is the precision of the format in digits.
2.1.20 extendable precision format: A format with precision and range that are defined under user control.
2.1.21 extended precision format: A format that extends a supported basic format by providing wider
precision and range.
2.1.22 external character sequence: A representation of a floating-point datum as a sequence of
characters, including the character sequences in floating-point literals in program text.
2.1.23 flag: See: status flag.
2.1.24 floating-point datum: A floating-point number or non-number (NaN) that is representable in a
floating-point format. In this standard, a floating-point datum is not always distinguished from its
representation or encoding.
2.1.25 floating-point number: A finite or infinite number that is representable in a floating-point format. A
floating-point datum that is not a NaN. All floating-point numbers, including zeros and infinities, are signed.
2.1.26 floating-point representation: An unencoded member of a floating-point format, representing a
finite number, a signed infinity, a quiet NaN, or a signaling NaN. A representation of a finite number has
three components: a sign, an exponent, and a significand; its numerical value is the signed product of its
significand and its radix raised to the power of its exponent.
2.1.27 format: A set of representations of numerical values and symbols, perhaps accompanied by an
encoding.
2.1.28 fusedMultiplyAdd: The operation fusedMultiplyAdd(x, y, z) computes (x × y ) + z as if with un-
bounded range and precision, rounding only once to the destination format.
2.1.29 generic operation: An operation of this standard that can take operands of various formats, for
which the formats of the results might depend on the formats of the operands.
2.1.30 homogeneous operation: An operation of this standard that takes operands and returns results all in
the same format.
2.1.31 implementation-defined: Behavior defined by a specific implementation of a specific programming
environment conforming to this standard.
2.1.32 integer format: A format not defined in this standard that represents a subset of the integers and
perhaps additional values representing infinities, NaNs, or negative zeros.
2.1.33 interchange format: A format that has a specific fixed-width encoding defined in this standard.
2.1.34 language-defined: Behavior defined by a programming language standard supporting this standard.
2.1.35 NaN: not a number—a symbolic floating-point datum. There are two kinds of NaN representations:
quiet and signaling. Most operations propagate quiet NaNs without signaling exceptions, and signal the
invalid operation exception when given a signaling NaN operand.
2.1.36 narrower/wider format: If the set of floating-point numbers of one format is a proper subset of
another format, the first is called narrower and the second wider. The wider format might have greater
precision, range, or (usually) both.
2.1.37 non-computational operation: An operation that is not computational.
2.1.38 normal number: For a particular format, a finite non-zero floating-point number with magnitude
emin
greater than or equal to a minimum b value, where b is the radix. Normal numbers can use the full
precision available in a format. In this standard, zero is neither normal nor subnormal.
2.1.39 not a number: See: NaN.
2.1.40 payload: The diagnostic information contained in a NaN, encoded in part of its trailing significand
field.
2.1.41 precision: The maximum number p of significant digits that can be represented in a format, or the
number of digits to that a result is rounded.
2.1.42 preferred exponent: For the result of a decimal operation, the value of the exponent q which
preserves the quantum of the operands when the result is exact.
2.1.43 preferredWidth method: A method used by a programming language to determine the destination
formats for generic operations and functions. Some preferredWidth methods take advantage of the extra
range and precision of wide formats without requiring the program to be written with explicit conversions.
2.1.44 quantum: The quantum of a finite floating-point representation is the value of a unit in the last
position of its significand. This is equal to the radix raised to the exponent q, which is used when the
significand is regarded as an integer.
2.1.45 quiet operation: An operation that never signals any floating-point exception.
2.1.46 radix: The base for the representation of binary or decimal floating-point numbers, two or ten.
2.1.47 result: The floating-point representation or encoding that is delivered to the destination.
2.1.48 signal: When an operation on some particular operands has no outcome suitable for every reasonable
application, that operation might signal one or more exceptions by invoking the default handling or, if
explicitly requested, a language-defined alternate handling selected by the user.
2.1.49 significand: A component of a finite floating-point number containing its significant digits. The
significand can be thought of as an integer, a fraction, or some other fixed-point form, by choosing an
appropriate exponent offset. A decimal or subnormal binary significand can also contain leading zeros.
2.1.50 status flag: A variable that can take two states, raised or lowered. When raised, a status flag might
convey additional system-dependent information, possibly inaccessible to some users. The operations of
this standard, when exceptional, can as a side effect raise some of the following status flags: inexact,
underflow, overflow, divideByZero, and invalid operation.
2.1.51 subnormal number: In a particular format, a non-zero floating-point number with magnitude less
than the magnitude of that format’s smallest normal number. A subnormal number does not use the full
precision available to normal numbers of the same format.
2.1.52 supported format: A floating-point format provided in the programming environment and
implemented in conformance with the requirements of this standard. Thus, a programming environment
might provide more formats than it supports, as only those implemented in accordance with the standard are
said to be supported. Also, an integer format is said to be supported if conversions between that f
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...