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

stillwater-sc / universal / 26229262955
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 21 May 2026 01:59PM UTC
Jobs 1
Files 651
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

21 May 2026 01:33PM UTC coverage: 84.249% (+0.02%) from 84.227%
26229262955

push

github

web-flow
feat(elreal): Phase E.3 -- exp/log/pow family with depth-1 derivative refinement (#895)

Phase E.3 of epic #873 (resolves #889). Eight math functions: the
exponential family (exp, exp2, expm1), the logarithm family (log,
log2, log10, log1p), and the general two-argument pow.

Uniform implementation strategy:
  Depth 0: standard library on the leading double (IEEE-754 correctly
           rounded on all target platforms).
  Depth 1: derivative-based correction f'(a.at(0)) * a.at(1). For
           pow(a, b) both operand derivatives contribute:
             dpow/da * a.at(1) + dpow/db * b.at(1)
  Depth 2+: 0.0. Higher-order corrections (the std library's depth-0
           rounding error + second-order Taylor) require either a
           higher-precision algorithm or Newton refinement using lazy
           division -- Phase F.

Per-function derivatives:
  exp(x)         -> c0 * a.at(1)
  exp2(x)        -> c0 * ln2 * a.at(1)
  expm1(x)       -> (c0 + 1) * a.at(1)
  log(x)         -> a.at(1) / a0
  log2(x)        -> a.at(1) / (a0 * ln2)
  log10(x)       -> a.at(1) / (a0 * ln10)
  log1p(x)       -> a.at(1) / (1 + a0)
  pow(a, b)      -> (b*c0/a) * a.at(1) + (c0*log(a)) * b.at(1)

Edge cases (no new exception types):
  log(0)        -> -inf
  log(negative) -> NaN
  pow(negative, fractional) -> NaN
  pow(0, 0)     -> 1 (C convention via std::pow)

Tests under elastic/elreal/math/ (one per family):
  exponent.cpp   identities (exp(0)=1, exp2(10)=1024), cross-validation
                 vs std::exp/exp2/expm1, special values, depth-1
                 propagation on rational input
  logarithm.cpp  identities (log(1)=0, log(e)~=1, log2(1024)=10),
                 edge cases (log(0)=-inf, log(neg)=NaN),
                 round-trip log(exp(x))~=x and exp(log(x))~=x,
                 depth-1 propagation
  pow.cpp        exact integer powers (2^10=1024, 3^4=81),
                 identities (a^0=1, a^1=a, 1^b=1, 0^0=1),
                 consistency pow(a,b) == exp(b*... (continued)

46951 of 55729 relevant lines covered (84.25%)

5285067.69 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
89.78
0.0% include/sw/universal/number/posito/posito_impl.hpp
1
81.25
0.45% include/sw/universal/number/posit1/specialized/posit_16_1.hpp
Jobs
ID Job ID Ran Files Coverage
1 26229262955.1 21 May 2026 01:59PM UTC 651
84.25
GitHub Action Run
Source Files on build 26229262955
  • Tree
  • List 651
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26229262955
  • 3b17450e on github
  • Prev Build on main (#26224499819)
  • Next Build on main (#26231867755)
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