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

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

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 21 May 2026 03:26AM 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 02:59AM UTC coverage: 84.211% (-0.02%) from 84.233%
26202799642

push

github

web-flow
feat(elreal): Phase C -- ring operations with depth-1 EFT refinement (#885)

* feat(elreal): Phase C -- ring operations with depth-1 EFT refinement

Phase C of epic #873 (resolves #876): adds the four ring operations plus
unary minus and abs, with depth-1 refinement for +, -, * via the
error-free transformations already in numerics/error_free_ops.hpp.

New API surface on the elreal class:

  elreal operator-() const;                          // unary negation
  elreal& operator+=(const elreal& rhs);
  elreal& operator-=(const elreal& rhs);
  elreal& operator*=(const elreal& rhs);
  elreal& operator/=(const elreal& rhs);
  bool    isneg() const noexcept;                    // helper for abs

  // Free functions (friends of the class):
  elreal operator+(const elreal& a, const elreal& b);
  elreal operator-(const elreal& a, const elreal& b);
  elreal operator*(const elreal& a, const elreal& b);
  elreal operator/(const elreal& a, const elreal& b);
  elreal abs(const elreal& a);
  elreal fabs(const elreal& a);                       // alias to abs

Refinement contract:

  - Depth 0: leading-double result of the operation. Handles NaN, inf,
    signed-zero propagation automatically via the IEEE-754 path on the
    component double.
  - Depth 1: EFT residual + operand corrections, captured via two_sum
    (+), two_diff (-), and two_prod (*). Returns 0.0 for / -- Newton-
    Raphson refinement on the reciprocal stream lands in Phase E/F.
  - Depth 2+: 0.0 with a documented Phase C limitation. Full McCleeary
    expansion arithmetic is deferred to Phase E/F.

Acceptance criteria of #876 met at depth-0:
  - (a + b) - b ~= a, (a - b) + b ~= a   (addition.cpp, subtraction.cpp)
  - (a * b) / b ~= a, commutativity, identity, absorption
    (multiplication.cpp)
  - a / a == 1, 1 / (1/a) ~= a, signed-zero, divide-by-zero
    (division.cpp)

Division by zero: when b.at(0) == 0,
  - ELREAL_THROW_ARITHMETIC_EXCEPTION == 0 (default): IEEE-754 +/-inf or
    NaN propagat... (continued)

46930 of 55729 relevant lines covered (84.21%)

5276807.12 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
31.43
-3.57% include/sw/universal/verification/test_suite_randoms.hpp
2
89.78
-0.55% include/sw/universal/number/posito/posito_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26202799642.1 21 May 2026 03:26AM UTC 651
84.21
GitHub Action Run
Source Files on build 26202799642
  • Tree
  • List 651
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26202799642
  • d156ae34 on github
  • Prev Build on main (#26201465878)
  • Next Build on main (#26203636807)
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