• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stillwater-sc / universal / 32091383438
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 18 Aug 2026 02:41AM UTC
Jobs 1
Files 619
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Aug 2026 02:18AM UTC coverage: 85.36% (-0.1%) from 85.46%
32091383438

push

github

web-flow
fix(qd): deliver format precision in multi-component trigonometry (#1318) (#1338)

* test(highprecision): score multi-component trigonometry against a reference

The trigonometry tests in the tree compare against std::sin and std::cos with a
1e-10 tolerance. That cannot see past double precision, which is how the
multi-component types shipped for years delivering double-double accuracy no
matter how many limbs they carried (#1318).

This suite scores each type against a reference wider than any format under
test: sin, cos, tan, asin, acos and atan carried as six doubles (~318 bits),
generated by mpmath at 200 decimal digits. Both the reference and the computed
value are exact sums of doubles, so both convert exactly to dyadic rationals and
the verdict is decided in exact integer arithmetic -- no floating-point sits
between the implementation and its score.

Each argument is charged the guard bits its own conditioning costs,
log2|x f'(x)/f(x)| rounded up. sin(3.141592653589793) is 1.2e-16 and one ulp of
input moves it by half of that, so no implementation holds relative accuracy
there; charging the condition number is what lets the suite demand full
precision everywhere else instead of exempting the hard arguments by hand. It
also covers the argument reduction, whose error grows with |x| at the same rate.

Against the current implementation: dd and dd_cascade pass, td_cascade fails 90
cases, qd 97, qd_cascade 101. The fixes follow.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(qd): give qd_eps the quad-double unit roundoff (#1318)

qd_eps was 4.93038065763132e-32 -- 2^-104, the DOUBLE-DOUBLE unit roundoff,
copied from dd_impl.hpp. A quad-double's is 2^-209.

Everything that uses it as a convergence threshold stopped five limbs early.
qd::sin and qd::cos truncate their Taylor series at 0.5 * qd_eps * |a|, so they
delivered 43 of the 63 digits the format carries. exp had already hit this and
worked around it with a local cons... (continued)

4 of 4 new or added lines in 3 files covered. (100.0%)

305 existing lines in 7 files now uncovered.

42983 of 50355 relevant lines covered (85.36%)

6902983.81 hits per line

Coverage Regressions

Lines Coverage ∆ File
102
81.54
-1.06% include/sw/universal/number/qd/qd_impl.hpp
78
80.5
-0.8% include/sw/universal/number/dd/dd_impl.hpp
31
83.33
-0.85% include/sw/universal/internal/floatcascade/floatcascade.hpp
31
80.31
-0.94% include/sw/universal/number/dd_cascade/dd_cascade_impl.hpp
27
75.69
-1.42% include/sw/universal/number/td_cascade/td_cascade_impl.hpp
26
75.45
-1.3% include/sw/universal/number/qd_cascade/qd_cascade_impl.hpp
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
Jobs
ID Job ID Ran Files Coverage
1 32091383438.1 18 Aug 2026 02:41AM UTC 619
85.36
GitHub Action Run
Source Files on build 32091383438
  • Tree
  • List 619
  • Changed 10
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32091383438
  • 6f3c50f5 on github
  • Prev Build on main (#32074964540)
  • Next Build on main (#32093743701)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc