Shopping Cart

No products in the cart.

BS ISO/IEC 10967-1:2012

$215.11

Information technology. Language independent arithmetic – Integer and floating point arithmetic

Published By Publication Date Number of Pages
BSI 2012 148
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. Weā€™re here to assist you 24/7.
Email:[email protected]

This part of ISO/IEC 10967 specifies properties of many of the integer and floating point datatypes available in a variety of programming languages in common use for mathematical and numerical applications.

It is not the purpose of this part of ISO/IEC 10967 to ensure that an arbitrary numerical function can be so encoded as to produce acceptable results on all conforming datatypes. Rather, the goal is to ensure that the properties of the arithmetic on a conforming datatype are made available to the programmer. Therefore, it is not reasonable to demand that a substantive piece of software run on every implementation that can claim conformity to this part of ISO/IEC 10967.

An implementor may choose any combination of hardware and software support to meet the specifications of this part of ISO/IEC 10967. It is the datatypes and operations on values of those datatypes, of the computing environment as seen by the programmer/user, that does or does not conform to the specifications.

The term implementation (of this part of ISO/IEC 10967) denotes the total computing environment pertinent to this part of ISO/IEC 10967, including hardware, language processors, subroutine libraries, exception handling facilities, other software, and documentation.

1.1 Inclusions

This part of ISO/IEC 10967 provides specifications for properties of integer and floating point datatypes as well as basic operations on values of these datatypes. Specifications are included for bounded and unbounded integer datatypes, as well as floating point datatypes. Boundaries for the occurrence of exceptions and the maximum error allowed are prescribed for each specified operation. Also the result produced by giving a special value operand, such as an infinity or a NaN (not-a-number), is prescribed for each specified floating point operation.

This part of ISO/IEC 10967 provides specifications for:

  1. The set of required values of the arithmetic datatype.

  2. A number of arithmetic operations, including:

    1. comparison operations on two operands of the same type,

    2. primitive operations (addition, subtraction, etc.) with operands of the same type,

    3. operations that access properties of individual values,

    4. conversion operations of a value from one arithmetic datatype to another arithmetic datatype, where at least one of the datatypes is conforming to this part of ISO/IEC 10967, and

    5. numerals for all values specified by this part of ISO/IEC 10967 for a conforming datatype.

This part of ISO/IEC 10967 also provides specifications for:

  1. The results produced by an included floating point operation when one or more argument values are IEC 60559 special values.

  2. Program-visible parameters that characterise the values and certain aspects of the operations of an arithmetic datatype.

  3. Methods for reporting arithmetic exceptions.

1.2 Exclusions

This part of ISO/IEC 10967 provides no specifications for:

  1. Arithmetic and comparison operations whose operands are of more than one datatype. This part of ISO/IEC 10967 neither requires nor excludes the presence of such “mixed operand” operations.

  2. An interval datatype, or the operations on such data. This part of ISO/IEC 10967 neither requires nor excludes such data or operations.

  3. A fixed point datatype, or the operations on such data. This part of ISO/IEC 10967 neither requires nor excludes such data or operations.

  4. A rational datatype, or the operations on such data. This part of ISO/IEC 10967 neither requires nor excludes such data or operations.

  5. The properties of arithmetic datatypes that are not related to the numerical process, such as the representation of values on physical media.

  6. The properties of integer and floating point datatypes that properly belong in programming language standards or other specifications. Examples include:

    1. the syntax of numerals and expressions in the programming language, including the precedence of operators in the programming language,

    2. the syntax used for parsed (input) or generated (output) character string forms for numerals by any specific programming language or library,

    3. the presence or absence of automatic datatype coercions, and the consequences of applying an operation to values of improper type, or to uninitialised data,

    4. the rules for assignment, parameter passing, and returning value.

      NOTE ā€” See Clause 7 and Annex D for a discussion of language standards and language bindings.

The internal representation of values is beyond the scope of this standard. E.g., the value of the exponent bias, if any, is not specified, nor available as a parameter specified by this part of ISO/IEC 10967. Internal representations need not be unique, nor is there a requirement for identifiable fields (for sign, exponent, and so on).

Furthermore, this part of ISO/IEC 10967 does not provide specifications for how the operations should be implemented or which algorithms are to be used for the various operations.

PDF Catalog

PDF Pages PDF Title
3 Preamble
4 Copyright notice
5 Table of contents
9 Foreword
10 Introduction
The aims
The content
11 The benefits
13 Clauses
1 Scope
1.1 Inclusions
14 1.2 Exclusions
15 2 Conformity
16 3 Normative references
4 Symbols and definitions
4.1 Symbols
4.1.1 Operators and relations
17 4.1.2 Sets and intervals
4.1.3 Exceptional values
18 4.1.4 Special values
4.1.5 The Boolean datatype
4.1.6 Operation specification framework
19 4.2 Definitions of terms
24 5 Specifications for integer and floating point datatypes and operations
25 5.1 Integer datatypes and operations
26 5.1.1 Integer result function
5.1.2 Integer operations
5.1.2.1 Comparisons
27 5.1.2.2 Basic arithmetic
29 5.2 Floating point datatypes and operations
31 5.2.1 Conformity to IEC 60559
5.2.2 Range and granularity constants
5.2.3 Approximate operations
32 5.2.4 Rounding and rounding constants
33 5.2.5 Floating point result function
34 5.2.6 Floating point operations
5.2.6.1 Comparisons
36 5.2.6.2 Basic arithmetic
39 5.2.6.3 Value dissection
41 5.2.6.4 Value splitting
5.3 Operations for conversion between numeric datatypes
42 5.3.1 Integer to integer conversions
43 5.3.2 Floating point to integer conversions
5.3.3 Integer to floating point conversions
44 5.3.4 Floating point to floating point conversions
5.3.5 Floating point to fixed point conversions
46 5.3.6 Fixed point to floating point conversions
5.4 Numerals as operations in a programming language
5.4.1 Numerals for integer datatypes
47 5.4.2 Numerals for floating point datatypes
6 Notification
6.1 Model for handling of notifications
48 6.2 Notification alternatives
6.2.1 Notification by recording in indicators
50 6.2.2 Notification by alteration of control flow
6.2.3 Notification by termination with message
51 6.3 Delays in notification
6.4 User selection of alternative for notification
7 Relationship with language standards
53 8 Documentation requirements
55 Annexes
Annex A (informative) Partial conformity
56 A.1 Integer overflow notification relaxation
A.2 Infinitary notification relaxation
A.3 Inexact notification relaxation
57 A.4 Underflow notification relaxation
A.5 Subnormal values relaxation
A.6 Accuracy relaxation for add, subtract, multiply, and divide
59 A.7 Accuracy relaxation for floating point conversion
63 Annex B (informative) IEC 60559 bindings
B.1 Summary
67 B.2 Notification
69 Annex C (informative) Rationale
C.1 Scope
C.1.1 Inclusions
C.1.2 Exclusions
70 C.1.3 Companion parts to this part
C.2 Conformity
71 C.2.1 Validation
C.3 Normative references
C.4 Symbols and definitions
72 C.4.1 Symbols
C.4.2 Definitions of terms
73 C.5 Specifications for integer and floating point datatypes and operations
74 C.5.1 Integer datatypes and operations
More on integer datatypes
C.5.1.0.1 Unbounded integers
75 C.5.1.0.2 Bounded non-modulo integers
76 C.5.1.0.3 Modulo integers
C.5.1.1 Integer result function
C.5.1.2 Integer operations
C.5.1.2.1 Comparisons
77 C.5.1.2.2 Basic arithmetic
C.5.2 Floating point datatypes and operations
78 More on floating point datatypes
C.5.2.0.1 Constraints on the floating point parameters
80 C.5.2.0.2 Radix complement floating point
C.5.2.1 Conformity to IEC 60559
81 C.5.2.1.1 Subnormal numbers
C.5.2.1.2 Signed zero
C.5.2.1.3 Infinities and NaNs
82 C.5.2.2 Range and granularity constants
C.5.2.2.1 Relations among floating point datatypes
83 C.5.2.3 Approximate operations
C.5.2.4 Rounding and rounding constants
85 C.5.2.5 Floating point result function
C.5.2.6 Floating point operations
C.5.2.6.1 Comparisons
C.5.2.6.2 Basic arithmetic
86 C.5.2.6.3 Value dissection
C.5.2.6.4 Value splitting
87 C.5.2.7 Levels of predictability
88 C.5.2.8 Identities
90 C.5.2.9 Precision, accuracy, and error
91 C.5.2.9.1 LIA-1 and error
92 C.5.2.9.2 Empirical and modelling errors
C.5.2.9.3 Propagation of errors
93 C.5.2.10 Extra precision
94 C.5.3 Operations for conversion between numeric datatypes
95 C.5.4 Numerals as operations in a programming language
C.5.4.1 Numerals for integer datatypes
C.5.4.2 Numerals for floating point datatypes
C.6 Notification
96 C.6.1 Model handling of notifications
C.6.2 Notification alternatives
C.6.2.1 Notification by recording in indicators
97 C.6.2.2 Notification by alteration of control flow
98 C.6.2.3 Notification by termination with message
C.6.3 Delays in notification
C.6.4 User selection of alternative for notification
99 C.7 Relationship with language standards
100 C.8 Documentation requirements
101 Annex D (informative) Example bindings for specific languages
102 D.1 Ada
108 D.2 C
116 D.3 C++
123 D.4 Fortran
127 D.5 Common Lisp
133 Annex E (informative) Example of a conformity statement
E.1 Types
E.2 Integer parameters
134 E.3 Floating point parameters
E.4 Expressions
E.5 Notification
137 Annex F (informative) Example programs
F.1 Verifying platform acceptability
F.2 Selecting alternate code
138 F.3 Terminating a loop
F.4 Estimating error
F.5 Saving exception state
139 F.6 Fast versus accurate
F.7 High-precision multiply
141 Bibliography
145 Blank Page
146 Blank Page
BS ISO/IEC 10967-1:2012
$215.11