1 <section xmlns="http://docbook.org/ns/docbook" version="5.0"
2 xml:id="status.iso.specfun" xreflabel="Status C++ 29124">
3 <?dbhtml filename="status_iso_cxxis29124.html"?>
5 <info><title>C++ IS 29124</title>
7 <keyword>ISO C++</keyword>
8 <keyword>Special Functions</keyword>
13 This table is based on the table of contents of ISO/IEC FDIS 29124,
14 Doc No: N3060, Date: 2010-03-06,
15 "Extensions to the C++ Library to support mathematical special functions".
19 Complete support for IS 29124 is in GCC 6.1 and later releases, when using
20 at least C++11 (for older releases or C++98/C++03 use TR1 instead).
21 For C++11 and C++14 the additions to the library are not declared by their
22 respective headers unless <code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code>
23 is defined as a macro that expands to a non-zero integer constant.
24 For C++17 the special functions are always declared (since GCC 7.1).
28 When the special functions are declared the macro
29 <code>__STDCPP_MATH_SPEC_FUNCS__</code> is defined to <code>201003L</code>.
33 In addition to the special functions defined in IS 29124, for
34 non-strict modes (i.e. <code>-std=gnu++NN</code> modes) the
35 hypergeometric functions and confluent hypergeometric functions
36 from TR1 are also provided, defined in namespace
37 <code>__gnu_cxx</code>.
40 <!-- Status is Yes or No, Broken/Partial-->
45 <?dbhtml bgcolor="#C8B0B0" ?>
47 <?dbhtml bgcolor="#B0B0B0" ?>
49 <table frame="all" xml:id="table.specfun_status">
50 <title>C++ Special Functions Implementation Status</title>
52 <tgroup cols="4" align="left" colsep="0" rowsep="1">
53 <colspec colname="c1"/>
54 <colspec colname="c2"/>
55 <colspec colname="c3"/>
56 <colspec colname="c4"/>
60 <entry>Section</entry>
61 <entry>Description</entry>
63 <entry>Comments</entry>
68 <?dbhtml bgcolor="#B0B0B0" ?>
70 <entry>Macro names</entry>
71 <entry>Partial</entry>
72 <entry>No diagnostic for inconsistent definitions of
73 <code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code></entry>
77 <entry>Mathematical special functions</entry>
83 <entry>Additions to header <code><cmath></code> synopsis</entry>
89 <entry>associated Laguerre polynomials</entry>
95 <entry>associated Legendre functions</entry>
101 <entry>beta function</entry>
107 <entry>(complete) elliptic integral of the first kind</entry>
113 <entry>(complete) elliptic integral of the second kind</entry>
119 <entry>(complete) elliptic integral of the third kind</entry>
125 <entry>regular modified cylindrical Bessel functions</entry>
131 <entry>cylindrical Bessel functions (of the first kind)</entry>
137 <entry>irregular modified cylindrical Bessel functions</entry>
142 <entry>8.1.10</entry>
143 <entry>cylindrical Neumann functions</entry>
148 <entry>8.1.11</entry>
149 <entry>(incomplete) elliptic integral of the first kind</entry>
154 <entry>8.1.12</entry>
155 <entry>(incomplete) elliptic integral of the second kind</entry>
160 <entry>8.1.13</entry>
161 <entry>(incomplete) elliptic integral of the third kind</entry>
166 <entry>8.1.14</entry>
167 <entry>exponential integral</entry>
172 <entry>8.1.15</entry>
173 <entry>Hermite polynomials</entry>
178 <entry>8.1.16</entry>
179 <entry>Laguerre polynomials</entry>
184 <entry>8.1.17</entry>
185 <entry>Legendre polynomials</entry>
190 <entry>8.1.18</entry>
191 <entry>Riemann zeta function</entry>
196 <entry>8.1.19</entry>
197 <entry>spherical Bessel functions (of the first kind)</entry>
202 <entry>8.1.20</entry>
203 <entry>spherical associated Legendre functions</entry>
208 <entry>8.1.21</entry>
209 <entry>spherical Neumann functions</entry>
215 <entry>Additions to header <code><math.h></code></entry>
220 <?dbhtml bgcolor="#B0B0B0" ?>
222 <entry>The header <code><ctgmath></code></entry>
223 <entry>Partial</entry>
224 <entry>Conflicts with C++ 2011 requirements.</entry>
227 <?dbhtml bgcolor="#C8B0B0" ?>
229 <entry>The header <code><tgmath.h></code></entry>
231 <entry>Conflicts with C++ 2011 requirements.</entry>
237 <section xml:id="iso.specfun.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
239 <para>For behaviour which is specified by the 2011 standard,
240 see <link linkend="iso.2011.specific">C++ 2011 Implementation
241 Specific Behavior</link>. This section documents behaviour which
242 is required by IS 29124.
246 <emphasis>7.2 [macro.user]/3 /4</emphasis> The functions declared in
247 Clause 8 are only declared when
248 <code>__STDCPP_WANT_MATH_SPEC_FUNCS__ == 1</code>
249 (or in C++17 mode, for GCC 7.1 and later).
253 <emphasis>8.1.1 [sf.cmath.Lnm]/1</emphasis> The effect of calling
254 these functions with <code>n >= 128</code> or <code>m >= 128</code>
255 should be described here.
259 <emphasis>8.1.2 [sf.cmath.Plm]/3</emphasis> The effect of calling
260 these functions with <code>l >= 128</code> should be described here.
264 <emphasis>8.1.3 [sf.cmath.I]/3</emphasis> The effect of calling
265 these functions with <code>nu >= 128</code> should be described here.
269 <emphasis>8.1.8 [sf.cmath.J]/3</emphasis> The effect of calling
270 these functions with <code>nu >= 128</code> should be described here.
274 <emphasis>8.1.9 [sf.cmath.K]/3</emphasis> The effect of calling
275 these functions with <code>nu >= 128</code> should be described here.
279 <emphasis>8.1.10 [sf.cmath.N]/3</emphasis> The effect of calling
280 these functions with <code>nu >= 128</code> should be described here.
284 <emphasis>8.1.15 [sf.cmath.Hn]/3</emphasis> The effect of calling
285 these functions with <code>n >= 128</code> should be described here.
289 <emphasis>8.1.16 [sf.cmath.Ln]/3</emphasis> The effect of calling
290 these functions with <code>n >= 128</code> should be described here.
294 <emphasis>8.1.17 [sf.cmath.Pl]/3</emphasis> The effect of calling
295 these functions with <code>l >= 128</code> should be described here.
299 <emphasis>8.1.19 [sf.cmath.j]/3</emphasis> The effect of calling
300 these functions with <code>n >= 128</code> should be described here.
304 <emphasis>8.1.20 [sf.cmath.Ylm]/3</emphasis> The effect of calling
305 these functions with <code>l >= 128</code> should be described here.
309 <emphasis>8.1.21 [sf.cmath.n]/3</emphasis> The effect of calling
310 these functions with <code>n >= 128</code> should be described here.