From Jason Turner

[numeric.limits.members]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpz987fn5i/{from.md → to.md} +22 -36
tmp/tmpz987fn5i/{from.md → to.md} RENAMED
@@ -178,96 +178,82 @@ Number”.[^17]
178
 
179
  Meaningful for all floating-point types.
180
 
181
  Shall be `true` for all specializations in which `is_iec559 != false`.
182
 
183
- ``` cpp
184
- static constexpr float_denorm_style has_denorm;
185
- ```
186
-
187
- `denorm_present` if the type allows subnormal values (variable number of
188
- exponent bits)[^18], `denorm_absent` if the type does not allow
189
- subnormal values, and `denorm_indeterminate` if it is indeterminate at
190
- compile time whether the type allows subnormal values.
191
-
192
- Meaningful for all floating-point types.
193
-
194
- ``` cpp
195
- static constexpr bool has_denorm_loss;
196
- ```
197
-
198
- `true` if loss of accuracy is detected as a denormalization loss, rather
199
- than as an inexact result.[^19]
200
-
201
  ``` cpp
202
  static constexpr T infinity() noexcept;
203
  ```
204
 
205
- Representation of positive infinity, if available.[^20]
206
 
207
  Meaningful for all specializations for which `has_infinity != false`.
208
  Required in specializations for which `is_iec559 != false`.
209
 
210
  ``` cpp
211
  static constexpr T quiet_NaN() noexcept;
212
  ```
213
 
214
- Representation of a quiet “Not a Number”, if available.[^21]
215
 
216
  Meaningful for all specializations for which `has_quiet_NaN != false`.
217
  Required in specializations for which `is_iec559 != false`.
218
 
219
  ``` cpp
220
  static constexpr T signaling_NaN() noexcept;
221
  ```
222
 
223
- Representation of a signaling “Not a Number”, if available.[^22]
224
 
225
  Meaningful for all specializations for which
226
  `has_signaling_NaN != false`. Required in specializations for which
227
  `is_iec559 != false`.
228
 
229
  ``` cpp
230
  static constexpr T denorm_min() noexcept;
231
  ```
232
 
233
- Minimum positive subnormal value.[^23]
 
 
234
 
235
  Meaningful for all floating-point types.
236
 
237
- In specializations for which `has_denorm == false`, returns the minimum
238
- positive normalized value.
239
-
240
  ``` cpp
241
  static constexpr bool is_iec559;
242
  ```
243
 
244
- `true` if and only if the type adheres to ISO/IEC/IEEE 60559.[^24]
 
 
 
 
245
 
246
  Meaningful for all floating-point types.
247
 
248
  ``` cpp
249
  static constexpr bool is_bounded;
250
  ```
251
 
252
- `true` if the set of values representable by the type is finite.[^25]
253
 
254
- [*Note 1*: All fundamental types [[basic.fundamental]] are bounded.
255
  This member would be `false` for arbitrary precision
256
  types. — *end note*]
257
 
258
  Meaningful for all specializations.
259
 
260
  ``` cpp
261
  static constexpr bool is_modulo;
262
  ```
263
 
264
- `true` if the type is modulo.[^26] A type is modulo if, for any
265
- operation involving `+`, `-`, or `*` on values of that type whose result
266
- would fall outside the range \[`min()`, `max()`\], the value returned
267
- differs from the true value by an integer multiple of
268
- `max() - min() + 1`.
 
269
 
270
  [*Example 1*: `is_modulo` is `false` for signed integer
271
  types [[basic.fundamental]] unless an implementation, as an extension to
272
  this document, defines signed integer overflow to
273
  wrap. — *end example*]
@@ -277,26 +263,26 @@ Meaningful for all specializations.
277
  ``` cpp
278
  static constexpr bool traps;
279
  ```
280
 
281
  `true` if, at the start of the program, there exists a value of the type
282
- that would cause an arithmetic operation using that value to trap.[^27]
283
 
284
  Meaningful for all specializations.
285
 
286
  ``` cpp
287
  static constexpr bool tinyness_before;
288
  ```
289
 
290
- `true` if tinyness is detected before rounding.[^28]
291
 
292
  Meaningful for all floating-point types.
293
 
294
  ``` cpp
295
  static constexpr float_round_style round_style;
296
  ```
297
 
298
- The rounding style for the type.[^29]
299
 
300
  Meaningful for all floating-point types. Specializations for integer
301
  types shall return `round_toward_zero`.
302
 
 
178
 
179
  Meaningful for all floating-point types.
180
 
181
  Shall be `true` for all specializations in which `is_iec559 != false`.
182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  ``` cpp
184
  static constexpr T infinity() noexcept;
185
  ```
186
 
187
+ Representation of positive infinity, if available.[^18]
188
 
189
  Meaningful for all specializations for which `has_infinity != false`.
190
  Required in specializations for which `is_iec559 != false`.
191
 
192
  ``` cpp
193
  static constexpr T quiet_NaN() noexcept;
194
  ```
195
 
196
+ Representation of a quiet “Not a Number”, if available.[^19]
197
 
198
  Meaningful for all specializations for which `has_quiet_NaN != false`.
199
  Required in specializations for which `is_iec559 != false`.
200
 
201
  ``` cpp
202
  static constexpr T signaling_NaN() noexcept;
203
  ```
204
 
205
+ Representation of a signaling “Not a Number”, if available.[^20]
206
 
207
  Meaningful for all specializations for which
208
  `has_signaling_NaN != false`. Required in specializations for which
209
  `is_iec559 != false`.
210
 
211
  ``` cpp
212
  static constexpr T denorm_min() noexcept;
213
  ```
214
 
215
+ Minimum positive subnormal value, if available.[^21]
216
+
217
+ Otherwise, minimum positive normalized value.
218
 
219
  Meaningful for all floating-point types.
220
 
 
 
 
221
  ``` cpp
222
  static constexpr bool is_iec559;
223
  ```
224
 
225
+ `true` if and only if the type adheres to ISO/IEC/IEEE 60559.[^22]
226
+
227
+ [*Note 1*: The value is `true` for any of the types `float16_t`,
228
+ `float32_t`, `float64_t`, or `float128_t`, if
229
+ present [[basic.extended.fp]]. — *end note*]
230
 
231
  Meaningful for all floating-point types.
232
 
233
  ``` cpp
234
  static constexpr bool is_bounded;
235
  ```
236
 
237
+ `true` if the set of values representable by the type is finite.[^23]
238
 
239
+ [*Note 2*: All fundamental types [[basic.fundamental]] are bounded.
240
  This member would be `false` for arbitrary precision
241
  types. — *end note*]
242
 
243
  Meaningful for all specializations.
244
 
245
  ``` cpp
246
  static constexpr bool is_modulo;
247
  ```
248
 
249
+ `true` if the type is modulo.[^24]
250
+
251
+ A type is modulo if, for any operation involving `+`, `-`, or `*` on
252
+ values of that type whose result would fall outside the range \[`min()`,
253
+ `max()`\], the value returned differs from the true value by an integer
254
+ multiple of `max() - min() + 1`.
255
 
256
  [*Example 1*: `is_modulo` is `false` for signed integer
257
  types [[basic.fundamental]] unless an implementation, as an extension to
258
  this document, defines signed integer overflow to
259
  wrap. — *end example*]
 
263
  ``` cpp
264
  static constexpr bool traps;
265
  ```
266
 
267
  `true` if, at the start of the program, there exists a value of the type
268
+ that would cause an arithmetic operation using that value to trap.[^25]
269
 
270
  Meaningful for all specializations.
271
 
272
  ``` cpp
273
  static constexpr bool tinyness_before;
274
  ```
275
 
276
+ `true` if tinyness is detected before rounding.[^26]
277
 
278
  Meaningful for all floating-point types.
279
 
280
  ``` cpp
281
  static constexpr float_round_style round_style;
282
  ```
283
 
284
+ The rounding style for the type.[^27]
285
 
286
  Meaningful for all floating-point types. Specializations for integer
287
  types shall return `round_toward_zero`.
288