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

stillwater-sc / universal
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: feat/issue-725-bfloat16-constexpr
DEFAULT BRANCH: master
Repo Added 18 Apr 2018 09:13PM UTC
Files 633
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

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
  • main
  • chore/claude-code-config
  • ci-alert-autofix-1
  • ci/add-bisection-scope
  • docs/docs-site-links
  • docs/workflow
  • feat/bisection-encode-decode
  • feat/decimal-fixpnt
  • feat/dfloat-ranges
  • feat/issue-545-quire-traits
  • feat/issue-546-generalized-quire
  • feat/issue-547-cfloat-fdp
  • feat/issue-548-fixpnt-fdp
  • feat/issue-549-lns-fdp
  • feat/issue-564-unum-core-storage
  • feat/issue-565-unum-conversions
  • feat/issue-566-unum-comparison
  • feat/issue-567-unum-arithmetic
  • feat/issue-568-unum-io
  • feat/issue-569-unum-math
  • feat/issue-570-unum-ubox
  • feat/issue-571-unum-validation
  • feat/issue-583-type-registry
  • feat/issue-584-translator
  • feat/issue-585-serialization-tests
  • feat/issue-586-serialization-ci
  • feat/issue-631-steps-visualization
  • feat/issue-632-oracle-command
  • feat/issue-633-testvec
  • feat/issue-634-histogram
  • feat/issue-635-stochastic
  • feat/issue-636-errordist
  • feat/issue-637-cond
  • feat/issue-638-mcp-server
  • feat/issue-653-steps-posit
  • feat/issue-654-steps-fixpnt
  • feat/issue-655-steps-dfloat
  • feat/issue-656-steps-lns
  • feat/issue-657-steps-dd
  • feat/issue-658-steps-hfloat
  • feat/issue-659-steps-dbns
  • feat/issue-666-ast-builder
  • feat/issue-667-provenance
  • feat/issue-668-rewrite-patterns
  • feat/issue-669-ast-matching
  • feat/issue-670-verification
  • feat/issue-689-bisection-generators
  • feat/issue-690-bisection-arithmetic
  • feat/issue-691-bisection-cli
  • feat/issue-692-bisection-aux-real
  • feat/issue-693-bisection-validation
  • feat/issue-704-blockbinary-storage
  • feat/issue-713-posit-constexpr-integers
  • feat/issue-713-posit-ieee754-constexpr
  • feat/issue-715-blockbinary-constexpr
  • feat/pop-implementation
  • feat/posit_ostream
  • feat/precision-opt
  • feat/takum-arithmetic
  • feat/teju-jagua
  • feat/ucalc-audit
  • feat/ucalc-block
  • feat/ucalc-cancel
  • feat/ucalc-clip
  • feat/ucalc-diverge
  • feat/ucalc-dot
  • feat/ucalc-heatmap
  • feat/ucalc-native-arithmetic
  • feat/ucalc-native-precision-rendering
  • feat/ucalc-numberline
  • feat/ucalc-quantize
  • feat/ucalc-repl-calculator
  • feat/ucalc-structured-output
  • feat/ucalc-takum-dfixpnt
  • feat/ucalc-trace
  • feature/cross-type-conversion-197
  • fix/blas-bugs
  • fix/blockbinary-any-logical-or-bug
  • fix/cfloat-cross-config-double-bottleneck
  • fix/cfloat-logic
  • fix/cfloat-signed-zero-equality
  • fix/cfloat-subnormal-source-conversion
  • fix/cfloat-supernormal-and-rounding-bugs
  • fix/cfloat-wide-significand-rounding
  • fix/cmake-config
  • fix/codeql-alerts
  • fix/dd-division-sign-bug
  • fix/dfixpnt-doc
  • fix/edecimal-perf
  • fix/ereal_ostream
  • fix/fixpnt-saturating-division-double-fallback
  • fix/issue-339-cfloat-parse
  • fix/issue-438-dd-qd-exp-log
  • fix/issue-509-lns-fraction
  • fix/issue-559-coderabbit-followup
  • fix/issue-559-posit-nar-to-binary
  • fix/issue-684-cfloat-integer-rounding
  • fix/issue-696-capi-shim-perf
  • fix/issue-710-bit-cast-msvc
  • fix/lns-division-operator
  • fix/lns-wrapping-division-exponent-subtraction
  • fix/pop-coverage
  • fix/posit-division
  • fix/quire_numerics
  • fix/std_numbers
  • losborn_3_98_fixes
  • losborn_gcc_broken_on_intel_macOS
  • losborn_impossible_float_case_warning_fix
  • losborn_improved_comments_SQUASHED
  • losborn_top_level_makefile
  • riscv-tests
  • unum
  • v3.93
  • v3.94
  • v3.95
  • v3.96
  • v3.97
  • v3.98
  • v3.99

24 Apr 2026 08:55AM UTC coverage: 84.371% (+0.004%) from 84.367%
24881139213

push

github

web-flow
feat(posit): enable constexpr IEEE-754 construction (Phase 2 of #713) (#717)

* feat(posit): enable constexpr IEEE-754 construction (Phase 2 of #713)

Phase 2 completes constexpr posit construction from numeric literals.
Float, double, and (where supported) long double inputs can now be used
in constant expressions:

  constexpr posit<32, 2> pi(3.14);     // now works
  constexpr posit<32, 2> npi(-3.14);   // now works
  constexpr posit<8,  0> pi8(3.14);    // now works
  constexpr posit<64, 3> big(1.0e100); // now works

Implementation:

1. encode_positive_with_scale_and_fraction(scale, frac, num_fbits, sat):
   Generalizes the integer-only encoder from Phase 1 to accept a separate
   scale and fraction-bit width. Handles negative scale via Euclidean
   division so the regime/exponent split works for sub-1.0 values. Handles
   negative regime (k<0) with the proper "(-k) zeros + 1 terminator"
   layout. encode_positive_uint64 is now a thin wrapper that derives
   scale = find_msb(v) - 1.

2. convert_ieee754 rewritten:
   - extractFields() (bit-cast based, BIT_CAST_CONSTEXPR) replaces frexp
   - Raw-exponent NaN/Inf check (rawExp == eallset) replaces std::isnan
     and std::isinf
   - Subnormals normalized via find_msb on rawFrac to produce a 1.frac'
     representation with scale = msb_pos - bias - fbits
   - For nbits <= 64: route to encode_positive_with_scale_and_fraction
     (sign applied via uint64 two's complement)
   - For nbits > 64: route to convert_<>() with a blocksignificand
     (convert_<>() became constexpr in PR #716)
   - Function marked BIT_CAST_CONSTEXPR (constexpr where __builtin_bit_cast
     is constexpr - gcc, clang, MSVC modern)

Tests:
- static/tapered/posit/api/api.cpp gets a "constexpr IEEE-754 construction"
  block covering posit<{8,16,32,64},{0,1,2,3}> from float and double, plus
  a subnormal float case (1e-40f) that exercises find_msb normalization.

Cross-compiler regression validation (gcc-13 + clang-18, -std=c++20):
... (continued)

96 of 100 new or added lines in 1 file covered. (96.0%)

12 existing lines in 2 files now uncovered.

44942 of 53267 relevant lines covered (84.37%)

6452764.52 hits per line

Relevant lines Covered
Build:
Build:
53267 RELEVANT LINES 44942 COVERED LINES
6452764.52 HITS PER LINE
Source Files on main
  • Tree
  • List 633
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
24881139213 main feat(posit): enable constexpr IEEE-754 construction (Phase 2 of #713) (#717) * feat(posit): enable constexpr IEEE-754 construction (Phase 2 of #713) Phase 2 completes constexpr posit construction from numeric literals. Float, double, and (where ... push 24 Apr 2026 09:23AM UTC web-flow github
84.37
24864610179 main feat(blockbinary): promote arithmetic operators to constexpr (PR 2 of #713) (#716) * feat(blockbinary): promote arithmetic operators to constexpr (PR 2 of #713) Mark blockbinary's arithmetic and bitwise operators constexpr so that posit convert_... push 24 Apr 2026 12:14AM UTC web-flow github
84.37
24863021025 main feat(posit): enable constexpr integer construction (Phase 1 of #713) (#714) * feat(posit): enable constexpr integer construction (Phase 1 of #713) Adds true constexpr integer-to-posit conversion via uint64_t shift/mask, bypassing the previous do... push 23 Apr 2026 11:24PM UTC web-flow github
84.39
24585301926 main fix(tools): guard <bit> header include for MSVC without /Zc:__cplusplus (#711) * fix(native): guard <bit> include for MSVC without /Zc:__cplusplus The <bit> include in utility/bit_cast.hpp was gated behind __cplusplus >= 202002L, which fails on ... push 17 Apr 2026 08:51PM UTC web-flow github
84.37
24527319924 main fix(cmake): clean up stale install config and orphan files (#709) * cleaning up bad cmake config state * fix(cmake): clean up stale install config and orphan files Installed universal-config.cmake was globally forcing CMAKE_CXX_STANDARD, breaki... push 16 Apr 2026 07:03PM UTC web-flow github
84.36
24350825956 main feat(edecimal): adding an performance test (#707) push 13 Apr 2026 03:36PM UTC web-flow github
84.39
24248240237 main feat(bisection): promote storage to blockbinary for nbits > 64 (#706) * feat(bisection): promote storage to blockbinary for nbits > 64 Replace int64_t storage with a dual-path design: using bits_type = conditional_t<(nbits <= 64), int64_t, ... push 10 Apr 2026 03:02PM UTC web-flow github
84.37
24223726910 main feat(bisection): validation suite and documentation (#705) * feat(bisection): validation suite and documentation Add comprehensive validation tests and documentation for the bisection coding framework, closing the final sub-issue of Epic #687. ... push 10 Apr 2026 03:12AM UTC web-flow github
84.35
24209459485 main feat(bisection): template AuxReal for high-precision interval bisection (#703) * feat(bisection): template AuxReal for high-precision interval bisection Parameterize bisection<G, R, nbits, bt, AuxReal = double> so the interval bisection pipeline... push 09 Apr 2026 08:00PM UTC web-flow github
84.37
24088222519 main ci: allow 'bisection' as a conventional commit scope (#702) Add 'bisection' to the allowed scopes list so PRs touching the bisection coding framework (Epic #687, sub-issues #688-#693) can use the natural scope tag instead of falling back to 'tool... push 07 Apr 2026 03:26PM UTC web-flow github
84.34
See All Builds (390)
  • Repo on GitHub
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