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

Status
Withdrawn
Publication Date
06-Jul-2011
Withdrawal Date
06-Jul-2011
Current Stage
9599 - Withdrawal of International Standard
Completion Date
07-Jul-2011
Ref Project

RELATIONS

Buy Standard

Standard
ISO/IEC/IEEE 60559:2011 - Information technology -- Microprocessor Systems -- Floating-Point arithmetic
English language
58 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

ISO/IEC/IEEE 60559
Edition 1.0 2011-06
INTERNATIONAL
STANDARD
Information technology – Microprocessor Systems – Floating-Point arithmetic
ISO/IEC/IEEE 60559:2011(E)
---------------------- Page: 1 ----------------------
THIS PUBLICATION IS COPYRIGHT PROTECTED
Copyright © 2011 IEEE

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
---------------------- Page: 2 ----------------------
ISO/IEC/IEEE 60559
Edition 1.0 2011-06
INTERNATIONAL
STANDARD
Information technology – Microprocessor Systems – Floating-Point arithmetic
INTERNATIONAL
ELECTROTECHNICAL
COMMISSION
PRICE CODE
ICS 35.200 ISBN 978-2-88912-566-1
---------------------- Page: 3 ----------------------
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
---------------------- Page: 4 ----------------------
ISO/IEC/IEEE 60559:2011(E)

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

---------------------- Page: 5 ----------------------
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.

---------------------- Page: 6 ----------------------
ISO/IEC/IEEE 60559:2011(E)
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.

---------------------- Page: 7 ----------------------

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

---------------------- Page: 8 ----------------------
ISO/IEC/IEEE 60559:2011(E)
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.
---------------------- Page: 9 ----------------------
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
---------------------- Page: 10 ----------------------
ISO/IEC/IEEE 60559:2011(E)
---------------------- Page: 11 ----------------------
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

oper
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.