1、 Reference number ISO/IEC 29124:2010(E) ISO/IEC 2010INTERNATIONAL STANDARD ISO/IEC 29124 First edition 2010-09-15 Information technology Programming languages, their environments and system software interfaces Extensions to the C+ Library to support mathematical special functions Technologies de lin
2、formation Langages de programmation, leur environnement et interfaces des logiciels de systmes Extensions la bibliothque C+ pour supporter les fonctions mathmatiques spciales ISO/IEC 29124:2010(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobes licensing policy
3、, 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 Adobes licensing policy. The ISO Central Se
4、cretariat 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
5、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. COPYRIGHT PROTECTED DOCUMENT ISO/IEC 2010 All rights reserved. Unless otherwise specified, no part of this pu
6、blication 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 ISOs member body in the country of the requester. ISO copyright office Case postale 56 CH-1211 Ge
7、neva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail copyrightiso.org Web www.iso.org Published in Switzerland ii ISO/IEC 2010 All rights reservedContents Contents iii List of Tables v Foreword vi Introduction vii 1 Scope 1 1.1 Purpose and intent . . . . . . . . . . . . . . . . . . . . . . .
8、. . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Relation to C+ Standard Library Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Categories of extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Normative references 2
9、 3 Terms, denitions, and symbols 3 4 Conformance 4 5 Headers 5 6 Namespaces 6 7 Macro names 7 7.1 Predened macro name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.2 User-dened macro name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10、. . . . . . . . 7 8 Mathematical special functions 8 8.1 Additions to header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8.1.1 associated Laguerre polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.1.2 associated Legendre polyno
11、mials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.1.3 beta function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.1.4 (complete) elliptic integral of the rst kind . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.1.
12、5 (complete) elliptic integral of the second kind . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8.1.6 (complete) elliptic integral of the third kind . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved iiiCONTENTS CONTENTS iv 8.
13、1.7 regular modied cylindrical Bessel functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8.1.8 cylindrical Bessel functions (of the rst kind) . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 8.1.9 irregular modied cylindrical Bessel functions . . . . . . . . . . . . . . . . .
14、 . . . . . . . . . 13 8.1.10 cylindrical Neumann functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.1.11 (incomplete) elliptic integral of the rst kind . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.1.12 (incomplete) elliptic integral of the second kind
15、. . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1.13 (incomplete) elliptic integral of the third kind . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1.14 exponential integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1.15 Hermite poly
16、nomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1.16 Laguerre polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.1.17 Legendre polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17、. . . 16 8.1.18 Riemann zeta function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.1.19 spherical Bessel functions (of the rst kind) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 8.1.20 spherical associated Legendre functions . . . . . . . . . . . .
18、 . . . . . . . . . . . . . . . . . . 17 8.1.21 spherical Neumann functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.2 Additions to header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.3 The header . . . . . . . . . . . . . . .
19、. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8.4 The header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Bibliography 19 Index 20 ISO/IEC 29124:2010(E) iv ISO/IEC 2010 All rights reservedList of Tables 1 Summary of affected headers . . . . . .
20、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Additions to header synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved vForeword ISO (the International Organization for Standardization) and I
21、EC (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
22、particular elds of technical activity. ISO and IEC technical committees collaborate in elds of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the eld of information technology, ISO and IEC have establ
23、ished a Joint Technical Committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the Joint Technical Committee is to prepare International Standards. Draft International Standards adopted by the Joint Technic
24、al 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 drawn to the possibility that some of the elements of this document may be the subject of patent rights . ISO and
25、IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC 29124 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces. ISO/IEC 29124:2010(E) vi ISO/I
26、EC 2010 All rights reservedIntroduction This International Standard is divided into three major subdivisions: preliminary elements (Clauses 13), indicating conformance (Clause 4), and the library facilities (Clauses 56). Footnotes are provided to emphasize consequences of the rules described in that
27、 subclause or elsewhere in this International Standard. References are used to refer to other related documents and subclauses. A bibliography lists documents that are non-normatively cited in this International Standard, or that were referred to during its preparation. The provisions of this Intern
28、ational Standard are based on 5.2 (“Mathematical special functions”) of ISO/IEC TR 19768:2007 2. That subclause also served as a basis for a similar International Standard 3. Because of their common origin, it is intended that both these International Standards specify substantially identical syntax
29、 and semantics to the extent permitted by each Standards programming language. ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved vii1 Scope scope 1.1 Purpose and intent scope.purpose 1 This International Standard species extensions to the C+ standard library as dened in the International Standa
30、rd for the C+ programming language ISO/IEC 14882:2003. 1.2 Relation to C+ Standard Library Introduction scope.libintro 1 Unless otherwise specied, the whole of Clause 17 (“Library Introduction”) of the ISO C+ Standard ISO/IEC 14882:2003 is included into this International Standard by reference. 1.3
31、Categories of extensions scope.ext 1 This International Standard species extensions to the C+ standard library to support mathematical special functions. INTERNATIONAL STANDARD ISO/IEC 29124:2010(E)Information technology Programming languages, their environments and system software interfaces Extens
32、ions to the C+ Library to support mathematical special functions ISO/IEC 2010 All rights reserved 12 Normative references norm 1 The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, th
33、e latest edition of the referenced document (including any amendments) applies. ISO/IEC 2382-1:1993, Information technology Vocabulary Part 1: Fundamental terms ISO/IEC 9899:1999, Programming languages C ISO/IEC 9899:1999/Cor 1:2001, Programming languages C Technical Corrigendum 1 ISO/IEC 9899:1999/
34、Cor 2:2004, Programming languages C Technical Corrigendum 2 ISO/IEC 9899:1999/Cor 3:2007, Programming languages C Technical Corrigendum 3 ISO/IEC 14882:2003, Programming languages C+ ISO 80000-2:2009, Quantities and units Part 2: Mathematical signs and symbols to be used in the natural sciences and
35、technology ISO/IEC 29124:2010(E) 2 ISO/IEC 2010 All rights reserved3 Terms, denitions, and symbols terms 1 For the purposes of this document, the terms and denitions given in ISO/IEC 14882:2003, ISO/IEC 9899:1999 and its Technical Corrigenda, and ISO/IEC 2382-1:1993 apply, as do the terms, denitions
36、, and symbols given in ISO 80000-2:2009. Other terms are dened where they appear in italic type. ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved 34 Conformance confor 1 If a “shall“ requirement is violated, the behavior is undened. 2 The constraints upon, and latitude of, implementations of t
37、he extensions specied in this International Standard are identical to those specied in Clause 17 (“Library Introduction”) of the ISO C+ Standard ISO/IEC 14882:2003, previously (1.2) included into this International Standard by reference. ISO/IEC 29124:2010(E) 4 ISO/IEC 2010 All rights reserved5 Head
38、ers head 1 The extensions specied by this International Standard constitute new library components that are declared as additions to an existing standard header, as specied below. For consistency throughout the C+ standard library, adjustments to additional headers are also specied below. For some o
39、f these headers, the adjustments are specied as applicable only if the implementation provides the header. 2 The headers affected by this International Standard are summarized in Table 1. Table 1: Summary of affected headers Subclause Header(s) 8.1 8.2 8.3 8.4 3 Vendors should not simply add declara
40、tions to standard headers in a way that would be visible to users by default. 1) Users should be required to take explicit action to have access to library extensions. 4 The visibility of the library extensions specied in Clause 8 shall be in accordance with the provisions of subclause 7.2. 1) That
41、would fail to be standard conforming, even within a namespace, because the new names could conict with user macros. ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved 56 Namespaces ns 1 Unless otherwise specied, all components specied in this International Standard are declared in namespacestd.
42、2 Unless otherwise specied, all references to components specied in the C+ standard library are assumed to be qualied withstd:. ISO/IEC 29124:2010(E) 6 ISO/IEC 2010 All rights reserved7 Macro names macro 7.1 Predened macro name macro.pre 1 The following macro name shall be conditionally dened by the
43、 implementation: _STDCPP_MATH_SPEC_FUNCS_ The value201003L, intended to indicate conformance to this International Standard. 2) 7.2 User-dened macro name macro.user 1 The functions declared or dened in Clause 8 are not declared or dened by their respective headers if_STDCPP_WANT_- MATH_SPEC_FUNCS_ i
44、s dened as a macro that expands to the integer constant0 at the point in the source le where the appropriate header is included. 2 The functions declared or dened in Clause 8 are declared and dened by their respective headers if_STDCPP_WANT_- MATH_SPEC_FUNCS_ is dened as a macro that expands to the
45、integer constant1 at the point in the source le where the appropriate header is included. 3 It is implementation-dened whether the functions declared or dened in Clause 8 are declared or dened by their respective headers if_STDCPP_WANT_MATH_SPEC_FUNCS_ is dened as a macro that expands to an integer
46、constant other than0 or1 at the point in the source le where the appropriate header is included. 3) 4 It is implementation-dened whether the functions declared or dened in Clause 8 are declared or dened by their respective headers if _STDCPP_WANT_MATH_SPEC_FUNCS_ is not dened as a macro at the point
47、 in the source le where the appropriate header is included. 5 Within a preprocessing translation unit, _STDCPP_WANT_MATH_SPEC_FUNCS_ either shall be nowhere dened as a macro, or else shall be dened identically for all inclusions of any headers from Clause 8. If _STDCPP_WANT_- MATH_SPEC_FUNCS_ is den
48、ed differently for any such inclusion, the implementation shall issue a diagnostic as if a preprocessor error directive were used. 2) It is intended that future versions of this International Standard will replace the value of this macro with a greater value of typelongint. 3) Future revisions of th
49、is International Standard may specify meanings for other values of_STDCPP_WANT_MATH_SPEC_FUNCS_. ISO/IEC 29124:2010(E) ISO/IEC 2010 All rights reserved 78 Mathematical special functions sf 8.1 Additions to header sf.cmath 1 Table 2 summarizes the functions that are added to header. Table 2: Additions to header synopsis Functions: assoc_laguerre cy