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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 15 Aug 2026 01:51PM UTC
Jobs 1
Files 617
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

15 Aug 2026 01:14PM UTC coverage: 85.483% (+0.07%) from 85.414%
31886684916

push

github

web-flow
fix(takum): evaluate wide-configuration arithmetic exactly in integers (#1314)

takum<>'s four operators and fma() evaluated in a double.  That is a single
rounding only while the operands are exactly representable as doubles, and a
takum significand is 1 + p bits with p reaching nbits - 2 - rbits: takum<64,3>
carries 60 bits against a double's 53, so BOTH operands were quantized before
the operation.  Adding zero was not a no-op.

Configurations with nbits > 54 + rbits now evaluate exactly in integers.  Every
takum value is a dyadic rational S * 2^e with S < 2^62: the significand product
is exact in 128 bits, division develops 128 quotient bits with a sticky
remainder, and addition aligns both terms into a 128-bit window.  All four share
one tail -- normalize, round to odd at 63 bits, then encode_fraction() performs
the single rounding the layout calls for.

Integers rather than the dd_cascade the issue first proposed: a double-double
leaves a near-tie hole in multiplication (the exact product of two 60-bit
significands is 120 bits and can sit 2^-120 from a tie point, below
dd_cascade's 2^-104 error), while integers close it, need no extended-precision
dependency in the core header, and stay constexpr.  Carrying the exponent as an
int64_t outside the significand also makes rbits = 5, whose characteristic
reaches 2^32, work without a guard.

Verified against an exact 1024-bit integer<> reference: the produced encoding
must be at least as close to the true result as either neighbour, and at an
exact tie must carry an even trailing field.  Confirmed by mutation -- the
double path fails ~75% of 64-bit addition pairs (matching the 75.60% measured
independently against __float128 in the issue) and 0% at 16 and 32 bits;
disabling round-to-odd fails a further 834; breaking ties towards odd fails the
tie rule and nothing else.  Coverage is a checked property: zero skips, and the
sweep fails if it compared nothing.

takum_log's addition and subtraction remain ... (continued)

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

42402 of 49603 relevant lines covered (85.48%)

7311162.93 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31886684916.1 15 Aug 2026 01:51PM UTC 617
85.48
GitHub Action Run
Source Files on build 31886684916
  • Tree
  • List 617
  • Changed 6
  • Source Changed 3
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31886684916
  • 1db7a010 on github
  • Prev Build on main (#31844197988)
  • Next Build on main (#31910503213)
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