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

stillwater-sc / universal / 36006265634
87%
master: 84%

Build:
Build:
LAST BUILD BRANCH: valid
DEFAULT BRANCH: master
Ran 24 Sep 2026 02:14PM UTC
Jobs 1
Files 676
Run time 3min
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

24 Sep 2026 01:31PM UTC coverage: 85.984% (+0.02%) from 85.964%
36006265634

push

github

web-flow
feat(posit): characterize what the logarithm shim actually costs (#1591)

Issue #244 asked for native posit log and log1p in 2021, on the correct
suspicion that the library calls std::log and converts. It does. The issue
stayed open for five years because a correctly rounded elementary function
library for a PARAMETERIZED number system is an open research question: the
Minefield method solves one configuration at a time, its coefficient synthesis
is not feasible above 32 bits, and RLibm's own posit32 log computes in doubles
and converts on the way out, exactly as this shim does.

Rather than guess at a polynomial, this measures what the shim costs, against
a qd oracle that carries ~212 bits and agrees with an adaptive ereal to 208.

Every failure is attributed to one of the three places the shim can lose
information -- the argument (double(x) is not x), the host (std::log did not
return the nearest double), or the second rounding -- so the mechanism is
measured rather than inferred. Across the rows measured: 1190 argument, 0
libm, 453 rounding.

That splits into two failures that differ in kind, not degree. Where the
format still fits a double the errors are 1 ulp and the cause is double
rounding. Where it does not, the shim computes the logarithm of a different
number and the errors are unbounded. posit<56,0> shows both, decided by
neighbourhood: 1-ulp double rounding near e where it uses 52 fraction bits,
and 200 of 200 argument loss near 1.0 where it uses 53 and the value above 1.0
is indistinguishable from 1.0 as a double.

For every small and mid configuration measured -- posit<8,2> through
posit<16,2> exhaustively, posit<32,2> in both demanding neighbourhoods -- the
shim is correctly rounded, so a native implementation would recover no
accuracy there.

Two things about the method are worth more than the numbers. The oracle must be
given the posit's EXACT value and its result must be rounded to the posit in
oracle arithmetic; converting either si... (continued)

45484 of 52898 relevant lines covered (85.98%)

9418228.98 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36006265634.1 24 Sep 2026 02:14PM UTC 676
85.98
GitHub Action Run
Source Files on build 36006265634
  • Tree
  • List 676
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36006265634
  • 3813b6c1 on github
  • Prev Build on main (#35940409374)
  • Next Build on main (#36028335838)
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