ISO/IEC 10967-2:2001
(Main)Information technology — Language independent arithmetic — Part 2: Elementary numerical functions
Information technology — Language independent arithmetic — Part 2: Elementary numerical functions
This part of ISO/IEC 10967 de_nes the properties of numerical approximations for many of the real elementary numerical functions available in standard libraries for a variety of programming languages in common use for mathematical and numerical applications. An implementor may choose any combination of hardware and software support to meet the speci_cations of this part. It is the computing environment, as seen by the programmer/user, that does or does not conform to the speci_cations. The term implementation (of this part) denotes the total computing environment pertinent to this part, including hardware, language processors, subroutine libraries, exception handling facilities, other software, and documentation.
Technologies de l'information — Arithmétique de langage indépendant — Partie 2: Fonctions numériques élémentaires
General Information
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 10967-2
First edition
2001-08-15
Information technology — Language
independent arithmetic —
Part 2:
Elementary numerical functions
Technologies de l'information — Arithmétique de langage indépendant —
Partie 2: Fonctions numériques élémentaires
Reference number
©
ISO/IEC 2001
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO/IEC 2001
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 either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO/IEC 2001 – All rights reserved
c
ISO/IEC 2001 { All rights reserved ISO/IEC 10967-2:2001(E)
Contents
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
1 Scope 1
1.1 Inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Conformity 2
3 Normative references 3
4 Symbols and denitions 4
4.1 Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.1 Sets and intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.2 Operators and relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.3 Mathematical functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.4 Exceptional values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.5 Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Denitions of terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Specications for integer and
oating point operations 10
5.1 Basic integer operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.1 The integer result and wrap helper functions . . . . . . . . . . . . . . . . . 10
5.1.2 Integer maximum and minimum . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1.3 Integer diminish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1.4 Integer power and arithmetic shift . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.5 Integer square root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.6 Divisibility tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.7 Integer division (with
oor, round, or ceiling) and remainder . . . . . . . . 13
5.1.8 Greatest common divisor and least common positive multiple . . . . . . . . 13
5.1.9 Support operations for extended integer range . . . . . . . . . . . . . . . . . 14
5.2 Basic
oating point operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2.1 The rounding and
oating point result helper functions . . . . . . . . . . . 15
5.2.2 Floating point maximum and minimum . . . . . . . . . . . . . . . . . . . . 17
5.2.3 Floating point diminish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.4 Floor, round, and ceiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.5 Remainder after division with round to integer . . . . . . . . . . . . . . . . 20
5.2.6 Square root and reciprocal square root . . . . . . . . . . . . . . . . . . . . . 20
5.2.7 Multiplication to higher precision
oating point datatype . . . . . . . . . . 20
5.2.8 Support operations for extended
oating point precision . . . . . . . . . . . 21
5.3 Elementary transcendental
oating point operations . . . . . . . . . . . . . . . . . 22
5.3.1 Maximum error requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3.2 Sign requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3.3 Monotonicity requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3.4 The result helper function . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3.5 Hypotenuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3.6 Operations for exponentiations and logarithms . . . . . . . . . . . . . . . . 24
iii
c
ISO/IEC 2001 { All rights reserved
5.3.6.1 Integer power of argument base . . . . . . . . . . . . . . . . . . . 24
5.3.6.2 Natural exponentiation . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3.6.3 Natural exponentiation, minus one . . . . . . . . . . . . . . . . . . 26
5.3.6.4 Exponentiation of 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3.6.5 Exponentiation of 10 . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3.6.6 Exponentiation of argument base . . . . . . . . . . . . . . . . . . . 28
5.3.6.7 Exponentiation of one plus the argument base, minus one . . . . . 29
5.3.6.8 Natural logarithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.6.9 Natural logarithm of one plus the argument . . . . . . . . . . . . . 30
5.3.6.10 2-logarithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3.6.11 10-logarithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.6.12 Argument base logarithm . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.6.13 Argument base logarithm of one plus each argument . . . . . . . . 32
5.3.7 Introduction to operations for trigonometric elementary functions . . . . . . 32
5.3.8 Operations for radian trigonometric elementary functions . . . . . . . . . . 33
5.3.8.1 Radian angle normalisation . . . . . . . . . . . . . . . . . . . . . . 34
5.3.8.2 Radian sine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3.8.3 Radian cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3.8.4 Radian tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.8.5 Radian cotangent . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.8.6 Radian secant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.8.7 Radian cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3.8.8 Radian cosine with sine . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.8.9 Radian arc sine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.8.10 Radian arc cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.8.11 Radian arc tangent . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.8.12 Radian arc cotangent . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.8.13 Radian arc secant . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.8.14 Radian arc cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.8.15 Radian angle from Cartesian co-ordinates . . . . . . . . . . . . . . 42
5.3.9 Operations for trigonometrics with given angular unit . . . . . . . . . . . . 43
5.3.9.1 Argument angular-unit angle normalisation . . . . . . . . . . . . . 43
5.3.9.2 Argument angular-unit sine . . . . . . . . . . . . . . . . . . . . . . 44
5.3.9.3 Argument angular-unit cosine . . . . . . . . . . . . . . . . . . . . 45
5.3.9.4 Argument angular-unit tangent . . . . . . . . . . . . . . . . . . . . 45
5.3.9.5 Argument angular-unit cotangent . . . . . . . . . . . . . . . . . . 46
5.3.9.6 Argument angular-unit secant . . . . . . . . . . . . . . . . . . . . 47
5.3.9.7 Argument angular-unit cosecant . . . . . . . . . . . . . . . . . . . 47
5.3.9.8 Argument angular-unit cosine with sine . . . . . . . . . . . . . . . 48
5.3.9.9 Argument angular-unit arc sine . . . . . . . . . . . . . . . . . . . 48
5.3.9.10 Argument angular-unit arc cosine . . . . . . . . . . . . . . . . . . 48
5.3.9.11 Argument angular-unit arc tangent . . . . . . . . . . . . . . . . . 49
5.3.9.12 Argument angular-unit arc cotangent . . . . . . . . . . . . . . . . 50
5.3.9.13 Argument angular-unit arc secant . . . . . . . . . . . . . . . . . . 51
5.3.9.14 Argument angular-unit arc cosecant . . . . . . . . . . . . . . . . . 51
5.3.9.15 Argument angular-unit angle from Cartesian co-ordinates . . . . . 52
5.3.10 Operations for angular-unit conversions . . . . . . . . . . . . . . . . . . . . 53
5.3.10.1 Converting radian angle to argument angular-unit angle . . . . . . 53
iv
c
ISO/IEC 2001 { All rights reserved ISO/IEC 10967-2:2001(E)
5.3.10.2 Converting argument angular-unit angle to radian angle . . . . . . 54
5.3.10.3 Converting argument angular-unit angle to (another) argument
angular-unit angle . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.11 Operations for hyperbolic elementary functions . . . . . . . . . . . . . . . . 56
5.3.11.1 Hyperbolic sine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.11.2 Hyperbolic cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.11.3 Hyperbolic tangent . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.11.4 Hyperbolic cotangent . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.11.5 Hyperbolic secant . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3.11.6 Hyperbolic cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.11.7 Inverse hyperbolic sine . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.11.8 Inverse hyperbolic cosine . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.11.9 Inverse hyperbolic tangent . . . . . . . . . . . . . . . . . . . . . . 60
5.3.11.10 Inverse hyperbolic cotangent . . . . . . . . . . . . . . . . . . . . . 60
5.3.11.11 Inverse hyperbolic secant . . . . . . . . . . . . . . . . . . . . . . . 61
5.3.11.12 Inverse hyperbolic cosecant . . . . . . . . . . . . . . . . . . . . . . 61
5.4 Operations for conversion between numeric datatypes . . . . . . . . . . . . . . . . 62
5.4.1 Integer to integer conversions . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.4.2 Floating point to integer conversions . . . . . . . . . . . . . . . . . . . . . . 63
5.4.3 Integer to
oating point conversions . . . . . . . . . . . . . . . . . . . . . . 64
5.4.4 Floating point to
oating point conversions . . . . . . . . . . . . . . . . . . 64
5.4.5 Floating point to xed point conversions . . . . . . . . . . . . . . . . . . . . 65
5.4.6 Fixed point to
oating point conversions . . . . . . . . . . . . . . . . . . . . 66
5.5 Numerals as operations in a programming language . . . . . . . . . . . . . . . . . . 67
5.5.1 Numerals for integer datatypes . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.2 Numerals for
oating point datatypes . . . . . . . . . . . . . . . . . . . . . 68
6 Notication 68
6.1 Continuation values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7 Relationship with language standards 69
8 Documentation requirements 70
Annex A (normative) Partial conformity 73
A.1 Maximum error relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.2 Extra accuracy requirements relaxation . . . . . . . . . . . . . . . . . . . . . . . . 74
A.3 Relationships to other operations relaxation . . . . . . . . . . . . . . . . . . . . . . 74
A.4 Very-close-to-axis angular normalisation relaxation . . . . . . . . . . . . . . . . . . 74
A.5 Part 1 requirements relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Annex B (informative) Rationale 77
B.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
B.1.1 Inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
B.1.2 Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
B.2 Conformity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
B.2.1 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
B.3 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
B.4 Symbols and denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
v
c
ISO/IEC 2001 { All rights reserved
B.4.1 Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
B.4.1.1 Sets and intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
B.4.1.2 Operators and relations . . . . . . . . . . . . . . . . . . . . . . . . 80
B.4.1.3 Mathematical functions . . . . . . . . . . . . . . . . . . . . . . . . 80
B.4.1.4 Exceptional values . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
B.4.1.5 Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
B.4.2 Denitions of terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
B.5 Specications for the numerical functions . . . . . . . . . . . . . . . . . . . . . . . 81
B.5.1 Basic integer operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
B.5.1.1 The integer result and wrap helper functions . . . . . . . . . . . . 82
B.5.1.2 Integer maximum and minimum . . . . . . . . . . . . . . . . . . . 82
B.5.1.3 Integer diminish . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
B.5.1.4 Integer power and arithmetic shift . . . . . . . . . . . . . . . . . . 83
B.5.1.5 Integer square root . . . . . . . . . . . . . . . . . . . . . . . . . . 83
B.5.1.6 Divisibility tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
B.5.1.7 Integer division (with
oor, round, or ceiling) and remainder . . . 83
B.5.1.8 Greatest common divisor and least common positive multiple . . . 84
B.5.1.9 Support operations for extended integer range . . . . . . . . . . . 84
B.5.2 Basic
oating point operat
...








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