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

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

Build:
Build:
LAST BUILD BRANCH: feat/issue-1052-lift-precision-floor
DEFAULT BRANCH: master
Ran 02 Jun 2026 07:09PM UTC
Jobs 1
Files 671
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

02 Jun 2026 06:24PM UTC coverage: 84.475% (+0.02%) from 84.459%
26839644275

push

github

web-flow
feat(elreal): exp / log / pow (Phase 7.3, #931) (#1041)

math/exponent.hpp on the Phase 7.1/7.2 foundation:
- exp(x): argument reduction exp(x)=exp(x/2^r)^(2^r) to |xr|<=0.5, Taylor sum
  xr^n/n!, then square r times. The per-term divide by n uses mul_scalar(1/n)
  (O(depth) vs a full div) -- keeps x^n high precision while the 1/n coefficient
  carries host-double accuracy, ample for exp.
- log(x): range reduction x=m*2^e (m in [1,2)); log = e*ln2 + 2*artanh((m-1)/(m+1)).
- pow(x,y): small non-negative integer y -> repeated multiply; else exp(y*log(x)).

Default depth is SMALL (4 ~ 200 bits / ~60 digits, well beyond a host double):
the high-precision per-term products make the series cost grow ~O(depth^4)
(measured: log at depth 2 ~0.6ms, depth 5 ~128ms), and accuracy saturates long
before that. Pass a larger depth for more precision at a steep time cost. See
#1040 (accuracy-vs-compute-time characterization tool).

Tests (elastic/elreal/math/exponent.cpp): exp/log/general-pow on {double,float}
(series, like the 7.1 constants -- bfloat16's narrow significand drives the
series past its range; see constants.cpp); pow's integer fast path on all three
hosts. Identities log(exp(x))==x, exp(log(x))==x, exp(a+b)==exp(a)exp(b),
log(xy)==log(x)+log(y), value vs std::<fn>; 0-overlap on every result.

All 29 elreal tests pass on gcc and clang (Release) and with assertions on
(~0.9s); RISC-V cross-compiles clean; ASCII clean.

Relates to #931 (sub-phase 7.3).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

43 of 43 new or added lines in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

47425 of 56141 relevant lines covered (84.47%)

6023482.7 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
81.25
0.45% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 26839644275.1 02 Jun 2026 07:09PM UTC 671
84.47
GitHub Action Run
Source Files on build 26839644275
  • Tree
  • List 671
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26839644275
  • 81313b11 on github
  • Prev Build on main (#26830371194)
  • Next Build on main (#26848207996)
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