PR libstdc++/82644 document IS 29124 support

Backport from mainline
2017-10-23  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/intro.xml: Include new section.
	* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
	status.
	* doc/html/*: Regenerate.

From-SVN: r256863
This commit is contained in:
Jonathan Wakely 2018-01-18 20:31:32 +00:00 committed by Jonathan Wakely
parent 6657c57a9f
commit 1ee924b55b
8 changed files with 419 additions and 22 deletions

View File

@ -1,5 +1,13 @@
2018-01-18 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline
2017-10-23 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/intro.xml: Include new section.
* doc/xml/manual/status_cxxis29124.xml: New section on IS 29124
status.
* doc/html/*: Regenerate.
Backport from mainline
2017-10-19 Jonathan Wakely <jwakely@redhat.com>

File diff suppressed because one or more lines are too long

View File

@ -428,6 +428,9 @@
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2332" target="_top">2332</a>:
<span class="emphasis"><em><code class="code">regex_iterator/regex_token_iterator</code> should forbid temporary regexes</em></span>
</span></dt><dd><p>Add deleted constructors.
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2354" target="_top">2332</a>:
<span class="emphasis"><em>Unnecessary copying when inserting into maps with braced-init syntax</em></span>
</span></dt><dd><p>Add overloads of <code class="code">insert</code> taking <code class="code">value_type&amp;&amp;</code> rvalues.
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2399" target="_top">2399</a>:
<span class="emphasis"><em><code class="code">shared_ptr</code>'s constructor from <code class="code">unique_ptr</code> should be constrained</em></span>
</span></dt><dd><p>Constrain the constructor to require convertibility.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I.  Introduction" /><link rel="prev" href="intro.html" title="Part I.  Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. 
Introduction
</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
This status table is based on the table of contents of ISO/IEC 14882:2003.
</p><p>
This page describes the C++ support in the GCC 7 series.
@ -871,69 +871,69 @@ and test for <code class="code">__STDCPP_MATH_SPEC_FUNCS__ &gt;= 201003L</code>.
2011 Implementation Specific Behavior</a>. This section only
documents behaviour which is new in the 2017 standard.
</p><p>
<span class="emphasis"><em>20.6.5 [optional.bad_optional_access]</em></span>
<span class="emphasis"><em>23.6.5 [optional.bad_optional_access]</em></span>
<code class="code">what()</code> returns <code class="literal">"bad optional access"</code>.
</p><p>
<span class="emphasis"><em>20.7.2 [variant.variant]</em></span>
<span class="emphasis"><em>23.7.3 [variant.variant]</em></span>
Whether <code class="classname">variant</code> supports over-aligned types
should be documented here.
</p><p>
<span class="emphasis"><em>20.7.10 [variant.bad.access]</em></span>
<span class="emphasis"><em>23.7.10 [variant.bad.access]</em></span>
<code class="code">what()</code> returns <code class="literal">"Unexpected index"</code>.
</p><p>
<span class="emphasis"><em>20.12.5.2 [memory.resource.pool.options]</em></span>
<span class="emphasis"><em>23.12.5.2 [memory.resource.pool.options]</em></span>
The limits for maximum number of blocks and largest allocation size
supported by <code class="classname">pool_options</code> should be documented
here.
</p><p>
<span class="emphasis"><em>20.12.6.1 [memory.resource.monotonic.buffer.ctor]</em></span>
<span class="emphasis"><em>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</em></span>
The default <code class="code">next_buffer_size</code> and growth factor should
be documented here.
</p><p>
<span class="emphasis"><em>20.15.4.3 [meta.unary.prop]</em></span>
<span class="emphasis"><em>23.15.4.3 [meta.unary.prop]</em></span>
The predicate condition for
<code class="code">has_unique_object_representations</code> is true for all scalar
types except floating point types.
</p><p>
<span class="emphasis"><em>20.19.3 [execpol.type],
25.2.3 [algorithms.parallel.exec]</em></span>
<span class="emphasis"><em>23.19.3 [execpol.type],
28.4.3 [algorithms.parallel.exec]</em></span>
There are no implementation-defined execution policies.
</p><p>
<span class="emphasis"><em>22.4.2 [string.view.template]</em></span>
<span class="emphasis"><em>24.4.2 [string.view.template]</em></span>
<code class="classname">basic_string_view&lt;C, T&gt;::iterator</code> is
<code class="code">C*</code> and
<code class="classname">basic_string_view&lt;C, T&gt;::const_iterator</code> is
<code class="code">const C*</code>.
</p><p>
<span class="emphasis"><em>25.2.3 [algorithms.parallel.exec]</em></span>
<span class="emphasis"><em>28.4.3 [algorithms.parallel.exec]</em></span>
Threads of execution created by <code class="classname">std::thread</code>
provide concurrent forward progress guarantees, so threads of execution
implicitly created by the library will provide parallel forward
progress guarantees.
</p><p>
<span class="emphasis"><em>26.4.1 [cfenv.syn]</em></span>
<span class="emphasis"><em>29.4.1 [cfenv.syn]</em></span>
The effects of the <code class="filename">&lt;cfenv&gt;</code> functions
depends on whether the <code class="code">FENV_ACCESS</code> pragma is supported,
and on the C library that provides the header.
</p><p>
<span class="emphasis"><em>26.6.9 [c.math.rand]</em></span>
<span class="emphasis"><em>29.6.9 [c.math.rand]</em></span>
Whether the <code class="function">rand</code> function may introduce data
races depends on the target C library that provides the function.
</p><p>
<span class="emphasis"><em>26.9.5 [sf.cmath]</em></span>
<span class="emphasis"><em>29.9.5 [sf.cmath]</em></span>
The effect of calling the mathematical special functions with large
inputs should be documented here.
</p><p>
<span class="emphasis"><em>27.10.2.1 [fs.conform.9945]</em></span>
<span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span>
The behavior of the filesystem library implementation will depend on
the target operating system. Some features will not be not supported
on some targets.
</p><p>
<span class="emphasis"><em>27.10.6 [fs.filesystem.syn]</em></span>
<span class="emphasis"><em>30.10.5 [fs.filesystem.syn]</em></span>
The clock used for file times is
<code class="classname">std::chrono::system_clock</code>.
</p><p>
<span class="emphasis"><em>27.10.8 [path.generic]</em></span>
<span class="emphasis"><em>30.10.7.1 [fs.path.generic]</em></span>
dot-dot in the root-directory refers to the root-directory itself.
</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p>
This table is based on the table of contents of ISO/IEC DTR 19768
@ -985,7 +985,74 @@ This page describes the TR 24733 support in the GCC 7 series.
<span class="emphasis"><em>4</em></span>
</td><td colspan="3" align="left">
<span class="emphasis"><em>Notes on C compatibility</em></span>
</td></tr></tbody></table></div></div><br class="table-break" /></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. 
</td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.specfun"></a>C++ IS 29124</h3></div></div></div><p>
This table is based on the table of contents of ISO/IEC FDIS 29124
Doc No: N3060 Date: 2010-03-06
Extensions to the C++ Library to support mathematical special functions
</p><p>
Complete support for IS 29124 is in GCC 6.1 and later releases, when using
at least C++11 (for older releases or C++98/C++03 use TR1 instead).
For C++11 and C++14 the additions to the library are not declared by their
respective headers unless <code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code>
is defined as a macro that expands to a non-zero integer constant.
For C++17 the special functions are always declared (since GCC 7.1).
</p><p>
When the special functions are declared the macro
<code class="code">__STDCPP_MATH_SPEC_FUNCS__</code> is defined to <code class="code">201003L</code>.
</p><p>
In addition to the special functions defined in IS 29124, for
non-strict modes (i.e. <code class="code">-std=gnu++NN</code> modes) the
hypergeometric functions and confluent hypergeometric functions
from TR1 are also provided, defined in namespace
<code class="code">__gnu_cxx</code>.
</p><div class="table"><a id="table.specfun_status"></a><p class="title"><strong>Table 1.9. C++ Special Functions Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ Special Functions Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td align="left">7</td><td align="left">Macro names</td><td align="left">Partial</td><td align="left">No diagnostic for inconsistent definitions of
<code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></td></tr><tr><td align="left">8</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.10</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.11</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.12</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.13</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.14</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.15</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.16</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.17</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.18</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.19</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.20</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.21</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.2</td><td align="left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">8.3</td><td align="left">The header <code class="code">&lt;ctgmath&gt;</code></td><td align="left">Partial</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.4</td><td align="left">The header <code class="code">&lt;tgmath.h&gt;</code></td><td align="left">N</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.specfun.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 2011 standard,
see <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++ 2011 Implementation
Specific Behavior</a>. This section documents behaviour which
is required by IS 29124.
</p><p>
<span class="emphasis"><em>7.2 [macro.user]/3 /4</em></span> The functions declared in
Clause 8 are only declared when
<code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__ == 1</code>
(or in C++17 mode, for GCC 7.1 and later).
</p><p>
<span class="emphasis"><em>8.1.1 [sf.cmath.Lnm]/1</em></span> The effect of calling
these functions with <code class="code">n &gt;= 128</code> or <code class="code">m &gt;= 128</code>
should be described here.
</p><p>
<span class="emphasis"><em>8.1.2 [sf.cmath.Plm]/3</em></span> The effect of calling
these functions with <code class="code">l &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.3 [sf.cmath.I]/3</em></span> The effect of calling
these functions with <code class="code">nu &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.8 [sf.cmath.J]/3</em></span> The effect of calling
these functions with <code class="code">nu &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.9 [sf.cmath.K]/3</em></span> The effect of calling
these functions with <code class="code">nu &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.10 [sf.cmath.N]/3</em></span> The effect of calling
these functions with <code class="code">nu &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.15 [sf.cmath.Hn]/3</em></span> The effect of calling
these functions with <code class="code">n &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.16 [sf.cmath.Ln]/3</em></span> The effect of calling
these functions with <code class="code">n &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.17 [sf.cmath.Pl]/3</em></span> The effect of calling
these functions with <code class="code">l &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.19 [sf.cmath.j]/3</em></span> The effect of calling
these functions with <code class="code">n &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.20 [sf.cmath.Ylm]/3</em></span> The effect of calling
these functions with <code class="code">l &gt;= 128</code> should be described here.
</p><p>
<span class="emphasis"><em>8.1.21 [sf.cmath.n]/3</em></span> The effect of calling
these functions with <code class="code">n &gt;= 128</code> should be described here.
</p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. 
Introduction
 </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> License</td></tr></table></div></body></html>

View File

@ -50,6 +50,10 @@
<!-- Section 01.6 : Status C++ TR24733 -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr24733.xml">
</xi:include>
<!-- Section 01.7 : Status C++ IS 24733 -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxis29124.xml">
</xi:include>
</section>
<!-- Section 02 : License -->

View File

@ -0,0 +1,315 @@
<section xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:id="status.iso.specfun" xreflabel="Status C++ 29124">
<?dbhtml filename="status_iso_cxxis29124.html"?>
<info><title>C++ IS 29124</title>
<keywordset>
<keyword>ISO C++</keyword>
<keyword>Special Functions</keyword>
</keywordset>
</info>
<para>
This table is based on the table of contents of ISO/IEC FDIS 29124
Doc No: N3060 Date: 2010-03-06
Extensions to the C++ Library to support mathematical special functions
</para>
<para>
Complete support for IS 29124 is in GCC 6.1 and later releases, when using
at least C++11 (for older releases or C++98/C++03 use TR1 instead).
For C++11 and C++14 the additions to the library are not declared by their
respective headers unless <code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code>
is defined as a macro that expands to a non-zero integer constant.
For C++17 the special functions are always declared (since GCC 7.1).
</para>
<para>
When the special functions are declared the macro
<code>__STDCPP_MATH_SPEC_FUNCS__</code> is defined to <code>201003L</code>.
</para>
<para>
In addition to the special functions defined in IS 29124, for
non-strict modes (i.e. <code>-std=gnu++NN</code> modes) the
hypergeometric functions and confluent hypergeometric functions
from TR1 are also provided, defined in namespace
<code>__gnu_cxx</code>.
</para>
<!-- Status is Yes or No, Broken/Partial-->
<!--
Yes
No
<?dbhtml bgcolor="#C8B0B0" ?>
Broken/Partial
<?dbhtml bgcolor="#B0B0B0" ?>
-->
<table frame="all" xml:id="table.specfun_status">
<title>C++ Special Functions Implementation Status</title>
<tgroup cols="4" align="left" colsep="0" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<colspec colname="c3"/>
<colspec colname="c4"/>
<thead>
<row>
<entry>Section</entry>
<entry>Description</entry>
<entry>Status</entry>
<entry>Comments</entry>
</row>
</thead>
<tbody>
<row>
<?dbhtml bgcolor="#B0B0B0" ?>
<entry>7</entry>
<entry>Macro names</entry>
<entry>Partial</entry>
<entry>No diagnostic for inconsistent definitions of
<code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code></entry>
</row>
<row>
<entry>8</entry>
<entry>Mathematical special functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1</entry>
<entry>Additions to header <code>&lt;cmath&gt;</code> synopsis</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.1</entry>
<entry>associated Laguerre polynomials</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.2</entry>
<entry>associated Legendre functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.3</entry>
<entry>beta function</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.4</entry>
<entry>(complete) elliptic integral of the first kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.5</entry>
<entry>(complete) elliptic integral of the second kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.6</entry>
<entry>(complete) elliptic integral of the third kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.7</entry>
<entry>regular modified cylindrical Bessel functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.8</entry>
<entry>cylindrical Bessel functions (of the first kind)</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.9</entry>
<entry>irregular modified cylindrical Bessel functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.10</entry>
<entry>cylindrical Neumann functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.11</entry>
<entry>(incomplete) elliptic integral of the first kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.12</entry>
<entry>(incomplete) elliptic integral of the second kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.13</entry>
<entry>(incomplete) elliptic integral of the third kind</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.14</entry>
<entry>exponential integral</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.15</entry>
<entry>Hermite polynomials</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.16</entry>
<entry>Laguerre polynomials</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.17</entry>
<entry>Legendre polynomials</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.18</entry>
<entry>Riemann zeta function</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.19</entry>
<entry>spherical Bessel functions (of the first kind)</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.20</entry>
<entry>spherical associated Legendre functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.1.21</entry>
<entry>spherical Neumann functions</entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<entry>8.2</entry>
<entry>Additions to header <code>&lt;math.h&gt;</code></entry>
<entry>Y</entry>
<entry/>
</row>
<row>
<?dbhtml bgcolor="#B0B0B0" ?>
<entry>8.3</entry>
<entry>The header <code>&lt;ctgmath&gt;</code></entry>
<entry>Partial</entry>
<entry>Conflicts with C++ 2011 requirements.</entry>
</row>
<row>
<?dbhtml bgcolor="#C8B0B0" ?>
<entry>8.4</entry>
<entry>The header <code>&lt;tgmath.h&gt;</code></entry>
<entry>N</entry>
<entry>Conflicts with C++ 2011 requirements.</entry>
</row>
</tbody>
</tgroup>
</table>
<section xml:id="iso.specfun.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
<para>For behaviour which is specified by the 2011 standard,
see <link linkend="iso.2011.specific">C++ 2011 Implementation
Specific Behavior</link>. This section documents behaviour which
is required by IS 29124.
</para>
<para>
<emphasis>7.2 [macro.user]/3 /4</emphasis> The functions declared in
Clause 8 are only declared when
<code>__STDCPP_WANT_MATH_SPEC_FUNCS__ == 1</code>
(or in C++17 mode, for GCC 7.1 and later).
</para>
<para>
<emphasis>8.1.1 [sf.cmath.Lnm]/1</emphasis> The effect of calling
these functions with <code>n >= 128</code> or <code>m >= 128</code>
should be described here.
</para>
<para>
<emphasis>8.1.2 [sf.cmath.Plm]/3</emphasis> The effect of calling
these functions with <code>l >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.3 [sf.cmath.I]/3</emphasis> The effect of calling
these functions with <code>nu >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.8 [sf.cmath.J]/3</emphasis> The effect of calling
these functions with <code>nu >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.9 [sf.cmath.K]/3</emphasis> The effect of calling
these functions with <code>nu >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.10 [sf.cmath.N]/3</emphasis> The effect of calling
these functions with <code>nu >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.15 [sf.cmath.Hn]/3</emphasis> The effect of calling
these functions with <code>n >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.16 [sf.cmath.Ln]/3</emphasis> The effect of calling
these functions with <code>n >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.17 [sf.cmath.Pl]/3</emphasis> The effect of calling
these functions with <code>l >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.19 [sf.cmath.j]/3</emphasis> The effect of calling
these functions with <code>n >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.20 [sf.cmath.Ylm]/3</emphasis> The effect of calling
these functions with <code>l >= 128</code> should be described here.
</para>
<para>
<emphasis>8.1.21 [sf.cmath.n]/3</emphasis> The effect of calling
these functions with <code>n >= 128</code> should be described here.
</para>
</section>
</section>