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"?> 4 5<info><title>C++ IS 29124</title> 6 <keywordset> 7 <keyword>ISO C++</keyword> 8 <keyword>Special Functions</keyword> 9 </keywordset> 10</info> 11 12<para> 13This table is based on the table of contents of ISO/IEC FDIS 29124, 14Doc No: N3060, Date: 2010-03-06, 15"Extensions to the C++ Library to support mathematical special functions". 16</para> 17 18<para> 19Complete support for IS 29124 is in GCC 6.1 and later releases, when using 20at least C++11 (for older releases or C++98/C++03 use TR1 instead). 21For C++11 and C++14 the additions to the library are not declared by their 22respective headers unless <code>__STDCPP_WANT_MATH_SPEC_FUNCS__</code> 23is defined as a macro that expands to a non-zero integer constant. 24For C++17 the special functions are always declared (since GCC 7.1). 25</para> 26 27<para> 28When the special functions are declared the macro 29<code>__STDCPP_MATH_SPEC_FUNCS__</code> is defined to <code>201003L</code>. 30</para> 31 32<para> 33In addition to the special functions defined in IS 29124, for 34non-strict modes (i.e. <code>-std=gnu++NN</code> modes) the 35hypergeometric functions and confluent hypergeometric functions 36from TR1 are also provided, defined in namespace 37<code>__gnu_cxx</code>. 38</para> 39 40<!-- Status is Yes or No, Broken/Partial--> 41<!-- 42 Yes 43 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> 51 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"/> 57 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><cmath></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><math.h></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><ctgmath></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><tgmath.h></code></entry> 230 <entry>N</entry> 231 <entry>Conflicts with C++ 2011 requirements.</entry> 232 </row> 233 </tbody> 234</tgroup> 235</table> 236 237<section xml:id="iso.specfun.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info> 238 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> 244 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> 251 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> 257 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> 262 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> 267 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> 272 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> 277 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> 282 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> 287 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> 292 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> 297 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> 302 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> 307 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> 312 313</section> 314 315</section> 316