Skip to content

Precision

decimal-scaled is perfectly precise — correctly rounded to within 0.5 ULP, i.e. 0 bits of error.

We execute 102,735 specialised inputs across all 30 functions, on 117 widths and scales, under all 8 rounding modes, resulting in 96,159,960 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 eight 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 ✓
19,216
✓
101,096
✓
142,336
✓
145,680
✓
158,168
✓
128,448
✓
160,384
✓
288,848
✓
224,632
✓
256,784
✓
256,784
✓
256,784
acosh ✓
46,584
✓
139,176
✓
146,624
✓
146,696
✓
151,832
✓
117,432
✓
151,848
✓
289,512
✓
220,680
✓
255,112
✓
255,112
✓
255,112
add ✓
496
✓
1,728
✓
1,728
✓
1,952
✓
1,928
✓
1,688
✓
2,344
✓
4,360
✓
3,688
✓
4,192
✓
4,416
✓
4,600
asin ✓
19,616
✓
106,256
✓
152,112
✓
157,368
✓
170,360
✓
139,336
✓
173,896
✓
313,264
✓
243,600
✓
278,496
✓
278,496
✓
278,496
asinh ✓
16,240
✓
98,888
✓
128,584
✓
145,544
✓
151,872
✓
129,560
✓
170,568
✓
313,520
✓
258,072
✓
292,344
✓
299,104
✓
304,928
atan ✓
16,744
✓
97,400
✓
125,808
✓
142,904
✓
148,600
✓
127,016
✓
166,640
✓
306,776
✓
252,184
✓
285,656
✓
292,120
✓
297,648
atan2 ✓
55,928
✓
157,504
✓
161,024
✓
161,992
✓
167,208
✓
129,024
✓
168,216
✓
324,128
✓
247,016
✓
286,816
✓
287,584
✓
287,968
atanh ✓
19,264
✓
102,456
✓
145,320
✓
150,432
✓
162,152
✓
132,656
✓
165,640
✓
298,360
✓
232,056
✓
265,304
✓
265,336
✓
265,336
cbrt ✓
34,368
✓
135,664
✓
145,752
✓
157,368
✓
162,536
✓
132,312
✓
179,096
✓
338,328
✓
274,728
✓
312,456
✓
320,008
✓
326,104
cos ✓
23,352
✓
106,904
✓
154,048
✓
159,952
✓
166,816
✓
140,248
✓
174,384
✓
314,464
✓
234,568
✓
271,256
✓
276,128
✓
279,504
cosh ✓
37,904
✓
136,696
✓
176,512
✓
182,936
✓
191,784
✓
158,152
✓
199,240
✓
362,592
✓
272,016
✓
315,296
✓
319,064
✓
321,424
div ✓
328
✓
1,128
✓
1,104
✓
1,344
✓
1,400
✓
1,248
✓
1,808
✓
3,352
✓
2,928
✓
3,312
✓
3,504
✓
3,680
exp ✓
37,096
✓
127,424
✓
160,640
✓
166,368
✓
172,840
✓
142,776
✓
180,048
✓
328,104
✓
244,984
✓
284,624
✓
288,128
✓
290,608
exp2 ✓
42,880
✓
136,056
✓
163,808
✓
170,264
✓
174,544
✓
144,600
✓
182,512
✓
333,400
✓
249,240
✓
289,112
✓
292,576
✓
294,936
expm1 ✓
1,984
✓
5,880
✓
6,120
✓
7,080
✓
7,520
✓
7,072
✓
9,536
✓
18,496
✓
16,176
✓
20,912
✓
22,880
✓
24,368
hypot ✓
1,920
✓
5,176
✓
3,944
✓
4,400
✓
3,984
✓
3,456
✓
4,520
✓
8,056
✓
6,608
✓
7,448
✓
7,696
✓
7,912
ln ✓
41,576
✓
154,776
✓
179,392
✓
172,976
✓
181,152
✓
140,992
✓
181,400
✓
342,984
✓
262,576
✓
303,448
✓
303,784
✓
304,000
log ✓
19,448
✓
61,376
✓
59,720
✓
61,024
✓
59,040
✓
46,544
✓
59,704
✓
112,280
✓
85,992
✓
99,144
✓
99,136
✓
99,200
log10 ✓
42,344
✓
159,424
✓
185,744
✓
179,592
✓
188,624
✓
147,048
✓
189,112
✓
356,576
✓
273,392
✓
315,344
✓
315,624
✓
315,880
log1p ✓
2,232
✓
6,640
✓
6,472
✓
7,312
✓
7,752
✓
7,232
✓
9,592
✓
18,432
✓
16,120
✓
20,568
✓
21,984
✓
22,912
log2 ✓
43,216
✓
157,624
✓
179,120
✓
172,624
✓
179,832
✓
139,944
✓
180,184
✓
340,592
✓
260,760
✓
300,984
✓
301,224
✓
301,376
mul ✓
552
✓
2,336
✓
2,592
✓
2,936
✓
3,208
✓
2,872
✓
3,832
✓
7,192
✓
6,192
✓
7,320
✓
7,672
✓
7,832
powf ✓
43,248
✓
113,128
✓
134,992
✓
144,032
✓
140,056
✓
123,296
✓
158,928
✓
291,144
✓
202,912
✓
236,320
✓
240,296
✓
247,232
rem ✓
280
✓
1,040
✓
1,048
✓
1,288
✓
1,352
✓
1,208
✓
1,760
✓
3,272
✓
2,864
✓
3,240
✓
3,432
✓
3,608
sin ✓
23,392
✓
107,048
✓
154,624
✓
159,984
✓
167,200
✓
140,328
✓
174,664
✓
314,864
✓
234,832
✓
271,576
✓
276,712
✓
279,960
sinh ✓
37,312
✓
130,632
✓
166,912
✓
173,160
✓
180,336
✓
149,176
✓
188,072
✓
342,240
✓
256,096
✓
297,208
✓
301,192
✓
303,464
sqrt ✓
36,520
✓
138,736
✓
145,648
✓
157,208
✓
162,200
✓
131,352
✓
177,576
✓
335,432
✓
272,192
✓
309,512
✓
316,440
✓
322,264
sub ✓
496
✓
1,728
✓
1,728
✓
1,952
✓
1,928
✓
1,688
✓
2,344
✓
4,360
✓
3,688
✓
4,192
✓
4,416
✓
4,600
tan ✓
23,032
✓
105,976
✓
152,792
✓
161,184
✓
167,320
✓
141,504
✓
174,904
✓
316,256
✓
236,120
✓
272,896
✓
277,688
✓
281,000
tanh ✓
22,944
✓
111,376
✓
158,048
✓
162,040
✓
174,992
✓
142,512
✓
178,304
✓
321,776
✓
244,128
✓
283,632
✓
286,912
✓
287,344