Precision¶
decimal-scaled is perfectly precise — correctly rounded to within 0.5 ULP,
i.e. 0 bits of error.
We execute 101,809 specialised inputs across all 28 functions, on 117 widths and scales, under all 6 rounding modes, resulting in 71,469,918 separate checks.
Each golden case was gathered from the codebase failing, from theory, from destructive testing of our own code, and from destructive testing of other libraries — collated into a behemoth of meanness.
The data on this page is generated and committed directly from the golden-comprehensive CI job and auto-rendered here; there is no manual editing. If we ever fail our guarantee, we want you to know.
Each row is a function, each column a storage width. A ✓ means 0 bits of
error — the exact correctly-rounded value — across every scale and all six
rounding modes at that width, with the number of checks verified correct beneath
it. A ✗ marks a cell with at least one failure, the count of failing checks
beneath. Inputs outside a function's domain or a tier's range aren't checks, so
they count toward neither. The full per-scale, per-mode surface lives in
results/golden/.
| Function | D18 | D38 | D57 | D76 | D115 | D153 | D230 | D307 | D462 | D616 | D924 | D1232 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
acos |
✓ 14,412 |
✓ 75,822 |
✓ 106,752 |
✓ 109,260 |
✓ 118,626 |
✓ 96,336 |
✓ 120,288 |
✓ 216,636 |
✓ 168,474 |
✓ 192,588 |
✓ 192,588 |
✓ 192,588 |
acosh |
✓ 34,938 |
✓ 104,382 |
✓ 109,968 |
✓ 110,022 |
✓ 113,874 |
✓ 88,074 |
✓ 113,886 |
✓ 217,134 |
✓ 165,510 |
✓ 191,334 |
✓ 191,334 |
✓ 191,334 |
add |
✓ 372 |
✓ 1,296 |
✓ 1,296 |
✓ 1,464 |
✓ 1,446 |
✓ 1,266 |
✓ 1,758 |
✓ 3,270 |
✓ 2,766 |
✓ 3,144 |
✓ 3,312 |
✓ 3,450 |
asin |
✓ 14,712 |
✓ 79,692 |
✓ 114,084 |
✓ 118,026 |
✓ 127,770 |
✓ 104,502 |
✓ 130,422 |
✓ 234,948 |
✓ 182,700 |
✓ 208,872 |
✓ 208,872 |
✓ 208,872 |
asinh |
✓ 12,180 |
✓ 74,166 |
✓ 96,438 |
✓ 109,158 |
✓ 113,904 |
✓ 97,170 |
✓ 127,926 |
✓ 235,140 |
✓ 193,554 |
✓ 219,258 |
✓ 224,328 |
✓ 228,696 |
atan |
✓ 12,558 |
✓ 73,050 |
✓ 94,356 |
✓ 107,178 |
✓ 111,450 |
✓ 95,262 |
✓ 124,980 |
✓ 230,082 |
✓ 189,138 |
✓ 214,242 |
✓ 219,090 |
✓ 223,236 |
atan2 |
✓ 41,946 |
✓ 118,128 |
✓ 120,768 |
✓ 121,494 |
✓ 125,406 |
✓ 96,768 |
✓ 126,162 |
✓ 243,096 |
✓ 185,262 |
✓ 215,112 |
✓ 215,688 |
✓ 215,976 |
atanh |
✓ 14,448 |
✓ 76,842 |
✓ 108,990 |
✓ 112,818 |
✓ 121,602 |
✓ 99,474 |
✓ 124,212 |
✓ 223,734 |
✓ 174,006 |
✓ 198,936 |
✓ 198,960 |
✓ 198,960 |
cbrt |
✓ 25,776 |
✓ 101,748 |
✓ 109,314 |
✓ 118,026 |
✓ 121,902 |
✓ 99,234 |
✓ 134,322 |
✓ 253,746 |
✓ 206,046 |
✓ 234,342 |
✓ 240,006 |
✓ 244,578 |
cos |
✓ 17,514 |
✓ 80,178 |
✓ 115,536 |
✓ 119,958 |
✓ 125,100 |
✓ 105,168 |
✓ 130,770 |
✓ 235,806 |
✓ 175,890 |
✓ 203,400 |
✓ 207,054 |
✓ 209,586 |
cosh |
✓ 28,428 |
✓ 102,522 |
✓ 132,384 |
✓ 137,202 |
✓ 143,838 |
✓ 118,614 |
✓ 149,430 |
✓ 271,944 |
✓ 204,012 |
✓ 236,472 |
✓ 239,298 |
✓ 241,068 |
div |
✓ 246 |
✓ 846 |
✓ 828 |
✓ 1,008 |
✓ 1,050 |
✓ 936 |
✓ 1,356 |
✓ 2,514 |
✓ 2,196 |
✓ 2,484 |
✓ 2,628 |
✓ 2,760 |
exp |
✓ 27,822 |
✓ 95,568 |
✓ 120,480 |
✓ 124,770 |
✓ 129,618 |
✓ 107,064 |
✓ 135,018 |
✓ 246,024 |
✓ 183,666 |
✓ 213,318 |
✓ 215,910 |
✓ 217,734 |
exp2 |
✓ 32,160 |
✓ 102,042 |
✓ 122,856 |
✓ 127,698 |
✓ 130,908 |
✓ 108,450 |
✓ 136,884 |
✓ 250,050 |
✓ 186,930 |
✓ 216,834 |
✓ 219,432 |
✓ 221,202 |
hypot |
✓ 1,440 |
✓ 3,882 |
✓ 2,958 |
✓ 3,300 |
✓ 2,988 |
✓ 2,592 |
✓ 3,390 |
✓ 6,042 |
✓ 4,956 |
✓ 5,586 |
✓ 5,772 |
✓ 5,934 |
ln |
✓ 31,182 |
✓ 116,082 |
✓ 134,544 |
✓ 129,720 |
✓ 135,840 |
✓ 105,696 |
✓ 135,960 |
✓ 256,920 |
✓ 196,536 |
✓ 226,902 |
✓ 226,998 |
✓ 227,052 |
log |
✓ 14,586 |
✓ 46,032 |
✓ 44,790 |
✓ 45,768 |
✓ 44,280 |
✓ 34,908 |
✓ 44,778 |
✓ 84,210 |
✓ 64,494 |
✓ 74,358 |
✓ 74,352 |
✓ 74,400 |
log10 |
✓ 31,758 |
✓ 119,568 |
✓ 139,308 |
✓ 134,694 |
✓ 141,468 |
✓ 110,286 |
✓ 141,834 |
✓ 267,432 |
✓ 205,044 |
✓ 236,508 |
✓ 236,718 |
✓ 236,910 |
log2 |
✓ 32,412 |
✓ 118,218 |
✓ 134,340 |
✓ 129,468 |
✓ 134,874 |
✓ 104,958 |
✓ 135,138 |
✓ 255,444 |
✓ 195,570 |
✓ 225,738 |
✓ 225,918 |
✓ 226,032 |
mul |
✓ 414 |
✓ 1,752 |
✓ 1,944 |
✓ 2,202 |
✓ 2,406 |
✓ 2,154 |
✓ 2,874 |
✓ 5,394 |
✓ 4,644 |
✓ 5,490 |
✓ 5,754 |
✓ 5,874 |
powf |
✓ 32,436 |
✓ 84,846 |
✓ 101,244 |
✓ 108,024 |
✓ 105,042 |
✓ 92,472 |
✓ 119,196 |
✓ 218,358 |
✓ 152,184 |
✓ 177,240 |
✓ 180,222 |
✓ 185,424 |
rem |
✓ 210 |
✓ 780 |
✓ 786 |
✓ 966 |
✓ 1,014 |
✓ 906 |
✓ 1,320 |
✓ 2,454 |
✓ 2,148 |
✓ 2,430 |
✓ 2,574 |
✓ 2,706 |
sin |
✓ 17,544 |
✓ 80,286 |
✓ 115,968 |
✓ 119,988 |
✓ 125,400 |
✓ 105,246 |
✓ 130,998 |
✓ 236,124 |
✓ 176,100 |
✓ 203,634 |
✓ 207,474 |
✓ 209,898 |
sinh |
✓ 27,984 |
✓ 97,974 |
✓ 125,184 |
✓ 129,870 |
✓ 135,252 |
✓ 111,882 |
✓ 141,054 |
✓ 256,680 |
✓ 192,072 |
✓ 222,906 |
✓ 225,894 |
✓ 227,598 |
sqrt |
✓ 27,390 |
✓ 104,052 |
✓ 109,236 |
✓ 117,906 |
✓ 121,650 |
✓ 98,514 |
✓ 133,182 |
✓ 251,574 |
✓ 204,144 |
✓ 232,134 |
✓ 237,330 |
✓ 241,698 |
sub |
✓ 372 |
✓ 1,296 |
✓ 1,296 |
✓ 1,464 |
✓ 1,446 |
✓ 1,266 |
✓ 1,758 |
✓ 3,270 |
✓ 2,766 |
✓ 3,144 |
✓ 3,312 |
✓ 3,450 |
tan |
✓ 17,274 |
✓ 79,482 |
✓ 114,594 |
✓ 120,888 |
✓ 125,490 |
✓ 106,128 |
✓ 131,178 |
✓ 237,192 |
✓ 177,090 |
✓ 204,672 |
✓ 208,266 |
✓ 210,750 |
tanh |
✓ 17,208 |
✓ 83,532 |
✓ 118,536 |
✓ 121,524 |
✓ 131,232 |
✓ 106,866 |
✓ 133,710 |
✓ 241,296 |
✓ 183,060 |
✓ 212,682 |
✓ 215,142 |
✓ 215,466 |