1、BRITISH STANDARD BS ISO/IEC 10967-3:2006 Incorporating corrigendum no. 1 Information technology Language independent arithmetic Part 3: Complex integer and floating point arithmetic and complex elementary numerical functions ICS 35.060 BS ISO/IEC 10967-3:2006 This British Standard was published unde
2、r the authority of the Standards Policy and Strategy Committee on 31 May 2007 BSI 2007 ISBN 978 0 580 60212 2 National foreword This British Standard is the UK implementation of ISO/IEC 10967-3:2006. The UK participation in its preparation was entrusted to Technical Committee IST/5, Programming lang
3、uages, their environments and system software interfaces. A list of organizations represented on this committee can be obtained on request to its secretary. NOTE An editorial error has been identified in note 1 of clause 2 of the ISO/IEC text of this standard. The Annex referred to does not exist in
4、 this standard. ISO/IEC technical committee JTC1/SC22 has been informed of this error by BSI. This publication does not purport to include all the necessary provisions of a contract. Users are responsible for its correct application. Compliance with a British Standard cannot confer immunity from leg
5、al obligations. Amendments issued since publication Amd. No. Date Comments 17397 Corrigendum No. 1 28 September 2007 Correction to ISBN Reference number ISO/IEC 10967-3:2006(E)INTERNATIONAL STANDARD ISO/IEC 10967-3 First edition 2006-05-01 Information technology Language independent arithmetic Part
6、3: Complex integer and floating point arithmetic and complex elementary numerical functions Technologies de linformation Arithmtique indpendante des langages Partie 3: Arithmtique des nombres complexes entiers et en virgule flottante et fonctions numriques lmentaires complexes BS ISO/IEC 10967-3:200
7、6ii BS ISO/IEC 10967-3:2006 iiiContents Foreword vii Introduction viii 1 Scope 1 1.1 Inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Conformity 3 3 Norm
8、ative references 4 4 Symbols and denitions 4 4.1 Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1.1 Sets and intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4.1.2 Operators and relations . . . . . . . . . . . . . . . . .
9、. . . . . . . . . . . . 4 4.1.3 Mathematical functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.1.4 Exceptional values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.5 Datatypes and special values . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.6
10、 Complex value constructors and complex datatype constructors . . . . . . . 8 4.2 Denitions of terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5 Specications for imaginary and complex datatypes and operations 14 5.1 Imaginary and complex integer datatypes and operation
11、s . . . . . . . . . . . . . . 14 5.1.1 The complex integer result helper function . . . . . . . . . . . . . . . . . . 15 5.1.2 Imaginary and complex integer operations . . . . . . . . . . . . . . . . . . . 15 5.1.2.1 Complex integer comparisons . . . . . . . . . . . . . . . . . . . . . 15 5.1.2.2 Mu
12、ltiplication by the imaginary unit. . . . . . . . . . . . . . . . . 17 5.1.2.3 The real and imaginary parts of a complex value . . . . . . . . . . 17 5.1.2.4 Formation of a complex integer from two real valued integers . . . 18 5.1.2.5 Basic complex integer arithmetic . . . . . . . . . . . . . . . .
13、 . . . 18 5.1.2.6 Absolute value and signum of integers and imaginary integers. . . 21 5.1.2.7 Divisibility interrogation . . . . . . . . . . . . . . . . . . . . . . . 21 5.1.2.8 Integerdivisionandremainderextendedtoimaginaryandcomplex integers . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14、 . . . . . 22 5.1.2.9 Maximum and minimum . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 Imaginary and complex oating point datatypes and operations . . . . . . . . . . . 28 5.2.1 Maximum error requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.2.2 Sign requirements . . . .
15、. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2.3 Monotonicity requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2.4 The complex oating point result helper functions . . . . . . . . . . . . . . 30 5.2.5 Basic arithmetic for complex oating point . . . . . . . . .
16、. . . . . . . . . 31 5.2.5.1 Complex oating point comparisons . . . . . . . . . . . . . . . . . 31 5.2.5.2 Multiplication by the imaginary unit. . . . . . . . . . . . . . . . . 33 5.2.5.3 The real and imaginary parts of a complex value . . . . . . . . . . 34 5.2.5.4 Formation of a complex oating poi
17、nt from two oating point values 34 5.2.5.5 Fundamental complex oating point arithmetic . . . . . . . . . . . 34BS ISO/IEC 10967-3:2006 iv 5.2.5.6 Absolute value, phase and signum of complex oating point values 38 5.2.5.7 Floor, round, and ceiling . . . . . . . . . . . . . . . . . . . . . . . 39 5.2.
18、5.8 Maximum and minimum . . . . . . . . . . . . . . . . . . . . . . . 39 5.2.6 Complex sign, multiplication, and division . . . . . . . . . . . . . . . . . . . 40 5.2.6.1 Complex signum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2.6.2 Complex multiplication . . . . . . . . . . . .
19、. . . . . . . . . . . . 41 5.2.6.3 Complex division. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.2.7 Operations for conversion from polar to Cartesian . . . . . . . . . . . . . . 43 5.3 Elementary transcendental imaginary and complex oating point operations . . . . 44 5.3.1 Operations
20、 for exponentiations and logarithms . . . . . . . . . . . . . . . . 44 5.3.1.1 Exponentiation of imaginary base to integer power . . . . . . . . . 44 5.3.1.2 Natural exponentiation . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.1.3 Complex exponentiation of argument base . . . . . . . . . .
21、. . . 45 5.3.1.4 Complex square root . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.1.5 Natural logarithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.2 Operations for radian trigonometric elementary functions . . . . . . . . . . 49 5.3.2.1 Radian angle normalisation . . .
22、. . . . . . . . . . . . . . . . . . . 49 5.3.2.2 Radian sine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3.2.3 Radian cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3.2.4 Radian tangent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3.2.5
23、Radian cotangent . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.3.2.6 Radian secant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.2.7 Radian cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.2.8 Radian arc sine . . . . . . . . . . . . . . . . . .
24、. . . . . . . . . . 53 5.3.2.9 Radian arc cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3.2.10 Radian arc tangent . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3.2.11 Radian arc cotangent . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.3.2.12 Radian arc secant .
25、 . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3.2.13 Radian arc cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.3.3 Operations for hyperbolic elementary functions . . . . . . . . . . . . . . . . 60 5.3.3.1 Hyperbolic normalisation . . . . . . . . . . . . . . . . . . . .
26、 . . . 61 5.3.3.2 Hyperbolic sine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.3.3 Hyperbolic cosine . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.3.4 Hyperbolic tangent . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.3.5 Hyperbolic cotangent . . . . . .
27、. . . . . . . . . . . . . . . . . . . 62 5.3.3.6 Hyperbolic secant . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.3.7 Hyperbolic cosecant . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.3.8 Inverse hyperbolic sine . . . . . . . . . . . . . . . . . . . . . . . . 62 5.3.3.9 In
28、verse hyperbolic cosine . . . . . . . . . . . . . . . . . . . . . . . 63 5.3.3.10 Inverse hyperbolic tangent . . . . . . . . . . . . . . . . . . . . . . 63 5.3.3.11 Inverse hyperbolic cotangent . . . . . . . . . . . . . . . . . . . . . 64 5.3.3.12 Inverse hyperbolic secant . . . . . . . . . . . . .
29、. . . . . . . . . . 64 5.3.3.13 Inverse hyperbolic cosecant . . . . . . . . . . . . . . . . . . . . . . 65 5.4 Operations for conversion between imaginary and complex numeric datatypes . . . 65 5.4.1 Integer to complex integer conversions . . . . . . . . . . . . . . . . . . . . . 65 5.4.2 Floating p
30、oint to complex oating point conversions . . . . . . . . . . . . . 66 5.5 Support for imaginary and complex numerals . . . . . . . . . . . . . . . . . . . . . 67v6 Notication 68 6.1 Continuation values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 7 Relationship with langu
31、age standards 68 8 Documentation requirements 69 Annex A (normative) Partial conformity 71 A.1 Maximum error relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.2 Extra accuracy requirements relaxation . . . . . . . . . . . . . . . . . . . . . . . . 71 A.3 Relationships t
32、o other operations relaxation . . . . . . . . . . . . . . . . . . . . . . 72 A.4 Part 1 and part 2 requirements relaxation . . . . . . . . . . . . . . . . . . . . . . . 72 Annex B (informative) Rationale 73 B.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33、 . 73 B.1.1 Inclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 B.1.2 Exclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 B.2 Conformity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 B.3 Norm
34、ative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4 Symbols and denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4.1 Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4.1.1 Sets and inter
35、vals . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4.1.2 Operators and relations . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4.1.3 Mathematical functions . . . . . . . . . . . . . . . . . . . . . . . . 74 B.4.1.4 Exceptional values . . . . . . . . . . . . . . . . . . . . . . .
36、. . . . 75 B.4.1.5 Datatypes and special values . . . . . . . . . . . . . . . . . . . . . 75 B.4.1.6 Complex value constructors and complex datatype constructors . 75 B.4.2 Denitions of terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 B.5 Specications for the imaginary and comp
37、lex datatypes and operations . . . . . . . 76 B.5.1 Imaginary and complex integer datatypes and operations . . . . . . . . . . 76 B.5.2 Imaginary and complex oating point datatypes and operations . . . . . . . 76 B.5.2.1 Maximum error requirements . . . . . . . . . . . . . . . . . . . . . 76 B.5.2.2
38、 Sign requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 B.5.2.3 Maximum error requirements . . . . . . . . . . . . . . . . . . . . . 76 B.5.2.4 Basic arithmetic for complex oating point . . . . . . . . . . . . . 77 B.5.3 Elementary transcendental imaginary and complex oating poin
39、t operations 78 B.5.3.1 Operations for exponentiations and logarithms . . . . . . . . . . . 78 B.5.3.2 Operations for radian trigonometric elementary functions . . . . . 78 B.5.3.2.1 Radian angle normalisation . . . . . . . . . . . . . . . . . 78 B.5.3.2.2 Radian sine . . . . . . . . . . . . . . . .
40、 . . . . . . . . . . 79 B.5.3.2.3 Radian cosine . . . . . . . . . . . . . . . . . . . . . . . . 79 B.5.3.2.4 Radian tangent. . . . . . . . . . . . . . . . . . . . . . . . 79 B.5.3.2.5 Radian cotangent . . . . . . . . . . . . . . . . . . . . . . 80 B.5.3.2.6 Radian secant . . . . . . . . . . . . . .
41、. . . . . . . . . . 80 B.5.3.2.7 Radian cosecant . . . . . . . . . . . . . . . . . . . . . . . 80 B.5.3.2.8 Radian arc sine . . . . . . . . . . . . . . . . . . . . . . . 80 B.5.3.2.9 Radian arc cosine . . . . . . . . . . . . . . . . . . . . . . 81 B.5.3.2.10 Radian arc tangent . . . . . . . . . . .
42、. . . . . . . . . . 81 B.5.3.2.11 Radian arc cotangent . . . . . . . . . . . . . . . . . . . . 81 BS ISO/IEC 10967-3:2006vi B.5.3.2.12 Radian arc secant . . . . . . . . . . . . . . . . . . . . . . 81 B.5.3.2.13 Radian arc cosecant . . . . . . . . . . . . . . . . . . . . . 81 B.5.3.3 Operations for h
43、yperbolic elementary functions . . . . . . . . . . . 82 B.5.3.3.1 Hyperbolic normalisation . . . . . . . . . . . . . . . . . . 82 B.5.3.3.2 Hyperbolic sine . . . . . . . . . . . . . . . . . . . . . . . 82 B.5.3.3.3 Hyperbolic cosine . . . . . . . . . . . . . . . . . . . . . . 82 B.5.3.3.4 Hyperbolic
44、 tangent . . . . . . . . . . . . . . . . . . . . . 82 B.5.3.3.5 Hyperbolic cotangent . . . . . . . . . . . . . . . . . . . . 83 B.5.3.3.6 Hyperbolic secant . . . . . . . . . . . . . . . . . . . . . . 83 B.5.3.3.7 Hyperbolic cosecant . . . . . . . . . . . . . . . . . . . . . 83 B.5.3.3.8 Inverse hype
45、rbolic sine . . . . . . . . . . . . . . . . . . . 83 B.5.3.3.9 Inverse hyperbolic cosine . . . . . . . . . . . . . . . . . . 83 B.5.3.3.10 Inverse hyperbolic tangent . . . . . . . . . . . . . . . . . 84 B.5.3.3.11 Inverse hyperbolic cotangent . . . . . . . . . . . . . . . . 84 B.5.3.3.12 Inverse hyp
46、erbolic secant . . . . . . . . . . . . . . . . . . 84 B.5.3.3.13 Inverse hyperbolic cosecant . . . . . . . . . . . . . . . . . 84 B.5.4 Operations for conversion between imaginary and complex numeric datatypes 84 B.5.5 Support for imaginary and complex numerals . . . . . . . . . . . . . . . . . 84 B
47、.6 Notication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.6.1 Continuation values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.7 Relationship with language standards . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.8 Documentation
48、requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Annex C (informative) Example bindings for specic languages 85 C.1 Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 C.2 C . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49、. . . . . . . . . . . . . . . . . . 96 C.3 C+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 C.4 Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 C.5 Common Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Annex D (informative) Bibliography 133 Annex E (informative) Cross reference 135 Annex F (informative) Possible changes to part 2