Skip to content

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