Fix timevar.cc build on systems that don't have CLOCK_MONOTONIC
[gcc.git] / libstdc++-v3 / doc / xml / manual / status_cxxis29124.xml
blob2d9baa1ab68a62f51205a6f9a4b31d88d2391f8d
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>
6   <keywordset>
7     <keyword>ISO C++</keyword>
8     <keyword>Special Functions</keyword>
9   </keywordset>
10 </info>
12 <para>
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".
16 </para>
18 <para>
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).
25 </para>
27 <para>
28 When the special functions are declared the macro
29 <code>__STDCPP_MATH_SPEC_FUNCS__</code> is defined to <code>201003L</code>.
30 </para>
32 <para>
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>.
38 </para>
40 <!-- Status is Yes or No, Broken/Partial-->
41 <!--
42    Yes
44    No
45       <?dbhtml bgcolor="#C8B0B0" ?>
46    Broken/Partial
47       <?dbhtml bgcolor="#B0B0B0" ?>
48 -->
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"/>
58   <thead>
59     <row>
60       <entry>Section</entry>
61       <entry>Description</entry>
62       <entry>Status</entry>
63       <entry>Comments</entry>
64     </row>
65   </thead>
66   <tbody>
67     <row>
68       <?dbhtml bgcolor="#B0B0B0" ?>
69       <entry>7</entry>
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>
74     </row>
75     <row>
76       <entry>8</entry>
77       <entry>Mathematical special functions</entry>
78       <entry>Y</entry>
79       <entry/>
80     </row>
81     <row>
82       <entry>8.1</entry>
83       <entry>Additions to header <code>&lt;cmath&gt;</code> synopsis</entry>
84       <entry>Y</entry>
85       <entry/>
86     </row>
87     <row>
88       <entry>8.1.1</entry>
89       <entry>associated Laguerre polynomials</entry>
90       <entry>Y</entry>
91       <entry/>
92     </row>
93     <row>
94       <entry>8.1.2</entry>
95       <entry>associated Legendre functions</entry>
96       <entry>Y</entry>
97       <entry/>
98     </row>
99     <row>
100       <entry>8.1.3</entry>
101       <entry>beta function</entry>
102       <entry>Y</entry>
103       <entry/>
104     </row>
105     <row>
106       <entry>8.1.4</entry>
107       <entry>(complete) elliptic integral of the first kind</entry>
108       <entry>Y</entry>
109       <entry/>
110     </row>
111     <row>
112       <entry>8.1.5</entry>
113       <entry>(complete) elliptic integral of the second kind</entry>
114       <entry>Y</entry>
115       <entry/>
116     </row>
117     <row>
118       <entry>8.1.6</entry>
119       <entry>(complete) elliptic integral of the third kind</entry>
120       <entry>Y</entry>
121       <entry/>
122     </row>
123     <row>
124       <entry>8.1.7</entry>
125       <entry>regular modified cylindrical Bessel functions</entry>
126       <entry>Y</entry>
127       <entry/>
128     </row>
129     <row>
130       <entry>8.1.8</entry>
131       <entry>cylindrical Bessel functions (of the first kind)</entry>
132       <entry>Y</entry>
133       <entry/>
134     </row>
135     <row>
136       <entry>8.1.9</entry>
137       <entry>irregular modified cylindrical Bessel functions</entry>
138       <entry>Y</entry>
139       <entry/>
140     </row>
141     <row>
142       <entry>8.1.10</entry>
143       <entry>cylindrical Neumann functions</entry>
144       <entry>Y</entry>
145       <entry/>
146     </row>
147     <row>
148       <entry>8.1.11</entry>
149       <entry>(incomplete) elliptic integral of the first kind</entry>
150       <entry>Y</entry>
151       <entry/>
152     </row>
153     <row>
154       <entry>8.1.12</entry>
155       <entry>(incomplete) elliptic integral of the second kind</entry>
156       <entry>Y</entry>
157       <entry/>
158     </row>
159     <row>
160       <entry>8.1.13</entry>
161       <entry>(incomplete) elliptic integral of the third kind</entry>
162       <entry>Y</entry>
163       <entry/>
164     </row>
165     <row>
166       <entry>8.1.14</entry>
167       <entry>exponential integral</entry>
168       <entry>Y</entry>
169       <entry/>
170     </row>
171     <row>
172       <entry>8.1.15</entry>
173       <entry>Hermite polynomials</entry>
174       <entry>Y</entry>
175       <entry/>
176     </row>
177     <row>
178       <entry>8.1.16</entry>
179       <entry>Laguerre polynomials</entry>
180       <entry>Y</entry>
181       <entry/>
182     </row>
183     <row>
184       <entry>8.1.17</entry>
185       <entry>Legendre polynomials</entry>
186       <entry>Y</entry>
187       <entry/>
188     </row>
189     <row>
190       <entry>8.1.18</entry>
191       <entry>Riemann zeta function</entry>
192       <entry>Y</entry>
193       <entry/>
194     </row>
195     <row>
196       <entry>8.1.19</entry>
197       <entry>spherical Bessel functions (of the first kind)</entry>
198       <entry>Y</entry>
199       <entry/>
200     </row>
201     <row>
202       <entry>8.1.20</entry>
203       <entry>spherical associated Legendre functions</entry>
204       <entry>Y</entry>
205       <entry/>
206     </row>
207     <row>
208       <entry>8.1.21</entry>
209       <entry>spherical Neumann functions</entry>
210       <entry>Y</entry>
211       <entry/>
212     </row>
213     <row>
214       <entry>8.2</entry>
215       <entry>Additions to header <code>&lt;math.h&gt;</code></entry>
216       <entry>Y</entry>
217       <entry/>
218     </row>
219     <row>
220       <?dbhtml bgcolor="#B0B0B0" ?>
221       <entry>8.3</entry>
222       <entry>The header <code>&lt;ctgmath&gt;</code></entry>
223       <entry>Partial</entry>
224       <entry>Conflicts with C++ 2011 requirements.</entry>
225     </row>
226     <row>
227       <?dbhtml bgcolor="#C8B0B0" ?>
228       <entry>8.4</entry>
229       <entry>The header <code>&lt;tgmath.h&gt;</code></entry>
230       <entry>N</entry>
231       <entry>Conflicts with C++ 2011 requirements.</entry>
232     </row>
233   </tbody>
234 </tgroup>
235 </table>
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.
243    </para>
245    <para>
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).
250    </para>
252    <para>
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.
256    </para>
258    <para>
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.
261    </para>
263    <para>
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.
266    </para>
268    <para>
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.
271    </para>
273    <para>
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.
276    </para>
278    <para>
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.
281    </para>
283    <para>
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.
286    </para>
288    <para>
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.
291    </para>
293    <para>
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.
296    </para>
298    <para>
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.
301    </para>
303    <para>
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.
306    </para>
308    <para>
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.
311    </para>
313 </section>
315 </section>