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

stillwater-sc / universal / 24934415493 / 1
85%
master: 84%

Build:
Build:
LAST BUILD BRANCH: feat/issue-1061-online-muldiv
DEFAULT BRANCH: master
Ran 25 Apr 2026 04:05PM UTC
Files 633
Run time 12s
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

25 Apr 2026 03:38PM UTC coverage: 84.333% (-0.01%) from 84.343%
24934415493.1

push

github

web-flow
feat(integer): full constexpr arithmetic, comparison, shifts, conversions (#757)

* feat(integer): full constexpr arithmetic, comparison, shifts, conversions

Resolves #720. integer joins posit (#718), cfloat (#719), bfloat16 (#725)
as a fully constexpr arithmetic type. After this PR:

  using I32 = integer<32, std::uint32_t, IntegerNumberType::IntegerNumber>;
  constexpr I32 a(42), b(7);
  constexpr auto sum  = a + b;     // works
  constexpr auto prod = a * b;     // works
  constexpr auto quot = a / b;     // works (idiv free function)
  constexpr auto rem  = a % b;     // works
  static_assert(b < a);            // works
  using I128 = integer<128, std::uint32_t, ...>;
  constexpr I128 m_prod = I128(1000000) * I128(1000);  // multi-limb works

Promoted to constexpr (or BIT_CAST_CONSTEXPR via cascading):

  Class members:
    integer::operator+= (uint64-limb path uses is_constant_evaluated()
                          dispatch around addcarry intrinsic; multi-limb
                          path uses index loops instead of pointer-loops)
    integer::operator-= (std::cerr in WholeNumber/NaturalNumber TBD branches
                          guarded with !std::is_constant_evaluated())
    integer::operator*= (uint64-limb path: same is_constant_evaluated dispatch
                          around mul128/addcarry; signed and whole/natural
                          branches both promoted)
    integer::operator*=(BlockType) (same dispatch)
    integer::operator/= operator%= (std::cerr guarded)
    integer::operator<<= operator>>= operator&= operator|= operator^=
    integer::logicShiftRight
    cross-template integer<n>(integer<srcbits>) copy ctor (enables
                          multi-limb mul which constructs integer<nbits+1>
                          internally)

  Free helpers:
    idiv_t default ctor
    idiv() free function (std::cerr guarded)
    All free comparison operators (==, !=, <, >, <=, >=) for
      integer-integer and integer-IntType, both... (continued)

44956 of 53308 relevant lines covered (84.33%)

6438866.85 hits per line

Source Files on job 24934415493.1
  • Tree
  • List 633
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 24934415493
  • 5182a1d7 on github
  • Prev Job for on main (#24931269268.1)
  • Next Job for on main (#24939331552.1)
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