From Jason Turner

[numbers]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp6gf4zbk2/{from.md → to.md} +305 -0
tmp/tmp6gf4zbk2/{from.md → to.md} RENAMED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Numbers <a id="numbers">[[numbers]]</a>
2
+
3
+ ### Header `<numbers>` synopsis <a id="numbers.syn">[[numbers.syn]]</a>
4
+
5
+ ``` cpp
6
+ namespace std::numbers {
7
+ template<class T> inline constexpr T e_v = unspecified;
8
+ template<class T> inline constexpr T log2e_v = unspecified;
9
+ template<class T> inline constexpr T log10e_v = unspecified;
10
+ template<class T> inline constexpr T pi_v = unspecified;
11
+ template<class T> inline constexpr T inv_pi_v = unspecified;
12
+ template<class T> inline constexpr T inv_sqrtpi_v = unspecified;
13
+ template<class T> inline constexpr T ln2_v = unspecified;
14
+ template<class T> inline constexpr T ln10_v = unspecified;
15
+ template<class T> inline constexpr T sqrt2_v = unspecified;
16
+ template<class T> inline constexpr T sqrt3_v = unspecified;
17
+ template<class T> inline constexpr T inv_sqrt3_v = unspecified;
18
+ template<class T> inline constexpr T egamma_v = unspecified;
19
+ template<class T> inline constexpr T phi_v = unspecified;
20
+
21
+ template<floating_point T> inline constexpr T e_v<T> = see below;
22
+ template<floating_point T> inline constexpr T log2e_v<T> = see below;
23
+ template<floating_point T> inline constexpr T log10e_v<T> = see below;
24
+ template<floating_point T> inline constexpr T pi_v<T> = see below;
25
+ template<floating_point T> inline constexpr T inv_pi_v<T> = see below;
26
+ template<floating_point T> inline constexpr T inv_sqrtpi_v<T> = see below;
27
+ template<floating_point T> inline constexpr T ln2_v<T> = see below;
28
+ template<floating_point T> inline constexpr T ln10_v<T> = see below;
29
+ template<floating_point T> inline constexpr T sqrt2_v<T> = see below;
30
+ template<floating_point T> inline constexpr T sqrt3_v<T> = see below;
31
+ template<floating_point T> inline constexpr T inv_sqrt3_v<T> = see below;
32
+ template<floating_point T> inline constexpr T egamma_v<T> = see below;
33
+ template<floating_point T> inline constexpr T phi_v<T> = see below;
34
+
35
+ inline constexpr double e = e_v<double>;
36
+ inline constexpr double log2e = log2e_v<double>;
37
+ inline constexpr double log10e = log10e_v<double>;
38
+ inline constexpr double pi = pi_v<double>;
39
+ inline constexpr double inv_pi = inv_pi_v<double>;
40
+ inline constexpr double inv_sqrtpi = inv_sqrtpi_v<double>;
41
+ inline constexpr double ln2 = ln2_v<double>;
42
+ inline constexpr double ln10 = ln10_v<double>;
43
+ inline constexpr double sqrt2 = sqrt2_v<double>;
44
+ inline constexpr double sqrt3 = sqrt3_v<double>;
45
+ inline constexpr double inv_sqrt3 = inv_sqrt3_v<double>;
46
+ inline constexpr double egamma = egamma_v<double>;
47
+ inline constexpr double phi = phi_v<double>;
48
+ }
49
+ ```
50
+
51
+ ### Mathematical constants <a id="math.constants">[[math.constants]]</a>
52
+
53
+ The library-defined partial specializations of mathematical constant
54
+ variable templates are initialized with the nearest representable values
55
+ of e, log₂ e, log₁₀ e, π, $\frac{1}{\pi}$, $\frac{1}{\sqrt{\pi}}$,
56
+ $\ln 2$, $\ln 10$, $\sqrt{2}$, $\sqrt{3}$, $\frac{1}{\sqrt{3}}$, the
57
+ Euler-Mascheroni γ constant, and the golden ratio φ constant
58
+ $\frac{1+\sqrt{5}}{2}$, respectively.
59
+
60
+ Pursuant to [[namespace.std]], a program may partially or explicitly
61
+ specialize a mathematical constant variable template provided that the
62
+ specialization depends on a program-defined type.
63
+
64
+ A program that instantiates a primary template of a mathematical
65
+ constant variable template is ill-formed.
66
+
67
+ <!-- Link reference definitions -->
68
+ [bad.alloc]: support.md#bad.alloc
69
+ [basic.fundamental]: basic.md#basic.fundamental
70
+ [basic.stc.thread]: basic.md#basic.stc.thread
71
+ [basic.types]: basic.md#basic.types
72
+ [bit]: #bit
73
+ [bit.cast]: #bit.cast
74
+ [bit.count]: #bit.count
75
+ [bit.endian]: #bit.endian
76
+ [bit.general]: #bit.general
77
+ [bit.pow.two]: #bit.pow.two
78
+ [bit.rotate]: #bit.rotate
79
+ [bit.syn]: #bit.syn
80
+ [c.math]: #c.math
81
+ [c.math.abs]: #c.math.abs
82
+ [c.math.fpclass]: #c.math.fpclass
83
+ [c.math.hypot3]: #c.math.hypot3
84
+ [c.math.lerp]: #c.math.lerp
85
+ [c.math.rand]: #c.math.rand
86
+ [cfenv]: #cfenv
87
+ [cfenv.syn]: #cfenv.syn
88
+ [class.gslice]: #class.gslice
89
+ [class.gslice.overview]: #class.gslice.overview
90
+ [class.slice]: #class.slice
91
+ [class.slice.overview]: #class.slice.overview
92
+ [cmath.syn]: #cmath.syn
93
+ [cmplx.over]: #cmplx.over
94
+ [complex]: #complex
95
+ [complex.literals]: #complex.literals
96
+ [complex.member.ops]: #complex.member.ops
97
+ [complex.members]: #complex.members
98
+ [complex.numbers]: #complex.numbers
99
+ [complex.ops]: #complex.ops
100
+ [complex.special]: #complex.special
101
+ [complex.syn]: #complex.syn
102
+ [complex.transcendentals]: #complex.transcendentals
103
+ [complex.value.ops]: #complex.value.ops
104
+ [cons.slice]: #cons.slice
105
+ [conv.prom]: expr.md#conv.prom
106
+ [cpp.pragma]: cpp.md#cpp.pragma
107
+ [cpp17.copyassignable]: #cpp17.copyassignable
108
+ [cpp17.copyconstructible]: #cpp17.copyconstructible
109
+ [cpp17.equalitycomparable]: #cpp17.equalitycomparable
110
+ [dcl.init]: dcl.md#dcl.init
111
+ [expr.const]: expr.md#expr.const
112
+ [gslice.access]: #gslice.access
113
+ [gslice.array.assign]: #gslice.array.assign
114
+ [gslice.array.comp.assign]: #gslice.array.comp.assign
115
+ [gslice.array.fill]: #gslice.array.fill
116
+ [gslice.cons]: #gslice.cons
117
+ [implimits]: limits.md#implimits
118
+ [indirect.array.assign]: #indirect.array.assign
119
+ [indirect.array.comp.assign]: #indirect.array.comp.assign
120
+ [indirect.array.fill]: #indirect.array.fill
121
+ [input.iterators]: iterators.md#input.iterators
122
+ [input.output]: input.md#input.output
123
+ [intro.object]: basic.md#intro.object
124
+ [iostate.flags]: input.md#iostate.flags
125
+ [istream.formatted]: input.md#istream.formatted
126
+ [iterator.concept.contiguous]: iterators.md#iterator.concept.contiguous
127
+ [iterator.requirements.general]: iterators.md#iterator.requirements.general
128
+ [library.c]: library.md#library.c
129
+ [mask.array.assign]: #mask.array.assign
130
+ [mask.array.comp.assign]: #mask.array.comp.assign
131
+ [mask.array.fill]: #mask.array.fill
132
+ [math.constants]: #math.constants
133
+ [namespace.std]: library.md#namespace.std
134
+ [numarray]: #numarray
135
+ [numbers]: #numbers
136
+ [numbers.syn]: #numbers.syn
137
+ [numeric.requirements]: #numeric.requirements
138
+ [numerics]: #numerics
139
+ [numerics.general]: #numerics.general
140
+ [numerics.summary]: #numerics.summary
141
+ [output.iterators]: iterators.md#output.iterators
142
+ [rand]: #rand
143
+ [rand.adapt]: #rand.adapt
144
+ [rand.adapt.disc]: #rand.adapt.disc
145
+ [rand.adapt.general]: #rand.adapt.general
146
+ [rand.adapt.ibits]: #rand.adapt.ibits
147
+ [rand.adapt.shuf]: #rand.adapt.shuf
148
+ [rand.device]: #rand.device
149
+ [rand.dist]: #rand.dist
150
+ [rand.dist.bern]: #rand.dist.bern
151
+ [rand.dist.bern.bernoulli]: #rand.dist.bern.bernoulli
152
+ [rand.dist.bern.bin]: #rand.dist.bern.bin
153
+ [rand.dist.bern.geo]: #rand.dist.bern.geo
154
+ [rand.dist.bern.negbin]: #rand.dist.bern.negbin
155
+ [rand.dist.general]: #rand.dist.general
156
+ [rand.dist.norm]: #rand.dist.norm
157
+ [rand.dist.norm.cauchy]: #rand.dist.norm.cauchy
158
+ [rand.dist.norm.chisq]: #rand.dist.norm.chisq
159
+ [rand.dist.norm.f]: #rand.dist.norm.f
160
+ [rand.dist.norm.lognormal]: #rand.dist.norm.lognormal
161
+ [rand.dist.norm.normal]: #rand.dist.norm.normal
162
+ [rand.dist.norm.t]: #rand.dist.norm.t
163
+ [rand.dist.pois]: #rand.dist.pois
164
+ [rand.dist.pois.exp]: #rand.dist.pois.exp
165
+ [rand.dist.pois.extreme]: #rand.dist.pois.extreme
166
+ [rand.dist.pois.gamma]: #rand.dist.pois.gamma
167
+ [rand.dist.pois.poisson]: #rand.dist.pois.poisson
168
+ [rand.dist.pois.weibull]: #rand.dist.pois.weibull
169
+ [rand.dist.samp]: #rand.dist.samp
170
+ [rand.dist.samp.discrete]: #rand.dist.samp.discrete
171
+ [rand.dist.samp.pconst]: #rand.dist.samp.pconst
172
+ [rand.dist.samp.plinear]: #rand.dist.samp.plinear
173
+ [rand.dist.uni]: #rand.dist.uni
174
+ [rand.dist.uni.int]: #rand.dist.uni.int
175
+ [rand.dist.uni.real]: #rand.dist.uni.real
176
+ [rand.eng]: #rand.eng
177
+ [rand.eng.lcong]: #rand.eng.lcong
178
+ [rand.eng.mers]: #rand.eng.mers
179
+ [rand.eng.sub]: #rand.eng.sub
180
+ [rand.predef]: #rand.predef
181
+ [rand.req]: #rand.req
182
+ [rand.req.adapt]: #rand.req.adapt
183
+ [rand.req.dist]: #rand.req.dist
184
+ [rand.req.eng]: #rand.req.eng
185
+ [rand.req.genl]: #rand.req.genl
186
+ [rand.req.seedseq]: #rand.req.seedseq
187
+ [rand.req.urng]: #rand.req.urng
188
+ [rand.synopsis]: #rand.synopsis
189
+ [rand.util]: #rand.util
190
+ [rand.util.canonical]: #rand.util.canonical
191
+ [rand.util.seedseq]: #rand.util.seedseq
192
+ [random.access.iterators]: iterators.md#random.access.iterators
193
+ [res.on.data.races]: library.md#res.on.data.races
194
+ [sf.cmath]: #sf.cmath
195
+ [sf.cmath.assoc.laguerre]: #sf.cmath.assoc.laguerre
196
+ [sf.cmath.assoc.legendre]: #sf.cmath.assoc.legendre
197
+ [sf.cmath.beta]: #sf.cmath.beta
198
+ [sf.cmath.comp.ellint.1]: #sf.cmath.comp.ellint.1
199
+ [sf.cmath.comp.ellint.2]: #sf.cmath.comp.ellint.2
200
+ [sf.cmath.comp.ellint.3]: #sf.cmath.comp.ellint.3
201
+ [sf.cmath.cyl.bessel.i]: #sf.cmath.cyl.bessel.i
202
+ [sf.cmath.cyl.bessel.j]: #sf.cmath.cyl.bessel.j
203
+ [sf.cmath.cyl.bessel.k]: #sf.cmath.cyl.bessel.k
204
+ [sf.cmath.cyl.neumann]: #sf.cmath.cyl.neumann
205
+ [sf.cmath.ellint.1]: #sf.cmath.ellint.1
206
+ [sf.cmath.ellint.2]: #sf.cmath.ellint.2
207
+ [sf.cmath.ellint.3]: #sf.cmath.ellint.3
208
+ [sf.cmath.expint]: #sf.cmath.expint
209
+ [sf.cmath.hermite]: #sf.cmath.hermite
210
+ [sf.cmath.laguerre]: #sf.cmath.laguerre
211
+ [sf.cmath.legendre]: #sf.cmath.legendre
212
+ [sf.cmath.riemann.zeta]: #sf.cmath.riemann.zeta
213
+ [sf.cmath.sph.bessel]: #sf.cmath.sph.bessel
214
+ [sf.cmath.sph.legendre]: #sf.cmath.sph.legendre
215
+ [sf.cmath.sph.neumann]: #sf.cmath.sph.neumann
216
+ [slice.access]: #slice.access
217
+ [slice.arr.assign]: #slice.arr.assign
218
+ [slice.arr.comp.assign]: #slice.arr.comp.assign
219
+ [slice.arr.fill]: #slice.arr.fill
220
+ [slice.ops]: #slice.ops
221
+ [strings]: strings.md#strings
222
+ [template.gslice.array]: #template.gslice.array
223
+ [template.gslice.array.overview]: #template.gslice.array.overview
224
+ [template.indirect.array]: #template.indirect.array
225
+ [template.indirect.array.overview]: #template.indirect.array.overview
226
+ [template.mask.array]: #template.mask.array
227
+ [template.mask.array.overview]: #template.mask.array.overview
228
+ [template.slice.array]: #template.slice.array
229
+ [template.slice.array.overview]: #template.slice.array.overview
230
+ [template.valarray]: #template.valarray
231
+ [template.valarray.overview]: #template.valarray.overview
232
+ [thread.jthread.class]: thread.md#thread.jthread.class
233
+ [thread.thread.class]: thread.md#thread.thread.class
234
+ [utility.arg.requirements]: library.md#utility.arg.requirements
235
+ [valarray.access]: #valarray.access
236
+ [valarray.assign]: #valarray.assign
237
+ [valarray.binary]: #valarray.binary
238
+ [valarray.cassign]: #valarray.cassign
239
+ [valarray.comparison]: #valarray.comparison
240
+ [valarray.cons]: #valarray.cons
241
+ [valarray.members]: #valarray.members
242
+ [valarray.nonmembers]: #valarray.nonmembers
243
+ [valarray.range]: #valarray.range
244
+ [valarray.special]: #valarray.special
245
+ [valarray.sub]: #valarray.sub
246
+ [valarray.syn]: #valarray.syn
247
+ [valarray.transcend]: #valarray.transcend
248
+ [valarray.unary]: #valarray.unary
249
+
250
+ [^1]: In other words, value types. These include arithmetic types,
251
+ pointers, the library class `complex`, and instantiations of
252
+ `valarray` for value types.
253
+
254
+ [^2]: The name of this engine refers, in part, to a property of its
255
+ period: For properly-selected values of the parameters, the period
256
+ is closely related to a large Mersenne prime number.
257
+
258
+ [^3]: The parameter is intended to allow an implementation to
259
+ differentiate between different sources of randomness.
260
+
261
+ [^4]: If a device has n states whose respective probabilities are
262
+ P₀, …, Pₙ₋₁, the device entropy S is defined as
263
+ $S = - \sum_{i=0}^{n-1} P_i \cdot \log P_i$.
264
+
265
+ [^5]: b is introduced to avoid any attempt to produce more bits of
266
+ randomness than can be held in `RealType`.
267
+
268
+ [^6]: The distribution corresponding to this probability density
269
+ function is also known (with a possible change of variable) as the
270
+ Gumbel Type I, the log-Weibull, or the Fisher-Tippett Type I
271
+ distribution.
272
+
273
+ [^7]: [[implimits]] recommends a minimum number of recursively nested
274
+ template instantiations. This requirement thus indirectly suggests a
275
+ minimum allowable complexity for valarray expressions.
276
+
277
+ [^8]: The intent is to specify an array template that has the minimum
278
+ functionality necessary to address aliasing ambiguities and the
279
+ proliferation of temporary objects. Thus, the `valarray` template is
280
+ neither a matrix class nor a field class. However, it is a very
281
+ useful building block for designing such classes.
282
+
283
+ [^9]: This default constructor is essential, since arrays of `valarray`
284
+ may be useful. After initialization, the length of an empty array
285
+ can be increased with the `resize` member function.
286
+
287
+ [^10]: This constructor is the preferred method for converting a C array
288
+ to a `valarray` object.
289
+
290
+ [^11]: This copy constructor creates a distinct array rather than an
291
+ alias. Implementations in which arrays share storage are permitted,
292
+ but they would need to implement a copy-on-reference mechanism to
293
+ ensure that arrays are conceptually distinct.
294
+
295
+ [^12]: BLAS stands for *Basic Linear Algebra Subprograms.* C++ programs
296
+ may instantiate this class. See, for example, Dongarra, Du Croz,
297
+ Duff, and Hammerling: *A set of Level 3 Basic Linear Algebra
298
+ Subprograms*; Technical Report MCS-P1-0888, Argonne National
299
+ Laboratory (USA), Mathematics and Computer Science Division, August,
300
+ 1988.
301
+
302
+ [^13]: A mathematical function is mathematically defined for a given set
303
+ of argument values (a) if it is explicitly defined for that set of
304
+ argument values, or (b) if its limiting value exists and does not
305
+ depend on the direction of approach.