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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 09 Apr 2026 08:00PM UTC
Jobs 1
Files 633
Run time 2min
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

09 Apr 2026 07:33PM UTC coverage: 84.369% (+0.03%) from 84.342%
24209459485

push

github

web-flow
feat(bisection): template AuxReal for high-precision interval bisection (#703)

* feat(bisection): template AuxReal for high-precision interval bisection

Parameterize bisection<G, R, nbits, bt, AuxReal = double> so the
interval bisection pipeline (encode/decode/bisection_point and all
generator/refinement functors) runs entirely in the AuxReal type.

For nbits up to ~50, double (the default) provides sufficient
precision for the binary search to converge to the correct encoding.
For wider encodings, instantiating with dd (~31 digits) or qd (~63
digits) from the Universal library keeps the pipeline accurate.
This is the approach recommended in Section 4 of the paper.

Changes:
- bisection_fwd.hpp: add 5th template parameter AuxReal (default double)
- bisection_impl.hpp: bisection_point, bisection_encode, bisection_decode
  templatized on <R>; class gains decode_aux()/assign_from_aux() helpers;
  arithmetic operators route through AuxReal instead of hardcoded double
- generators.hpp: all generator/refinement operator() become function
  templates; use ADL-qualified math calls (using std::log2/exp2/...) so
  dd/qd overloads are found via argument-dependent lookup
- numeric_limits.hpp, manipulators.hpp, attributes.hpp: thread AuxReal
- Type aliases gain an optional AuxReal parameter (default double)
- New test: static/bisection/conversion/aux_real.cpp exercises dd- and
  qd-backed encode/decode round-trips and monotonicity at 8 and 16 bits
- tools/bisection REPL: register bisection_posit{16,32}_dd and
  bisection_natposit16_dd for interactive exploration

Storage remains int64_t (nbits <= 64). Promoting to blockbinary for
wider formats is tracked as a follow-up under Epic #687.

Resolves #692
Relates to #687

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

* fix(bisection): correct comment: 1/7 is rational, not irrational

The comment in aux_real.cpp incorrectly called 1/7 "an irrational
fraction". 1/7 is rational; the relevant prop... (continued)

102 of 104 new or added lines in 3 files covered. (98.08%)

13 existing lines in 4 files now uncovered.

44806 of 53107 relevant lines covered (84.37%)

6509124.28 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
99.26
0.03% include/sw/universal/number/bisection/bisection_impl.hpp
1
0.0
0.0% include/sw/universal/number/bisection/manipulators.hpp

Coverage Regressions

Lines Coverage ∆ File
5
50.45
-4.5% include/sw/universal/verification/posit_test_suite_randoms.hpp
4
80.8
-0.67% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
2
85.19
-0.21% include/sw/universal/number/dd/dd_impl.hpp
2
93.94
-6.06% include/sw/universal/number/dd/math/functions/exponent.hpp
Jobs
ID Job ID Ran Files Coverage
1 24209459485.1 09 Apr 2026 08:00PM UTC 633
84.37
GitHub Action Run
Source Files on build 24209459485
  • Tree
  • List 633
  • Changed 11
  • Source Changed 3
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24209459485
  • 82335725 on github
  • Prev Build on main (#24088222519)
  • Next Build on main (#24223726910)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc