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

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

Build:
Build:
LAST BUILD BRANCH: feat/issue-942-block-eft-odd-precision
DEFAULT BRANCH: master
Ran 21 May 2026 06:29PM UTC
Jobs 1
Files 651
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

21 May 2026 06:02PM UTC coverage: 84.238% (+0.009%) from 84.229%
26243980512

push

github

web-flow
feat(elreal): Phase F -- geometric predicates via lazy real arithmetic (#899)

* feat(elreal): Phase F -- geometric predicates via lazy real arithmetic

Phase F of epic #873 (resolves #879). The canonical showcase for exact
real arithmetic: four geometric predicates that need a definite sign for
any input, including configurations a double-precision evaluation cannot
distinguish from zero.

Predicates shipped:
  orient2d  -- 2D orientation (left/right/collinear)
  orient3d  -- 3D orientation (above/below/coplanar)
  incircle  -- 2D in-circumcircle (inside/outside/cocircular)
  insphere  -- 3D in-circumsphere (inside/outside/cospherical)

Implementation is identical in structure to ereal's predicates.hpp --
the determinant expressions are the same, only the underlying Real
differs (elreal vs ereal<maxlimbs>). The predicate evaluates the
determinant via the lazy operators (Phase C), then calls sign(result,
budget) (Phase D) which walks the lazy stream to the first non-zero
component.

Point2D<Real> / Point3D<Real> templates are defined in elreal's
predicates.hpp under a #ifndef SW_UNIVERSAL_GEOMETRY_POINT_TYPES guard.
A future refactor may extract these to a shared
include/sw/universal/geometry/point.hpp; for Phase F the guard prevents
ODR conflicts if a TU includes both elreal's and ereal's predicates.

Tests at elastic/elreal/geometry/predicates.cpp mirror
elastic/ereal/geometry/predicates.cpp:
  - VerifyOrient2D: left turn / right turn / collinear / near-collinear
  - VerifyOrient3D: d above / below / coplanar
  - VerifyIncircle: origin inside / outside / cocircular (a, b, c, d on
                    unit circle)
  - VerifyInsphere: e inside the unit sphere / cospherical case

Comparison study added as section 9 of
docs/algorithmic-details/multi-component-arithmetic.md per the #879
acceptance criterion. Documents the qualitative trade-offs:
  - general-position inputs: both paths terminate at depth 0 (~same cost)
  - near-degenerate inputs: ereal gro... (continued)

46945 of 55729 relevant lines covered (84.24%)

5284040.59 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
93.63
-0.47% include/sw/universal/number/cfloat/cfloat_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 26243980512.1 21 May 2026 06:29PM UTC 651
84.24
GitHub Action Run
Source Files on build 26243980512
  • 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 #26243980512
  • fb531cc3 on github
  • Prev Build on main (#26240649255)
  • Next Build on main (#26245492001)
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