tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
numeric_limits.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2
3#ifndef TETL_LIMITS_NUMERIC_LIMITS_HPP
4#define TETL_LIMITS_NUMERIC_LIMITS_HPP
5
6#include <etl/_config/all.hpp>
7
13
14namespace etl {
15
16template <typename T>
18 static constexpr bool is_specialized = false;
19
20 static constexpr auto min() noexcept { return T(); }
21 static constexpr auto max() noexcept { return T(); }
22 static constexpr auto lowest() noexcept { return T(); }
23
24 static constexpr int digits = 0;
25 static constexpr int digits10 = 0;
26 static constexpr int max_digits10 = 0;
27
28 static constexpr bool is_signed = false;
29 static constexpr bool is_integer = false;
30 static constexpr bool is_exact = false;
31 static constexpr int radix = 0;
32 static constexpr auto epsilon() noexcept -> T { return T(); }
33 static constexpr auto round_error() noexcept -> T { return T(); }
34
35 static constexpr int min_exponent = 0;
36 static constexpr int min_exponent10 = 0;
37 static constexpr int max_exponent = 0;
38 static constexpr int max_exponent10 = 0;
39
40 static constexpr bool has_infinity = false;
41 static constexpr bool has_quiet_NaN = false; // NOLINT
42 static constexpr bool has_signaling_NaN = false; // NOLINT
43 static constexpr bool has_denorm_loss = false;
45
46 static constexpr auto infinity() noexcept -> T { return T(); }
47 static constexpr auto quiet_NaN() noexcept -> T { return T(); } // NOLINT
48 static constexpr auto signaling_NaN() noexcept -> T { return T(); } // NOLINT
49 static constexpr auto denorm_min() noexcept -> T { return T(); }
50
51 static constexpr bool is_iec559 = false;
52 static constexpr bool is_bounded = false;
53 static constexpr bool is_modulo = false;
54
55 static constexpr bool traps = false;
56 static constexpr bool tinyness_before = false;
58};
59
60template <>
61struct numeric_limits<bool> {
62 static constexpr bool is_specialized = true;
63
64 static constexpr auto min() noexcept -> bool { return false; }
65 static constexpr auto max() noexcept -> bool { return true; }
66 static constexpr auto lowest() noexcept -> bool { return false; }
67
68 static constexpr int digits = 1;
69 static constexpr int digits10 = 0;
70 static constexpr int max_digits10 = 0;
71
72 static constexpr bool is_signed = false;
73 static constexpr bool is_integer = true;
74 static constexpr bool is_exact = true;
75 static constexpr int radix = 2;
76 static constexpr auto epsilon() noexcept -> bool { return false; }
77 static constexpr auto round_error() noexcept -> bool { return false; }
78
79 static constexpr int min_exponent = 0;
80 static constexpr int min_exponent10 = 0;
81 static constexpr int max_exponent = 0;
82 static constexpr int max_exponent10 = 0;
83
84 static constexpr bool has_infinity = false;
85 static constexpr bool has_quiet_NaN = false; // NOLINT
86 static constexpr bool has_signaling_NaN = false; // NOLINT
87 static constexpr bool has_denorm_loss = false;
89
90 static constexpr auto infinity() noexcept -> bool { return false; }
91 static constexpr auto quiet_NaN() noexcept -> bool { return false; } // NOLINT
92 static constexpr auto signaling_NaN() noexcept -> bool { return false; } // NOLINT
93 static constexpr auto denorm_min() noexcept -> bool { return false; }
94
95 static constexpr bool is_iec559 = false;
96 static constexpr bool is_bounded = true;
97 static constexpr bool is_modulo = false;
98
99 static constexpr bool traps = false;
100 static constexpr bool tinyness_before = false;
102};
103
104template <>
105struct numeric_limits<char> {
106 static constexpr bool is_specialized = true;
107
108 static constexpr auto min() noexcept -> char { return CHAR_MIN; }
109 static constexpr auto max() noexcept -> char { return CHAR_MAX; }
110 static constexpr auto lowest() noexcept -> char { return CHAR_MIN; }
111
112 static constexpr bool is_signed = CHAR_MIN < 0;
113 static constexpr bool is_integer = true;
114 static constexpr bool is_exact = true;
115 static constexpr int radix = 2;
116 static constexpr auto epsilon() noexcept -> char { return char{}; }
117 static constexpr auto round_error() noexcept -> char { return char{}; }
118
119 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(char) - static_cast<unsigned>(is_signed));
120 static constexpr int digits10 = digits * 3 / 10;
121 static constexpr int max_digits10 = 0;
122
123 static constexpr int min_exponent = 0;
124 static constexpr int min_exponent10 = 0;
125 static constexpr int max_exponent = 0;
126 static constexpr int max_exponent10 = 0;
127
128 static constexpr bool has_infinity = false;
129 static constexpr bool has_quiet_NaN = false; // NOLINT
130 static constexpr bool has_signaling_NaN = false; // NOLINT
131 static constexpr bool has_denorm_loss = false;
133
134 static constexpr auto infinity() noexcept -> char { return char{}; }
135 static constexpr auto quiet_NaN() noexcept -> char { return char{}; } // NOLINT
136 static constexpr auto signaling_NaN() noexcept -> char { return char{}; } // NOLINT
137 static constexpr auto denorm_min() noexcept -> char { return char{}; }
138
139 static constexpr bool is_iec559 = false;
140 static constexpr bool is_bounded = true;
141 static constexpr bool is_modulo = is_signed;
142
143 static constexpr bool traps = true;
144 static constexpr bool tinyness_before = false;
146};
147
148template <>
149struct numeric_limits<signed char> {
150 static constexpr bool is_specialized = true;
151
152 static constexpr auto min() noexcept -> signed char { return SCHAR_MIN; }
153 static constexpr auto max() noexcept -> signed char { return SCHAR_MAX; }
154 static constexpr auto lowest() noexcept -> signed char { return SCHAR_MIN; }
155
156 static constexpr bool is_signed = SCHAR_MIN < 0;
157 static constexpr bool is_integer = true;
158 static constexpr bool is_exact = true;
159 static constexpr int radix = 2;
160 static constexpr auto epsilon() noexcept -> signed char { return {}; }
161 static constexpr auto round_error() noexcept -> signed char { return {}; }
162
163 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(signed char) - static_cast<unsigned>(is_signed));
164 static constexpr int digits10 = digits * 3 / 10;
165 static constexpr int max_digits10 = 0;
166
167 static constexpr int min_exponent = 0;
168 static constexpr int min_exponent10 = 0;
169 static constexpr int max_exponent = 0;
170 static constexpr int max_exponent10 = 0;
171
172 static constexpr bool has_infinity = false;
173 static constexpr bool has_quiet_NaN = false; // NOLINT
174 static constexpr bool has_signaling_NaN = false; // NOLINT
175 static constexpr bool has_denorm_loss = false;
177
178 static constexpr auto infinity() noexcept -> signed char { return {}; }
179 static constexpr auto quiet_NaN() noexcept -> signed char { return {}; } // NOLINT
180 static constexpr auto signaling_NaN() noexcept -> signed char { return {}; } // NOLINT
181 static constexpr auto denorm_min() noexcept -> signed char { return {}; }
182
183 static constexpr bool is_iec559 = false;
184 static constexpr bool is_bounded = true;
185 static constexpr bool is_modulo = false;
186
187 static constexpr bool traps = true;
188 static constexpr bool tinyness_before = false;
190};
191
192template <>
193struct numeric_limits<unsigned char> {
194 static constexpr bool is_specialized = true;
195
196 static constexpr auto lowest() noexcept -> unsigned char { return 0; }
197 static constexpr auto min() noexcept -> unsigned char { return 0; }
198 static constexpr auto max() noexcept -> unsigned char { return UCHAR_MAX; }
199
200 static constexpr bool is_signed = false;
201 static constexpr bool is_integer = true;
202 static constexpr bool is_exact = true;
203 static constexpr int radix = 2;
204 static constexpr auto epsilon() noexcept -> unsigned char { return {}; }
205 static constexpr auto round_error() noexcept -> unsigned char { return {}; }
206
207 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(unsigned char) - static_cast<unsigned>(is_signed));
208 static constexpr int digits10 = digits * 3 / 10;
209 static constexpr int max_digits10 = 0;
210
211 static constexpr int min_exponent = 0;
212 static constexpr int min_exponent10 = 0;
213 static constexpr int max_exponent = 0;
214 static constexpr int max_exponent10 = 0;
215
216 static constexpr bool has_infinity = false;
217 static constexpr bool has_quiet_NaN = false; // NOLINT
218 static constexpr bool has_signaling_NaN = false; // NOLINT
219 static constexpr bool has_denorm_loss = false;
221
222 static constexpr auto infinity() noexcept -> unsigned char { return 0; }
223 static constexpr auto quiet_NaN() noexcept -> unsigned char { return 0; } // NOLINT
224 static constexpr auto signaling_NaN() noexcept -> unsigned char { return 0; } // NOLINT
225 static constexpr auto denorm_min() noexcept -> unsigned char { return 0; }
226
227 static constexpr bool is_iec559 = false;
228 static constexpr bool is_bounded = true;
229 static constexpr bool is_modulo = true;
230
231 static constexpr bool traps = true;
232 static constexpr bool tinyness_before = false;
234};
235
236template <>
237struct numeric_limits<char8_t> {
238 static constexpr bool is_specialized = true;
239
240 static constexpr auto min() noexcept -> char8_t { return 0; }
241 static constexpr auto max() noexcept -> char8_t { return UCHAR_MAX; }
242 static constexpr auto lowest() noexcept -> char8_t { return min(); }
243
244 static constexpr bool is_signed = CHAR_MIN < 0;
245 static constexpr bool is_integer = true;
246 static constexpr bool is_exact = true;
247 static constexpr int radix = 2;
248 static constexpr auto epsilon() noexcept -> char8_t { return char8_t{}; }
249 static constexpr auto round_error() noexcept -> char8_t { return char8_t{}; }
250
251 static constexpr int digits = 8;
252 static constexpr int digits10 = 2;
253 static constexpr int max_digits10 = 0;
254
255 static constexpr int min_exponent = 0;
256 static constexpr int min_exponent10 = 0;
257 static constexpr int max_exponent = 0;
258 static constexpr int max_exponent10 = 0;
259
260 static constexpr bool has_infinity = false;
261 static constexpr bool has_quiet_NaN = false; // NOLINT
262 static constexpr bool has_signaling_NaN = false; // NOLINT
263 static constexpr bool has_denorm_loss = false;
265
266 static constexpr auto infinity() noexcept -> char8_t { return char8_t{}; }
267 static constexpr auto quiet_NaN() noexcept -> char8_t { return char8_t{}; } // NOLINT
268 static constexpr auto signaling_NaN() noexcept -> char8_t { return char8_t{}; } // NOLINT
269 static constexpr auto denorm_min() noexcept -> char8_t { return char8_t{}; }
270
271 static constexpr bool is_iec559 = false;
272 static constexpr bool is_bounded = true;
273 static constexpr bool is_modulo = true;
274
275 static constexpr bool traps = true;
276 static constexpr bool tinyness_before = false;
278};
279
280template <>
281struct numeric_limits<short> {
282 static constexpr bool is_specialized = true;
283
284 static constexpr auto lowest() noexcept -> short { return SHRT_MIN; }
285 static constexpr auto min() noexcept -> short { return SHRT_MIN; }
286 static constexpr auto max() noexcept -> short { return SHRT_MAX; }
287
288 static constexpr bool is_signed = true;
289 static constexpr bool is_integer = true;
290 static constexpr bool is_exact = true;
291 static constexpr int radix = 2;
292 static constexpr auto epsilon() noexcept -> short { return short{}; }
293 static constexpr auto round_error() noexcept -> short { return short{}; }
294
295 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(short) - static_cast<unsigned>(is_signed));
296 static constexpr int digits10 = digits * 3 / 10;
297 static constexpr int max_digits10 = 0;
298
299 static constexpr int min_exponent = 0;
300 static constexpr int min_exponent10 = 0;
301 static constexpr int max_exponent = 0;
302 static constexpr int max_exponent10 = 0;
303
304 static constexpr bool has_infinity = false;
305 static constexpr bool has_quiet_NaN = false; // NOLINT
306 static constexpr bool has_signaling_NaN = false; // NOLINT
307 static constexpr bool has_denorm_loss = false;
309
310 static constexpr auto infinity() noexcept -> short { return short{}; }
311 static constexpr auto quiet_NaN() noexcept -> short { return short{}; } // NOLINT
312 static constexpr auto signaling_NaN() noexcept -> short { return short{}; } // NOLINT
313 static constexpr auto denorm_min() noexcept -> short { return short{}; }
314
315 static constexpr bool is_iec559 = false;
316 static constexpr bool is_bounded = true;
317 static constexpr bool is_modulo = false;
318
319 static constexpr bool traps = true;
320 static constexpr bool tinyness_before = false;
322};
323
324template <>
325struct numeric_limits<unsigned short> {
326 static constexpr bool is_specialized = true;
327
328 static constexpr auto lowest() noexcept -> unsigned short { return 0; }
329 static constexpr auto min() noexcept -> unsigned short { return 0; }
330 static constexpr auto max() noexcept -> unsigned short { return USHRT_MAX; }
331
332 static constexpr bool is_signed = false;
333 static constexpr bool is_integer = true;
334 static constexpr bool is_exact = true;
335 static constexpr int radix = 2;
336 static constexpr auto epsilon() noexcept -> unsigned short { return {}; }
337 static constexpr auto round_error() noexcept -> unsigned short { return {}; }
338
339 static constexpr int digits
340 = static_cast<int>(CHAR_BIT * sizeof(unsigned short) - static_cast<unsigned>(is_signed));
341 static constexpr int digits10 = digits * 3 / 10;
342 static constexpr int max_digits10 = 0;
343
344 static constexpr int min_exponent = 0;
345 static constexpr int min_exponent10 = 0;
346 static constexpr int max_exponent = 0;
347 static constexpr int max_exponent10 = 0;
348
349 static constexpr bool has_infinity = false;
350 static constexpr bool has_quiet_NaN = false; // NOLINT
351 static constexpr bool has_signaling_NaN = false; // NOLINT
352 static constexpr bool has_denorm_loss = false;
354
355 static constexpr auto infinity() noexcept -> unsigned short { return 0; }
356 static constexpr auto quiet_NaN() noexcept -> unsigned short { return 0; } // NOLINT
357 static constexpr auto signaling_NaN() noexcept -> unsigned short { return 0; } // NOLINT
358 static constexpr auto denorm_min() noexcept -> unsigned short { return 0; }
359
360 static constexpr bool is_iec559 = false;
361 static constexpr bool is_bounded = true;
362 static constexpr bool is_modulo = true;
363
364 static constexpr bool traps = true;
365 static constexpr bool tinyness_before = false;
367};
368
369template <>
370struct numeric_limits<int> {
371 static constexpr bool is_specialized = true;
372
373 static constexpr auto lowest() noexcept -> int { return INT_MIN; }
374 static constexpr auto min() noexcept -> int { return INT_MIN; }
375 static constexpr auto max() noexcept -> int { return INT_MAX; }
376
377 static constexpr bool is_signed = true;
378 static constexpr bool is_integer = true;
379 static constexpr bool is_exact = true;
380 static constexpr int radix = 2;
381 static constexpr auto epsilon() noexcept -> int { return int{}; }
382 static constexpr auto round_error() noexcept -> int { return int{}; }
383
384 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(int) - static_cast<unsigned>(is_signed));
385 static constexpr int digits10 = digits * 3 / 10;
386 static constexpr int max_digits10 = 0;
387
388 static constexpr int min_exponent = 0;
389 static constexpr int min_exponent10 = 0;
390 static constexpr int max_exponent = 0;
391 static constexpr int max_exponent10 = 0;
392
393 static constexpr bool has_infinity = false;
394 static constexpr bool has_quiet_NaN = false; // NOLINT
395 static constexpr bool has_signaling_NaN = false; // NOLINT
396 static constexpr bool has_denorm_loss = false;
398
399 static constexpr auto infinity() noexcept -> int { return int{}; }
400 static constexpr auto quiet_NaN() noexcept -> int { return int{}; } // NOLINT
401 static constexpr auto signaling_NaN() noexcept -> int { return int{}; } // NOLINT
402 static constexpr auto denorm_min() noexcept -> int { return int{}; }
403
404 static constexpr bool is_iec559 = false;
405 static constexpr bool is_bounded = true;
406 static constexpr bool is_modulo = false;
407
408 static constexpr bool traps = true;
409 static constexpr bool tinyness_before = false;
411};
412
413template <>
414struct numeric_limits<unsigned int> {
415 static constexpr bool is_specialized = true;
416
417 static constexpr auto lowest() noexcept -> unsigned int { return 0; }
418 static constexpr auto min() noexcept -> unsigned int { return 0; }
419 static constexpr auto max() noexcept -> unsigned int { return UINT_MAX; }
420
421 static constexpr bool is_signed = false;
422 static constexpr bool is_integer = true;
423 static constexpr bool is_exact = true;
424 static constexpr int radix = 2;
425 static constexpr auto epsilon() noexcept -> unsigned int { return {}; }
426 static constexpr auto round_error() noexcept -> unsigned int { return {}; }
427
428 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(unsigned int) - static_cast<unsigned>(is_signed));
429 static constexpr int digits10 = digits * 3 / 10;
430 static constexpr int max_digits10 = 0;
431
432 static constexpr int min_exponent = 0;
433 static constexpr int min_exponent10 = 0;
434 static constexpr int max_exponent = 0;
435 static constexpr int max_exponent10 = 0;
436
437 static constexpr bool has_infinity = false;
438 static constexpr bool has_quiet_NaN = false; // NOLINT
439 static constexpr bool has_signaling_NaN = false; // NOLINT
441 static constexpr bool has_denorm_loss = false;
442
443 static constexpr auto infinity() noexcept -> unsigned int { return 0; }
444 static constexpr auto quiet_NaN() noexcept -> unsigned int { return 0; } // NOLINT
445 static constexpr auto signaling_NaN() noexcept -> unsigned int { return 0; } // NOLINT
446 static constexpr auto denorm_min() noexcept -> unsigned int { return 0; }
447
448 static constexpr bool is_iec559 = false;
449 static constexpr bool is_bounded = true;
450 static constexpr bool is_modulo = true;
451
452 static constexpr bool traps = true;
453 static constexpr bool tinyness_before = false;
455};
456
457template <>
458struct numeric_limits<long> {
459 static constexpr bool is_specialized = true;
460
461 static constexpr auto lowest() noexcept -> long { return LONG_MIN; }
462 static constexpr auto min() noexcept -> long { return LONG_MIN; }
463 static constexpr auto max() noexcept -> long { return LONG_MAX; }
464
465 static constexpr bool is_signed = true;
466 static constexpr bool is_integer = true;
467 static constexpr bool is_exact = true;
468 static constexpr int radix = 2;
469 static constexpr auto epsilon() noexcept -> long { return long{}; }
470 static constexpr auto round_error() noexcept -> long { return long{}; }
471
472 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(long) - static_cast<unsigned>(is_signed));
473 static constexpr int digits10 = digits * 3 / 10;
474 static constexpr int max_digits10 = 0;
475
476 static constexpr int min_exponent = 0;
477 static constexpr int min_exponent10 = 0;
478 static constexpr int max_exponent = 0;
479 static constexpr int max_exponent10 = 0;
480
481 static constexpr bool has_infinity = false;
482 static constexpr bool has_quiet_NaN = false; // NOLINT
483 static constexpr bool has_signaling_NaN = false; // NOLINT
485 static constexpr bool has_denorm_loss = false;
486
487 static constexpr auto infinity() noexcept -> long { return long{}; }
488 static constexpr auto quiet_NaN() noexcept -> long { return long{}; } // NOLINT
489 static constexpr auto signaling_NaN() noexcept -> long { return long{}; } // NOLINT
490 static constexpr auto denorm_min() noexcept -> long { return long{}; }
491
492 static constexpr bool is_iec559 = false;
493 static constexpr bool is_bounded = true;
494 static constexpr bool is_modulo = false;
495
496 static constexpr bool traps = true;
497 static constexpr bool tinyness_before = false;
499};
500
501template <>
502struct numeric_limits<unsigned long> {
503 static constexpr bool is_specialized = true;
504
505 static constexpr auto lowest() noexcept -> unsigned long { return 0; }
506 static constexpr auto min() noexcept -> unsigned long { return 0; }
507 static constexpr auto max() noexcept -> unsigned long { return ULONG_MAX; }
508
509 static constexpr bool is_signed = false;
510 static constexpr bool is_integer = true;
511 static constexpr bool is_exact = true;
512 static constexpr int radix = 2;
513 static constexpr auto epsilon() noexcept -> unsigned long { return {}; }
514 static constexpr auto round_error() noexcept -> unsigned long { return {}; }
515
516 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(unsigned long) - static_cast<unsigned>(is_signed));
517 static constexpr int digits10 = digits * 3 / 10;
518 static constexpr int max_digits10 = 0;
519
520 static constexpr int min_exponent = 0;
521 static constexpr int min_exponent10 = 0;
522 static constexpr int max_exponent = 0;
523 static constexpr int max_exponent10 = 0;
524
525 static constexpr bool has_infinity = false;
526 static constexpr bool has_quiet_NaN = false; // NOLINT
527 static constexpr bool has_signaling_NaN = false; // NOLINT
529 static constexpr bool has_denorm_loss = false;
530
531 static constexpr auto infinity() noexcept -> unsigned long { return 0; }
532 static constexpr auto quiet_NaN() noexcept -> unsigned long { return 0; } // NOLINT
533 static constexpr auto signaling_NaN() noexcept -> unsigned long { return 0; } // NOLINT
534 static constexpr auto denorm_min() noexcept -> unsigned long { return 0; }
535
536 static constexpr bool is_iec559 = false;
537 static constexpr bool is_bounded = true;
538 static constexpr bool is_modulo = true;
539
540 static constexpr bool traps = true;
541 static constexpr bool tinyness_before = false;
543};
544
545template <>
546struct numeric_limits<long long> {
547 static constexpr bool is_specialized = true;
548
549 static constexpr auto lowest() noexcept -> long long
550 {
551#if defined(LLONG_MIN)
552 return LLONG_MIN;
553#else
554 return -__LONG_LONG_MAX__ - 1;
555#endif
556 }
557
558 static constexpr auto min() noexcept -> long long { return lowest(); }
559
560 static constexpr auto max() noexcept -> long long
561 {
562#if defined(LLONG_MAX)
563 return LLONG_MAX;
564#else
565 return __LONG_LONG_MAX__;
566#endif
567 }
568
569 static constexpr bool is_signed = true;
570 static constexpr bool is_integer = true;
571 static constexpr bool is_exact = true;
572 static constexpr int radix = 2;
573 static constexpr auto epsilon() noexcept -> long long { return 0; }
574 static constexpr auto round_error() noexcept -> long long { return 0; }
575
576 static constexpr int digits = static_cast<int>(CHAR_BIT * sizeof(long long) - static_cast<unsigned>(is_signed));
577 static constexpr int digits10 = digits * 3 / 10;
578 static constexpr int max_digits10 = 0;
579
580 static constexpr int min_exponent = 0;
581 static constexpr int min_exponent10 = 0;
582 static constexpr int max_exponent = 0;
583 static constexpr int max_exponent10 = 0;
584
585 static constexpr bool has_infinity = false;
586 static constexpr bool has_quiet_NaN = false; // NOLINT
587 static constexpr bool has_signaling_NaN = false; // NOLINT
589 static constexpr bool has_denorm_loss = false;
590
591 static constexpr auto infinity() noexcept -> long long { return 0; }
592 static constexpr auto quiet_NaN() noexcept -> long long { return 0; } // NOLINT
593 static constexpr auto signaling_NaN() noexcept -> long long { return 0; } // NOLINT
594 static constexpr auto denorm_min() noexcept -> long long { return 0; }
595
596 static constexpr bool is_iec559 = false;
597 static constexpr bool is_bounded = true;
598 static constexpr bool is_modulo = false;
599
600 static constexpr bool traps = true;
601 static constexpr bool tinyness_before = false;
603};
604
605template <>
606struct numeric_limits<unsigned long long> {
607 static constexpr bool is_specialized = true;
608
609 static constexpr auto lowest() noexcept -> unsigned long long { return 0; }
610 static constexpr auto min() noexcept -> unsigned long long { return 0; }
611 static constexpr auto max() noexcept -> unsigned long long { return static_cast<unsigned long long>(-1); }
612
613 static constexpr bool is_signed = false;
614 static constexpr bool is_integer = true;
615 static constexpr bool is_exact = true;
616 static constexpr int radix = 2;
617 static constexpr auto epsilon() noexcept -> unsigned long long { return {}; }
618 static constexpr auto round_error() noexcept -> unsigned long long { return {}; }
619
620 static constexpr int digits
621 = static_cast<int>(CHAR_BIT * sizeof(unsigned long long) - static_cast<unsigned>(is_signed));
622 static constexpr int digits10 = digits * 3 / 10;
623 static constexpr int max_digits10 = 0;
624
625 static constexpr int min_exponent = 0;
626 static constexpr int min_exponent10 = 0;
627 static constexpr int max_exponent = 0;
628 static constexpr int max_exponent10 = 0;
629
630 static constexpr bool has_infinity = false;
631 static constexpr bool has_quiet_NaN = false; // NOLINT
632 static constexpr bool has_signaling_NaN = false; // NOLINT
634 static constexpr bool has_denorm_loss = false;
635
636 static constexpr auto infinity() noexcept -> unsigned long long { return 0; }
637 static constexpr auto quiet_NaN() noexcept -> unsigned long long { return 0; } // NOLINT
638 static constexpr auto signaling_NaN() noexcept -> unsigned long long { return 0; } // NOLINT
639 static constexpr auto denorm_min() noexcept -> unsigned long long { return 0; }
640
641 static constexpr bool is_iec559 = false;
642 static constexpr bool is_bounded = true;
643 static constexpr bool is_modulo = true;
644
645 static constexpr bool traps = true;
646 static constexpr bool tinyness_before = false;
648};
649
650template <>
651struct numeric_limits<float> {
652 static constexpr bool is_specialized = true;
653
654 static constexpr auto min() noexcept { return FLT_MIN; }
655 static constexpr auto max() noexcept { return FLT_MAX; }
656 static constexpr auto lowest() noexcept { return -FLT_MAX; }
657
658 static constexpr int digits = FLT_MANT_DIG;
659 static constexpr int digits10 = FLT_DIG;
660 static constexpr int max_digits10 = DECIMAL_DIG;
661
662 static constexpr bool is_signed = true;
663 static constexpr bool is_integer = false;
664 static constexpr bool is_exact = false;
665 static constexpr int radix = FLT_RADIX;
666 static constexpr auto epsilon() noexcept -> float { return FLT_EPSILON; }
667 static constexpr auto round_error() noexcept -> float { return 0.5F; }
668
669 static constexpr int min_exponent = FLT_MIN_EXP;
670 static constexpr int min_exponent10 = FLT_MIN_10_EXP;
671 static constexpr int max_exponent = FLT_MAX_EXP;
672 static constexpr int max_exponent10 = FLT_MAX_10_EXP;
673
674 static constexpr bool has_infinity = true;
675 static constexpr bool has_quiet_NaN = true; // NOLINT
676 static constexpr bool has_signaling_NaN = true; // NOLINT
678 static constexpr bool has_denorm_loss = false;
679
680 static constexpr auto infinity() noexcept -> float { return TETL_BUILTIN_HUGE_VALF; }
681 static constexpr auto quiet_NaN() noexcept -> float { return TETL_BUILTIN_NANF(""); } // NOLINT
682 static constexpr auto signaling_NaN() noexcept -> float { return TETL_BUILTIN_NANSF(""); } // NOLINT
683 static constexpr auto denorm_min() noexcept -> float { return 0.0F; }
684
685 static constexpr bool is_iec559 = true;
686 static constexpr bool is_bounded = true;
687 static constexpr bool is_modulo = false;
688
689 static constexpr bool traps = false;
690 static constexpr bool tinyness_before = false;
692};
693
694template <>
695struct numeric_limits<double> {
696 static constexpr bool is_specialized = true;
697
698 static constexpr auto min() noexcept { return DBL_MIN; }
699 static constexpr auto max() noexcept { return DBL_MAX; }
700 static constexpr auto lowest() noexcept { return -DBL_MAX; }
701
702 static constexpr int digits = DBL_MANT_DIG;
703 static constexpr int digits10 = DBL_DIG;
704 static constexpr int max_digits10 = DECIMAL_DIG;
705
706 static constexpr bool is_signed = true;
707 static constexpr bool is_integer = false;
708 static constexpr bool is_exact = false;
709 static constexpr int radix = FLT_RADIX;
710 static constexpr auto epsilon() noexcept -> double { return DBL_EPSILON; }
711 static constexpr auto round_error() noexcept -> double { return 0.5; }
712
713 static constexpr int min_exponent = DBL_MIN_EXP;
714 static constexpr int min_exponent10 = DBL_MIN_10_EXP;
715 static constexpr int max_exponent = DBL_MAX_EXP;
716 static constexpr int max_exponent10 = DBL_MAX_10_EXP;
717
718 static constexpr bool has_infinity = true;
719 static constexpr bool has_quiet_NaN = true; // NOLINT
720 static constexpr bool has_signaling_NaN = true; // NOLINT
721 static constexpr bool has_denorm_loss = false;
723
724 static constexpr auto infinity() noexcept -> double { return TETL_BUILTIN_HUGE_VAL; }
725 static constexpr auto quiet_NaN() noexcept -> double { return TETL_BUILTIN_NAN(""); } // NOLINT
726 static constexpr auto signaling_NaN() noexcept -> double { return TETL_BUILTIN_NANS(""); } // NOLINT
727 static constexpr auto denorm_min() noexcept -> double { return 0.0; }
728
729 static constexpr bool is_iec559 = true;
730 static constexpr bool is_bounded = true;
731 static constexpr bool is_modulo = false;
732
733 static constexpr bool traps = false;
734 static constexpr bool tinyness_before = false;
736};
737
738template <>
739struct numeric_limits<long double> {
740 static constexpr bool is_specialized = true;
741
742 static constexpr auto min() noexcept { return LDBL_MIN; }
743 static constexpr auto max() noexcept { return LDBL_MAX; }
744 static constexpr auto lowest() noexcept { return -LDBL_MAX; }
745
746 static constexpr int digits = LDBL_MANT_DIG;
747 static constexpr int digits10 = LDBL_DIG;
748 static constexpr int max_digits10 = 2 + LDBL_MANT_DIG * 301L / 1000;
749
750 static constexpr bool is_signed = true;
751 static constexpr bool is_integer = false;
752 static constexpr bool is_exact = false;
753 static constexpr int radix = FLT_RADIX;
754 static constexpr auto epsilon() noexcept -> long double { return LDBL_EPSILON; }
755 static constexpr auto round_error() noexcept -> long double { return 0.5L; }
756
757 static constexpr int min_exponent = LDBL_MIN_EXP;
758 static constexpr int min_exponent10 = LDBL_MIN_10_EXP;
759 static constexpr int max_exponent = LDBL_MAX_EXP;
760 static constexpr int max_exponent10 = LDBL_MAX_10_EXP;
761
762 static constexpr bool has_infinity = true;
763 static constexpr bool has_quiet_NaN = true; // NOLINT
764 static constexpr bool has_signaling_NaN = true; // NOLINT
765 static constexpr bool has_denorm_loss = false;
767
768 static constexpr auto infinity() noexcept -> long double { return TETL_BUILTIN_HUGE_VALL; }
769 static constexpr auto quiet_NaN() noexcept -> long double { return TETL_BUILTIN_NANL(""); } // NOLINT
770 static constexpr auto signaling_NaN() noexcept -> long double { return TETL_BUILTIN_NANSL(""); } // NOLINT
771 static constexpr auto denorm_min() noexcept -> long double { return 0.0L; }
772
773 static constexpr bool is_iec559 = true;
774 static constexpr bool is_bounded = true;
775 static constexpr bool is_modulo = false;
776
777 static constexpr bool traps = false;
778 static constexpr bool tinyness_before = false;
780};
781
782template <typename T>
783struct numeric_limits<T const> : numeric_limits<T> { };
784template <typename T>
785struct numeric_limits<T volatile> : numeric_limits<T> { };
786template <typename T>
787struct numeric_limits<T const volatile> : numeric_limits<T> { };
788
789} // namespace etl
790
791#endif // TETL_LIMITS_NUMERIC_LIMITS_HPP
#define LDBL_MIN
Definition defines.hpp:19
#define DBL_MIN_EXP
Definition defines.hpp:42
#define FLT_MANT_DIG
Definition defines.hpp:37
#define LDBL_DIG
Definition defines.hpp:35
#define DECIMAL_DIG
Definition defines.hpp:12
#define FLT_DIG
Definition defines.hpp:33
#define LDBL_MAX_EXP
Definition defines.hpp:51
#define LDBL_MANT_DIG
Definition defines.hpp:39
#define DBL_MAX_EXP
Definition defines.hpp:50
#define FLT_RADIX
Definition defines.hpp:10
#define DBL_MIN_10_EXP
Definition defines.hpp:46
#define FLT_MIN_EXP
Definition defines.hpp:41
#define LDBL_MAX_10_EXP
Definition defines.hpp:55
#define DBL_MAX_10_EXP
Definition defines.hpp:54
#define FLT_MAX
Definition defines.hpp:25
#define LDBL_MIN_EXP
Definition defines.hpp:43
#define FLT_MAX_10_EXP
Definition defines.hpp:53
#define FLT_MIN
Definition defines.hpp:17
#define FLT_MIN_10_EXP
Definition defines.hpp:45
#define FLT_EPSILON
Definition defines.hpp:29
#define DBL_DIG
Definition defines.hpp:34
#define DBL_MIN
Definition defines.hpp:18
#define DBL_EPSILON
Definition defines.hpp:30
#define LDBL_MIN_10_EXP
Definition defines.hpp:47
#define LDBL_EPSILON
Definition defines.hpp:31
#define DBL_MANT_DIG
Definition defines.hpp:38
#define LDBL_MAX
Definition defines.hpp:27
#define DBL_MAX
Definition defines.hpp:26
#define FLT_MAX_EXP
Definition defines.hpp:49
#define SHRT_MAX
Definition defines.hpp:25
#define INT_MIN
Definition defines.hpp:31
#define LLONG_MAX
Definition defines.hpp:43
#define CHAR_BIT
Definition defines.hpp:14
#define UCHAR_MAX
Definition defines.hpp:34
#define ULONG_MAX
Definition defines.hpp:37
#define LONG_MAX
Definition defines.hpp:27
#define CHAR_MIN
Definition defines.hpp:20
#define USHRT_MAX
Definition defines.hpp:35
#define CHAR_MAX
Definition defines.hpp:21
#define SCHAR_MAX
Definition defines.hpp:24
#define INT_MAX
Definition defines.hpp:26
#define SCHAR_MIN
Definition defines.hpp:29
#define UINT_MAX
Definition defines.hpp:36
#define SHRT_MIN
Definition defines.hpp:30
#define LONG_MIN
Definition defines.hpp:32
#define LLONG_MIN
Definition defines.hpp:44
#define TETL_BUILTIN_NANSL(arg)
Definition builtin_functions.hpp:86
#define TETL_BUILTIN_HUGE_VALL
Definition builtin_functions.hpp:107
#define TETL_BUILTIN_NANS(arg)
Definition builtin_functions.hpp:78
#define TETL_BUILTIN_NAN
Definition builtin_functions.hpp:57
#define TETL_BUILTIN_HUGE_VALF
Definition builtin_functions.hpp:93
#define TETL_BUILTIN_NANSF(arg)
Definition builtin_functions.hpp:72
#define TETL_BUILTIN_HUGE_VAL
Definition builtin_functions.hpp:99
#define TETL_BUILTIN_NANL(arg)
Definition builtin_functions.hpp:65
#define TETL_BUILTIN_NANF(arg)
Definition builtin_functions.hpp:51
Definition adjacent_find.hpp:8
float_round_style
Definition float_round_style.hpp:8
@ round_toward_zero
Definition float_round_style.hpp:10
float_denorm_style
Definition float_denorm_style.hpp:8
@ denorm_present
Definition float_denorm_style.hpp:11
@ denorm_absent
Definition float_denorm_style.hpp:10
static constexpr auto round_error() noexcept -> bool
Definition numeric_limits.hpp:77
static constexpr int max_digits10
Definition numeric_limits.hpp:70
static constexpr auto signaling_NaN() noexcept -> bool
Definition numeric_limits.hpp:92
static constexpr bool traps
Definition numeric_limits.hpp:99
static constexpr auto denorm_min() noexcept -> bool
Definition numeric_limits.hpp:93
static constexpr auto quiet_NaN() noexcept -> bool
Definition numeric_limits.hpp:91
static constexpr auto epsilon() noexcept -> bool
Definition numeric_limits.hpp:76
static constexpr int radix
Definition numeric_limits.hpp:75
static constexpr bool is_iec559
Definition numeric_limits.hpp:95
static constexpr bool is_specialized
Definition numeric_limits.hpp:62
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:88
static constexpr auto lowest() noexcept -> bool
Definition numeric_limits.hpp:66
static constexpr int max_exponent
Definition numeric_limits.hpp:81
static constexpr int digits
Definition numeric_limits.hpp:68
static constexpr auto infinity() noexcept -> bool
Definition numeric_limits.hpp:90
static constexpr bool is_modulo
Definition numeric_limits.hpp:97
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:87
static constexpr bool has_infinity
Definition numeric_limits.hpp:84
static constexpr int digits10
Definition numeric_limits.hpp:69
static constexpr auto min() noexcept -> bool
Definition numeric_limits.hpp:64
static constexpr int max_exponent10
Definition numeric_limits.hpp:82
static constexpr int min_exponent
Definition numeric_limits.hpp:79
static constexpr bool is_integer
Definition numeric_limits.hpp:73
static constexpr bool is_exact
Definition numeric_limits.hpp:74
static constexpr bool is_signed
Definition numeric_limits.hpp:72
static constexpr bool is_bounded
Definition numeric_limits.hpp:96
static constexpr int min_exponent10
Definition numeric_limits.hpp:80
static constexpr bool tinyness_before
Definition numeric_limits.hpp:100
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:86
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:85
static constexpr float_round_style round_style
Definition numeric_limits.hpp:101
static constexpr auto max() noexcept -> bool
Definition numeric_limits.hpp:65
static constexpr int max_digits10
Definition numeric_limits.hpp:253
static constexpr bool traps
Definition numeric_limits.hpp:275
static constexpr auto round_error() noexcept -> char8_t
Definition numeric_limits.hpp:249
static constexpr auto quiet_NaN() noexcept -> char8_t
Definition numeric_limits.hpp:267
static constexpr int radix
Definition numeric_limits.hpp:247
static constexpr auto denorm_min() noexcept -> char8_t
Definition numeric_limits.hpp:269
static constexpr bool is_iec559
Definition numeric_limits.hpp:271
static constexpr bool is_specialized
Definition numeric_limits.hpp:238
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:264
static constexpr auto epsilon() noexcept -> char8_t
Definition numeric_limits.hpp:248
static constexpr int max_exponent
Definition numeric_limits.hpp:257
static constexpr int digits
Definition numeric_limits.hpp:251
static constexpr auto max() noexcept -> char8_t
Definition numeric_limits.hpp:241
static constexpr bool is_modulo
Definition numeric_limits.hpp:273
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:263
static constexpr bool has_infinity
Definition numeric_limits.hpp:260
static constexpr int digits10
Definition numeric_limits.hpp:252
static constexpr int max_exponent10
Definition numeric_limits.hpp:258
static constexpr auto signaling_NaN() noexcept -> char8_t
Definition numeric_limits.hpp:268
static constexpr int min_exponent
Definition numeric_limits.hpp:255
static constexpr auto lowest() noexcept -> char8_t
Definition numeric_limits.hpp:242
static constexpr auto min() noexcept -> char8_t
Definition numeric_limits.hpp:240
static constexpr bool is_integer
Definition numeric_limits.hpp:245
static constexpr bool is_exact
Definition numeric_limits.hpp:246
static constexpr bool is_signed
Definition numeric_limits.hpp:244
static constexpr bool is_bounded
Definition numeric_limits.hpp:272
static constexpr int min_exponent10
Definition numeric_limits.hpp:256
static constexpr bool tinyness_before
Definition numeric_limits.hpp:276
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:262
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:261
static constexpr float_round_style round_style
Definition numeric_limits.hpp:277
static constexpr auto infinity() noexcept -> char8_t
Definition numeric_limits.hpp:266
static constexpr int max_digits10
Definition numeric_limits.hpp:121
static constexpr bool traps
Definition numeric_limits.hpp:143
static constexpr auto round_error() noexcept -> char
Definition numeric_limits.hpp:117
static constexpr int radix
Definition numeric_limits.hpp:115
static constexpr bool is_iec559
Definition numeric_limits.hpp:139
static constexpr bool is_specialized
Definition numeric_limits.hpp:106
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:132
static constexpr int max_exponent
Definition numeric_limits.hpp:125
static constexpr auto min() noexcept -> char
Definition numeric_limits.hpp:108
static constexpr int digits
Definition numeric_limits.hpp:119
static constexpr bool is_modulo
Definition numeric_limits.hpp:141
static constexpr auto quiet_NaN() noexcept -> char
Definition numeric_limits.hpp:135
static constexpr auto lowest() noexcept -> char
Definition numeric_limits.hpp:110
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:131
static constexpr bool has_infinity
Definition numeric_limits.hpp:128
static constexpr int digits10
Definition numeric_limits.hpp:120
static constexpr auto denorm_min() noexcept -> char
Definition numeric_limits.hpp:137
static constexpr auto signaling_NaN() noexcept -> char
Definition numeric_limits.hpp:136
static constexpr int max_exponent10
Definition numeric_limits.hpp:126
static constexpr int min_exponent
Definition numeric_limits.hpp:123
static constexpr auto epsilon() noexcept -> char
Definition numeric_limits.hpp:116
static constexpr auto infinity() noexcept -> char
Definition numeric_limits.hpp:134
static constexpr bool is_integer
Definition numeric_limits.hpp:113
static constexpr bool is_exact
Definition numeric_limits.hpp:114
static constexpr bool is_signed
Definition numeric_limits.hpp:112
static constexpr auto max() noexcept -> char
Definition numeric_limits.hpp:109
static constexpr bool is_bounded
Definition numeric_limits.hpp:140
static constexpr int min_exponent10
Definition numeric_limits.hpp:124
static constexpr bool tinyness_before
Definition numeric_limits.hpp:144
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:130
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:129
static constexpr float_round_style round_style
Definition numeric_limits.hpp:145
static constexpr auto round_error() noexcept -> double
Definition numeric_limits.hpp:711
static constexpr int max_digits10
Definition numeric_limits.hpp:704
static constexpr bool traps
Definition numeric_limits.hpp:733
static constexpr int radix
Definition numeric_limits.hpp:709
static constexpr bool is_iec559
Definition numeric_limits.hpp:729
static constexpr bool is_specialized
Definition numeric_limits.hpp:696
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:722
static constexpr int max_exponent
Definition numeric_limits.hpp:715
static constexpr int digits
Definition numeric_limits.hpp:702
static constexpr bool is_modulo
Definition numeric_limits.hpp:731
static constexpr auto denorm_min() noexcept -> double
Definition numeric_limits.hpp:727
static constexpr auto signaling_NaN() noexcept -> double
Definition numeric_limits.hpp:726
static constexpr auto infinity() noexcept -> double
Definition numeric_limits.hpp:724
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:721
static constexpr bool has_infinity
Definition numeric_limits.hpp:718
static constexpr auto max() noexcept
Definition numeric_limits.hpp:699
static constexpr int digits10
Definition numeric_limits.hpp:703
static constexpr int max_exponent10
Definition numeric_limits.hpp:716
static constexpr int min_exponent
Definition numeric_limits.hpp:713
static constexpr auto lowest() noexcept
Definition numeric_limits.hpp:700
static constexpr auto quiet_NaN() noexcept -> double
Definition numeric_limits.hpp:725
static constexpr auto epsilon() noexcept -> double
Definition numeric_limits.hpp:710
static constexpr bool is_integer
Definition numeric_limits.hpp:707
static constexpr bool is_exact
Definition numeric_limits.hpp:708
static constexpr bool is_signed
Definition numeric_limits.hpp:706
static constexpr bool is_bounded
Definition numeric_limits.hpp:730
static constexpr int min_exponent10
Definition numeric_limits.hpp:714
static constexpr bool tinyness_before
Definition numeric_limits.hpp:734
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:720
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:719
static constexpr float_round_style round_style
Definition numeric_limits.hpp:735
static constexpr auto min() noexcept
Definition numeric_limits.hpp:698
static constexpr int max_digits10
Definition numeric_limits.hpp:660
static constexpr auto infinity() noexcept -> float
Definition numeric_limits.hpp:680
static constexpr bool traps
Definition numeric_limits.hpp:689
static constexpr int radix
Definition numeric_limits.hpp:665
static constexpr bool is_iec559
Definition numeric_limits.hpp:685
static constexpr bool is_specialized
Definition numeric_limits.hpp:652
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:677
static constexpr auto quiet_NaN() noexcept -> float
Definition numeric_limits.hpp:681
static constexpr int max_exponent
Definition numeric_limits.hpp:671
static constexpr int digits
Definition numeric_limits.hpp:658
static constexpr bool is_modulo
Definition numeric_limits.hpp:687
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:678
static constexpr bool has_infinity
Definition numeric_limits.hpp:674
static constexpr auto max() noexcept
Definition numeric_limits.hpp:655
static constexpr int digits10
Definition numeric_limits.hpp:659
static constexpr auto denorm_min() noexcept -> float
Definition numeric_limits.hpp:683
static constexpr int max_exponent10
Definition numeric_limits.hpp:672
static constexpr int min_exponent
Definition numeric_limits.hpp:669
static constexpr auto lowest() noexcept
Definition numeric_limits.hpp:656
static constexpr auto epsilon() noexcept -> float
Definition numeric_limits.hpp:666
static constexpr auto round_error() noexcept -> float
Definition numeric_limits.hpp:667
static constexpr bool is_integer
Definition numeric_limits.hpp:663
static constexpr bool is_exact
Definition numeric_limits.hpp:664
static constexpr bool is_signed
Definition numeric_limits.hpp:662
static constexpr bool is_bounded
Definition numeric_limits.hpp:686
static constexpr int min_exponent10
Definition numeric_limits.hpp:670
static constexpr bool tinyness_before
Definition numeric_limits.hpp:690
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:676
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:675
static constexpr float_round_style round_style
Definition numeric_limits.hpp:691
static constexpr auto signaling_NaN() noexcept -> float
Definition numeric_limits.hpp:682
static constexpr auto min() noexcept
Definition numeric_limits.hpp:654
static constexpr auto min() noexcept -> int
Definition numeric_limits.hpp:374
static constexpr int max_digits10
Definition numeric_limits.hpp:386
static constexpr bool traps
Definition numeric_limits.hpp:408
static constexpr auto epsilon() noexcept -> int
Definition numeric_limits.hpp:381
static constexpr auto infinity() noexcept -> int
Definition numeric_limits.hpp:399
static constexpr int radix
Definition numeric_limits.hpp:380
static constexpr bool is_iec559
Definition numeric_limits.hpp:404
static constexpr auto lowest() noexcept -> int
Definition numeric_limits.hpp:373
static constexpr bool is_specialized
Definition numeric_limits.hpp:371
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:397
static constexpr int max_exponent
Definition numeric_limits.hpp:390
static constexpr int digits
Definition numeric_limits.hpp:384
static constexpr bool is_modulo
Definition numeric_limits.hpp:406
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:396
static constexpr bool has_infinity
Definition numeric_limits.hpp:393
static constexpr int digits10
Definition numeric_limits.hpp:385
static constexpr auto denorm_min() noexcept -> int
Definition numeric_limits.hpp:402
static constexpr int max_exponent10
Definition numeric_limits.hpp:391
static constexpr int min_exponent
Definition numeric_limits.hpp:388
static constexpr auto round_error() noexcept -> int
Definition numeric_limits.hpp:382
static constexpr auto max() noexcept -> int
Definition numeric_limits.hpp:375
static constexpr bool is_integer
Definition numeric_limits.hpp:378
static constexpr bool is_exact
Definition numeric_limits.hpp:379
static constexpr auto signaling_NaN() noexcept -> int
Definition numeric_limits.hpp:401
static constexpr bool is_signed
Definition numeric_limits.hpp:377
static constexpr bool is_bounded
Definition numeric_limits.hpp:405
static constexpr int min_exponent10
Definition numeric_limits.hpp:389
static constexpr bool tinyness_before
Definition numeric_limits.hpp:409
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:395
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:394
static constexpr float_round_style round_style
Definition numeric_limits.hpp:410
static constexpr auto quiet_NaN() noexcept -> int
Definition numeric_limits.hpp:400
static constexpr auto max() noexcept -> long
Definition numeric_limits.hpp:463
static constexpr int max_digits10
Definition numeric_limits.hpp:474
static constexpr bool traps
Definition numeric_limits.hpp:496
static constexpr int radix
Definition numeric_limits.hpp:468
static constexpr auto signaling_NaN() noexcept -> long
Definition numeric_limits.hpp:489
static constexpr bool is_iec559
Definition numeric_limits.hpp:492
static constexpr bool is_specialized
Definition numeric_limits.hpp:459
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:484
static constexpr int max_exponent
Definition numeric_limits.hpp:478
static constexpr int digits
Definition numeric_limits.hpp:472
static constexpr bool is_modulo
Definition numeric_limits.hpp:494
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:485
static constexpr bool has_infinity
Definition numeric_limits.hpp:481
static constexpr int digits10
Definition numeric_limits.hpp:473
static constexpr auto lowest() noexcept -> long
Definition numeric_limits.hpp:461
static constexpr int max_exponent10
Definition numeric_limits.hpp:479
static constexpr int min_exponent
Definition numeric_limits.hpp:476
static constexpr auto min() noexcept -> long
Definition numeric_limits.hpp:462
static constexpr auto infinity() noexcept -> long
Definition numeric_limits.hpp:487
static constexpr auto denorm_min() noexcept -> long
Definition numeric_limits.hpp:490
static constexpr bool is_integer
Definition numeric_limits.hpp:466
static constexpr bool is_exact
Definition numeric_limits.hpp:467
static constexpr auto epsilon() noexcept -> long
Definition numeric_limits.hpp:469
static constexpr bool is_signed
Definition numeric_limits.hpp:465
static constexpr auto quiet_NaN() noexcept -> long
Definition numeric_limits.hpp:488
static constexpr bool is_bounded
Definition numeric_limits.hpp:493
static constexpr int min_exponent10
Definition numeric_limits.hpp:477
static constexpr bool tinyness_before
Definition numeric_limits.hpp:497
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:483
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:482
static constexpr float_round_style round_style
Definition numeric_limits.hpp:498
static constexpr auto round_error() noexcept -> long
Definition numeric_limits.hpp:470
static constexpr int max_digits10
Definition numeric_limits.hpp:748
static constexpr bool traps
Definition numeric_limits.hpp:777
static constexpr auto round_error() noexcept -> long double
Definition numeric_limits.hpp:755
static constexpr int radix
Definition numeric_limits.hpp:753
static constexpr bool is_iec559
Definition numeric_limits.hpp:773
static constexpr bool is_specialized
Definition numeric_limits.hpp:740
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:766
static constexpr int max_exponent
Definition numeric_limits.hpp:759
static constexpr int digits
Definition numeric_limits.hpp:746
static constexpr bool is_modulo
Definition numeric_limits.hpp:775
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:765
static constexpr bool has_infinity
Definition numeric_limits.hpp:762
static constexpr auto max() noexcept
Definition numeric_limits.hpp:743
static constexpr int digits10
Definition numeric_limits.hpp:747
static constexpr int max_exponent10
Definition numeric_limits.hpp:760
static constexpr int min_exponent
Definition numeric_limits.hpp:757
static constexpr auto quiet_NaN() noexcept -> long double
Definition numeric_limits.hpp:769
static constexpr auto lowest() noexcept
Definition numeric_limits.hpp:744
static constexpr auto denorm_min() noexcept -> long double
Definition numeric_limits.hpp:771
static constexpr auto signaling_NaN() noexcept -> long double
Definition numeric_limits.hpp:770
static constexpr bool is_integer
Definition numeric_limits.hpp:751
static constexpr bool is_exact
Definition numeric_limits.hpp:752
static constexpr bool is_signed
Definition numeric_limits.hpp:750
static constexpr bool is_bounded
Definition numeric_limits.hpp:774
static constexpr int min_exponent10
Definition numeric_limits.hpp:758
static constexpr bool tinyness_before
Definition numeric_limits.hpp:778
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:764
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:763
static constexpr float_round_style round_style
Definition numeric_limits.hpp:779
static constexpr auto epsilon() noexcept -> long double
Definition numeric_limits.hpp:754
static constexpr auto infinity() noexcept -> long double
Definition numeric_limits.hpp:768
static constexpr auto min() noexcept
Definition numeric_limits.hpp:742
static constexpr int max_digits10
Definition numeric_limits.hpp:578
static constexpr auto signaling_NaN() noexcept -> long long
Definition numeric_limits.hpp:593
static constexpr bool traps
Definition numeric_limits.hpp:600
static constexpr auto lowest() noexcept -> long long
Definition numeric_limits.hpp:549
static constexpr int radix
Definition numeric_limits.hpp:572
static constexpr bool is_iec559
Definition numeric_limits.hpp:596
static constexpr bool is_specialized
Definition numeric_limits.hpp:547
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:588
static constexpr auto max() noexcept -> long long
Definition numeric_limits.hpp:560
static constexpr int max_exponent
Definition numeric_limits.hpp:582
static constexpr int digits
Definition numeric_limits.hpp:576
static constexpr bool is_modulo
Definition numeric_limits.hpp:598
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:589
static constexpr bool has_infinity
Definition numeric_limits.hpp:585
static constexpr int digits10
Definition numeric_limits.hpp:577
static constexpr int max_exponent10
Definition numeric_limits.hpp:583
static constexpr int min_exponent
Definition numeric_limits.hpp:580
static constexpr auto denorm_min() noexcept -> long long
Definition numeric_limits.hpp:594
static constexpr auto infinity() noexcept -> long long
Definition numeric_limits.hpp:591
static constexpr auto quiet_NaN() noexcept -> long long
Definition numeric_limits.hpp:592
static constexpr auto round_error() noexcept -> long long
Definition numeric_limits.hpp:574
static constexpr bool is_integer
Definition numeric_limits.hpp:570
static constexpr bool is_exact
Definition numeric_limits.hpp:571
static constexpr auto min() noexcept -> long long
Definition numeric_limits.hpp:558
static constexpr auto epsilon() noexcept -> long long
Definition numeric_limits.hpp:573
static constexpr bool is_signed
Definition numeric_limits.hpp:569
static constexpr bool is_bounded
Definition numeric_limits.hpp:597
static constexpr int min_exponent10
Definition numeric_limits.hpp:581
static constexpr bool tinyness_before
Definition numeric_limits.hpp:601
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:587
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:586
static constexpr float_round_style round_style
Definition numeric_limits.hpp:602
static constexpr auto min() noexcept -> short
Definition numeric_limits.hpp:285
static constexpr int max_digits10
Definition numeric_limits.hpp:297
static constexpr bool traps
Definition numeric_limits.hpp:319
static constexpr int radix
Definition numeric_limits.hpp:291
static constexpr bool is_iec559
Definition numeric_limits.hpp:315
static constexpr bool is_specialized
Definition numeric_limits.hpp:282
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:308
static constexpr auto infinity() noexcept -> short
Definition numeric_limits.hpp:310
static constexpr int max_exponent
Definition numeric_limits.hpp:301
static constexpr int digits
Definition numeric_limits.hpp:295
static constexpr bool is_modulo
Definition numeric_limits.hpp:317
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:307
static constexpr bool has_infinity
Definition numeric_limits.hpp:304
static constexpr int digits10
Definition numeric_limits.hpp:296
static constexpr int max_exponent10
Definition numeric_limits.hpp:302
static constexpr auto epsilon() noexcept -> short
Definition numeric_limits.hpp:292
static constexpr int min_exponent
Definition numeric_limits.hpp:299
static constexpr auto signaling_NaN() noexcept -> short
Definition numeric_limits.hpp:312
static constexpr auto quiet_NaN() noexcept -> short
Definition numeric_limits.hpp:311
static constexpr auto lowest() noexcept -> short
Definition numeric_limits.hpp:284
static constexpr bool is_integer
Definition numeric_limits.hpp:289
static constexpr bool is_exact
Definition numeric_limits.hpp:290
static constexpr auto max() noexcept -> short
Definition numeric_limits.hpp:286
static constexpr auto denorm_min() noexcept -> short
Definition numeric_limits.hpp:313
static constexpr bool is_signed
Definition numeric_limits.hpp:288
static constexpr bool is_bounded
Definition numeric_limits.hpp:316
static constexpr auto round_error() noexcept -> short
Definition numeric_limits.hpp:293
static constexpr int min_exponent10
Definition numeric_limits.hpp:300
static constexpr bool tinyness_before
Definition numeric_limits.hpp:320
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:306
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:305
static constexpr float_round_style round_style
Definition numeric_limits.hpp:321
static constexpr auto signaling_NaN() noexcept -> signed char
Definition numeric_limits.hpp:180
static constexpr auto max() noexcept -> signed char
Definition numeric_limits.hpp:153
static constexpr auto epsilon() noexcept -> signed char
Definition numeric_limits.hpp:160
static constexpr int max_digits10
Definition numeric_limits.hpp:165
static constexpr bool traps
Definition numeric_limits.hpp:187
static constexpr int radix
Definition numeric_limits.hpp:159
static constexpr bool is_iec559
Definition numeric_limits.hpp:183
static constexpr auto denorm_min() noexcept -> signed char
Definition numeric_limits.hpp:181
static constexpr bool is_specialized
Definition numeric_limits.hpp:150
static constexpr auto quiet_NaN() noexcept -> signed char
Definition numeric_limits.hpp:179
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:176
static constexpr auto lowest() noexcept -> signed char
Definition numeric_limits.hpp:154
static constexpr int max_exponent
Definition numeric_limits.hpp:169
static constexpr int digits
Definition numeric_limits.hpp:163
static constexpr auto min() noexcept -> signed char
Definition numeric_limits.hpp:152
static constexpr bool is_modulo
Definition numeric_limits.hpp:185
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:175
static constexpr bool has_infinity
Definition numeric_limits.hpp:172
static constexpr int digits10
Definition numeric_limits.hpp:164
static constexpr auto round_error() noexcept -> signed char
Definition numeric_limits.hpp:161
static constexpr int max_exponent10
Definition numeric_limits.hpp:170
static constexpr int min_exponent
Definition numeric_limits.hpp:167
static constexpr bool is_integer
Definition numeric_limits.hpp:157
static constexpr bool is_exact
Definition numeric_limits.hpp:158
static constexpr bool is_signed
Definition numeric_limits.hpp:156
static constexpr bool is_bounded
Definition numeric_limits.hpp:184
static constexpr int min_exponent10
Definition numeric_limits.hpp:168
static constexpr bool tinyness_before
Definition numeric_limits.hpp:188
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:174
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:173
static constexpr float_round_style round_style
Definition numeric_limits.hpp:189
static constexpr auto infinity() noexcept -> signed char
Definition numeric_limits.hpp:178
static constexpr auto max() noexcept -> unsigned char
Definition numeric_limits.hpp:198
static constexpr int max_digits10
Definition numeric_limits.hpp:209
static constexpr auto lowest() noexcept -> unsigned char
Definition numeric_limits.hpp:196
static constexpr bool traps
Definition numeric_limits.hpp:231
static constexpr auto denorm_min() noexcept -> unsigned char
Definition numeric_limits.hpp:225
static constexpr int radix
Definition numeric_limits.hpp:203
static constexpr bool is_iec559
Definition numeric_limits.hpp:227
static constexpr bool is_specialized
Definition numeric_limits.hpp:194
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:220
static constexpr auto min() noexcept -> unsigned char
Definition numeric_limits.hpp:197
static constexpr int max_exponent
Definition numeric_limits.hpp:213
static constexpr int digits
Definition numeric_limits.hpp:207
static constexpr bool is_modulo
Definition numeric_limits.hpp:229
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:219
static constexpr bool has_infinity
Definition numeric_limits.hpp:216
static constexpr int digits10
Definition numeric_limits.hpp:208
static constexpr auto epsilon() noexcept -> unsigned char
Definition numeric_limits.hpp:204
static constexpr int max_exponent10
Definition numeric_limits.hpp:214
static constexpr int min_exponent
Definition numeric_limits.hpp:211
static constexpr auto signaling_NaN() noexcept -> unsigned char
Definition numeric_limits.hpp:224
static constexpr auto quiet_NaN() noexcept -> unsigned char
Definition numeric_limits.hpp:223
static constexpr auto round_error() noexcept -> unsigned char
Definition numeric_limits.hpp:205
static constexpr auto infinity() noexcept -> unsigned char
Definition numeric_limits.hpp:222
static constexpr bool is_integer
Definition numeric_limits.hpp:201
static constexpr bool is_exact
Definition numeric_limits.hpp:202
static constexpr bool is_signed
Definition numeric_limits.hpp:200
static constexpr bool is_bounded
Definition numeric_limits.hpp:228
static constexpr int min_exponent10
Definition numeric_limits.hpp:212
static constexpr bool tinyness_before
Definition numeric_limits.hpp:232
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:218
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:217
static constexpr float_round_style round_style
Definition numeric_limits.hpp:233
static constexpr int max_digits10
Definition numeric_limits.hpp:430
static constexpr bool traps
Definition numeric_limits.hpp:452
static constexpr auto denorm_min() noexcept -> unsigned int
Definition numeric_limits.hpp:446
static constexpr int radix
Definition numeric_limits.hpp:424
static constexpr bool is_iec559
Definition numeric_limits.hpp:448
static constexpr auto infinity() noexcept -> unsigned int
Definition numeric_limits.hpp:443
static constexpr auto round_error() noexcept -> unsigned int
Definition numeric_limits.hpp:426
static constexpr bool is_specialized
Definition numeric_limits.hpp:415
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:440
static constexpr int max_exponent
Definition numeric_limits.hpp:434
static constexpr int digits
Definition numeric_limits.hpp:428
static constexpr bool is_modulo
Definition numeric_limits.hpp:450
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:441
static constexpr bool has_infinity
Definition numeric_limits.hpp:437
static constexpr int digits10
Definition numeric_limits.hpp:429
static constexpr auto lowest() noexcept -> unsigned int
Definition numeric_limits.hpp:417
static constexpr int max_exponent10
Definition numeric_limits.hpp:435
static constexpr int min_exponent
Definition numeric_limits.hpp:432
static constexpr auto min() noexcept -> unsigned int
Definition numeric_limits.hpp:418
static constexpr auto epsilon() noexcept -> unsigned int
Definition numeric_limits.hpp:425
static constexpr auto quiet_NaN() noexcept -> unsigned int
Definition numeric_limits.hpp:444
static constexpr bool is_integer
Definition numeric_limits.hpp:422
static constexpr bool is_exact
Definition numeric_limits.hpp:423
static constexpr bool is_signed
Definition numeric_limits.hpp:421
static constexpr bool is_bounded
Definition numeric_limits.hpp:449
static constexpr int min_exponent10
Definition numeric_limits.hpp:433
static constexpr bool tinyness_before
Definition numeric_limits.hpp:453
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:439
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:438
static constexpr float_round_style round_style
Definition numeric_limits.hpp:454
static constexpr auto signaling_NaN() noexcept -> unsigned int
Definition numeric_limits.hpp:445
static constexpr auto max() noexcept -> unsigned int
Definition numeric_limits.hpp:419
static constexpr auto epsilon() noexcept -> unsigned long
Definition numeric_limits.hpp:513
static constexpr int max_digits10
Definition numeric_limits.hpp:518
static constexpr bool traps
Definition numeric_limits.hpp:540
static constexpr auto infinity() noexcept -> unsigned long
Definition numeric_limits.hpp:531
static constexpr int radix
Definition numeric_limits.hpp:512
static constexpr auto lowest() noexcept -> unsigned long
Definition numeric_limits.hpp:505
static constexpr bool is_iec559
Definition numeric_limits.hpp:536
static constexpr bool is_specialized
Definition numeric_limits.hpp:503
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:528
static constexpr int max_exponent
Definition numeric_limits.hpp:522
static constexpr int digits
Definition numeric_limits.hpp:516
static constexpr bool is_modulo
Definition numeric_limits.hpp:538
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:529
static constexpr bool has_infinity
Definition numeric_limits.hpp:525
static constexpr int digits10
Definition numeric_limits.hpp:517
static constexpr auto quiet_NaN() noexcept -> unsigned long
Definition numeric_limits.hpp:532
static constexpr int max_exponent10
Definition numeric_limits.hpp:523
static constexpr int min_exponent
Definition numeric_limits.hpp:520
static constexpr auto round_error() noexcept -> unsigned long
Definition numeric_limits.hpp:514
static constexpr bool is_integer
Definition numeric_limits.hpp:510
static constexpr bool is_exact
Definition numeric_limits.hpp:511
static constexpr auto max() noexcept -> unsigned long
Definition numeric_limits.hpp:507
static constexpr bool is_signed
Definition numeric_limits.hpp:509
static constexpr bool is_bounded
Definition numeric_limits.hpp:537
static constexpr int min_exponent10
Definition numeric_limits.hpp:521
static constexpr auto denorm_min() noexcept -> unsigned long
Definition numeric_limits.hpp:534
static constexpr bool tinyness_before
Definition numeric_limits.hpp:541
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:527
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:526
static constexpr float_round_style round_style
Definition numeric_limits.hpp:542
static constexpr auto signaling_NaN() noexcept -> unsigned long
Definition numeric_limits.hpp:533
static constexpr auto min() noexcept -> unsigned long
Definition numeric_limits.hpp:506
static constexpr int max_digits10
Definition numeric_limits.hpp:623
static constexpr auto max() noexcept -> unsigned long long
Definition numeric_limits.hpp:611
static constexpr bool traps
Definition numeric_limits.hpp:645
static constexpr int radix
Definition numeric_limits.hpp:616
static constexpr bool is_iec559
Definition numeric_limits.hpp:641
static constexpr bool is_specialized
Definition numeric_limits.hpp:607
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:633
static constexpr int max_exponent
Definition numeric_limits.hpp:627
static constexpr int digits
Definition numeric_limits.hpp:621
static constexpr auto epsilon() noexcept -> unsigned long long
Definition numeric_limits.hpp:617
static constexpr bool is_modulo
Definition numeric_limits.hpp:643
static constexpr auto infinity() noexcept -> unsigned long long
Definition numeric_limits.hpp:636
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:634
static constexpr bool has_infinity
Definition numeric_limits.hpp:630
static constexpr int digits10
Definition numeric_limits.hpp:622
static constexpr auto quiet_NaN() noexcept -> unsigned long long
Definition numeric_limits.hpp:637
static constexpr int max_exponent10
Definition numeric_limits.hpp:628
static constexpr int min_exponent
Definition numeric_limits.hpp:625
static constexpr auto denorm_min() noexcept -> unsigned long long
Definition numeric_limits.hpp:639
static constexpr auto min() noexcept -> unsigned long long
Definition numeric_limits.hpp:610
static constexpr bool is_integer
Definition numeric_limits.hpp:614
static constexpr bool is_exact
Definition numeric_limits.hpp:615
static constexpr bool is_signed
Definition numeric_limits.hpp:613
static constexpr bool is_bounded
Definition numeric_limits.hpp:642
static constexpr auto lowest() noexcept -> unsigned long long
Definition numeric_limits.hpp:609
static constexpr auto round_error() noexcept -> unsigned long long
Definition numeric_limits.hpp:618
static constexpr int min_exponent10
Definition numeric_limits.hpp:626
static constexpr bool tinyness_before
Definition numeric_limits.hpp:646
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:632
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:631
static constexpr float_round_style round_style
Definition numeric_limits.hpp:647
static constexpr auto signaling_NaN() noexcept -> unsigned long long
Definition numeric_limits.hpp:638
static constexpr auto round_error() noexcept -> unsigned short
Definition numeric_limits.hpp:337
static constexpr int max_digits10
Definition numeric_limits.hpp:342
static constexpr bool traps
Definition numeric_limits.hpp:364
static constexpr auto denorm_min() noexcept -> unsigned short
Definition numeric_limits.hpp:358
static constexpr auto epsilon() noexcept -> unsigned short
Definition numeric_limits.hpp:336
static constexpr auto min() noexcept -> unsigned short
Definition numeric_limits.hpp:329
static constexpr int radix
Definition numeric_limits.hpp:335
static constexpr bool is_iec559
Definition numeric_limits.hpp:360
static constexpr bool is_specialized
Definition numeric_limits.hpp:326
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:353
static constexpr int max_exponent
Definition numeric_limits.hpp:346
static constexpr int digits
Definition numeric_limits.hpp:340
static constexpr bool is_modulo
Definition numeric_limits.hpp:362
static constexpr auto max() noexcept -> unsigned short
Definition numeric_limits.hpp:330
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:352
static constexpr bool has_infinity
Definition numeric_limits.hpp:349
static constexpr int digits10
Definition numeric_limits.hpp:341
static constexpr int max_exponent10
Definition numeric_limits.hpp:347
static constexpr int min_exponent
Definition numeric_limits.hpp:344
static constexpr auto lowest() noexcept -> unsigned short
Definition numeric_limits.hpp:328
static constexpr auto infinity() noexcept -> unsigned short
Definition numeric_limits.hpp:355
static constexpr bool is_integer
Definition numeric_limits.hpp:333
static constexpr bool is_exact
Definition numeric_limits.hpp:334
static constexpr bool is_signed
Definition numeric_limits.hpp:332
static constexpr bool is_bounded
Definition numeric_limits.hpp:361
static constexpr auto signaling_NaN() noexcept -> unsigned short
Definition numeric_limits.hpp:357
static constexpr int min_exponent10
Definition numeric_limits.hpp:345
static constexpr auto quiet_NaN() noexcept -> unsigned short
Definition numeric_limits.hpp:356
static constexpr bool tinyness_before
Definition numeric_limits.hpp:365
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:351
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:350
static constexpr float_round_style round_style
Definition numeric_limits.hpp:366
Definition numeric_limits.hpp:17
static constexpr int max_digits10
Definition numeric_limits.hpp:26
static constexpr auto signaling_NaN() noexcept -> T
Definition numeric_limits.hpp:48
static constexpr auto infinity() noexcept -> T
Definition numeric_limits.hpp:46
static constexpr bool traps
Definition numeric_limits.hpp:55
static constexpr int radix
Definition numeric_limits.hpp:31
static constexpr bool is_iec559
Definition numeric_limits.hpp:51
static constexpr bool is_specialized
Definition numeric_limits.hpp:18
static constexpr float_denorm_style has_denorm
Definition numeric_limits.hpp:44
static constexpr int max_exponent
Definition numeric_limits.hpp:37
static constexpr int digits
Definition numeric_limits.hpp:24
static constexpr bool is_modulo
Definition numeric_limits.hpp:53
static constexpr bool has_denorm_loss
Definition numeric_limits.hpp:43
static constexpr bool has_infinity
Definition numeric_limits.hpp:40
static constexpr auto max() noexcept
Definition numeric_limits.hpp:21
static constexpr int digits10
Definition numeric_limits.hpp:25
static constexpr auto quiet_NaN() noexcept -> T
Definition numeric_limits.hpp:47
static constexpr int max_exponent10
Definition numeric_limits.hpp:38
static constexpr int min_exponent
Definition numeric_limits.hpp:35
static constexpr auto lowest() noexcept
Definition numeric_limits.hpp:22
static constexpr auto denorm_min() noexcept -> T
Definition numeric_limits.hpp:49
static constexpr bool is_integer
Definition numeric_limits.hpp:29
static constexpr bool is_exact
Definition numeric_limits.hpp:30
static constexpr auto round_error() noexcept -> T
Definition numeric_limits.hpp:33
static constexpr auto epsilon() noexcept -> T
Definition numeric_limits.hpp:32
static constexpr bool is_signed
Definition numeric_limits.hpp:28
static constexpr bool is_bounded
Definition numeric_limits.hpp:52
static constexpr int min_exponent10
Definition numeric_limits.hpp:36
static constexpr bool tinyness_before
Definition numeric_limits.hpp:56
static constexpr bool has_signaling_NaN
Definition numeric_limits.hpp:42
static constexpr bool has_quiet_NaN
Definition numeric_limits.hpp:41
static constexpr float_round_style round_style
Definition numeric_limits.hpp:57
static constexpr auto min() noexcept
Definition numeric_limits.hpp:20