Skip to content

Releases: stillwater-sc/universal

Universal v4.7.1

27 May 04:06
bf973f6

Choose a tag to compare

[4.7.1] - 2026-05-27

Added

  • elreal: Phase A foundation -- type skeleton and refinement protocol by @Ravenwater
  • elreal: Phase B -- rational and string construction with lazy refinement (#884) by @Ravenwater
  • elreal: Phase C -- ring operations with depth-1 EFT refinement (#885) by @Ravenwater
  • elreal: Phase D -- sign, compare, ordering with refinement budget (#886) by @Ravenwater
  • elreal: Phase E.1 -- math constants as 4-component static expansions (#893) by @Ravenwater
  • elreal: Phase E.2 -- sqrt + hypot with depth-1 EFT refinement on sqrt (#894) by @Ravenwater
  • elreal: Phase E.3 -- exp/log/pow family with depth-1 derivative refinement (#895) by @Ravenwater
  • elreal: Phase E.4 -- hyperbolic family with depth-1 derivative refinement (#896) by @Ravenwater
  • elreal: Phase E.5 -- inverse trig family with depth-1 derivative refinement (#897) by @Ravenwater
  • elreal: Phase E.6 -- forward trig (sin/cos/tan) with derivative refinement (#898) by @Ravenwater
  • elreal: Phase F -- geometric predicates via lazy real arithmetic (#899) by @Ravenwater
  • elreal: Phase G -- elreal as a cross-implementation validation oracle (#900) by @Ravenwater
  • constants: High-precision (~320-digit) reference string constants (#915) by @Ravenwater
  • elreal: Phase 1 -- block representation (#934) by @Ravenwater
  • elreal: Phase 2 -- ZBCL lazy co-list (#935) by @Ravenwater
  • elreal: Phase 3 -- block-level error-free transforms (#936) by @Ravenwater
  • ereal: Expand addition.cpp corner-case coverage across LEVEL 1-4 (#958) by @Ravenwater
  • elreal: Phase 4 -- bit-perfect McCleeary threeAdd + add() (#940) by @Ravenwater
  • ereal: Refactor subtraction.cpp to standard test pattern (#963) by @Ravenwater
  • ereal: Refactor multiplication.cpp to standard test pattern (#965) by @Ravenwater
  • ereal: Refactor division.cpp to standard test pattern (#969) by @Ravenwater
  • ereal: Rename identities.cpp -> algebraic_identities.cpp, standardize (#971) by @Ravenwater
  • ereal: Refactor math/constants/ tests to standard pattern (#972) by @Ravenwater
  • ereal: Refactor maxlimbs_threshold.cpp + wire into build (#973) by @Ravenwater
  • ereal: Standardize math/functions classify/numerics/truncate/minmax/next (#950 cat 1) (#974) by @Ravenwater
  • ereal: Standardize + property coverage for math/functions exp/log (#950 cat 2) (#975) by @Ravenwater
  • ereal: Standardize + property coverage for math/functions trig/hyperbolic (#950 cat 3) (#976) by @Ravenwater
  • ereal: Standardize + property coverage for math/functions pow/sqrt/hypot (#950 cat 4) (#977) by @Ravenwater
  • ereal: Standardize math/functions fractional/error_gamma + smoke (#950 cat 5, final) (#978) by @Ravenwater
  • ereal: Verify conversion/geometry single-operator scope (#979) by @Ravenwater
  • ereal: Audit api/ -- classify demos vs tests, refactor + ASCII (#980) by @Ravenwater
  • ereal: Add Priest normal-form structural oracle (#954 D1) (#983) by @Ravenwater
  • ereal: Precision-lifting self-oracle (#954 D2) (#984) by @Ravenwater
  • ereal: Structural stress test + Priest-normal fuzz retrofit (#954 D3) (#985) by @Ravenwater
  • internal: EFT primitive exactness proof (#988, #987 Layer 1) (#994) by @Ravenwater
  • ereal: Independent exact-value oracle -- keystone (#989, #987 Layer 2) (#995) by @Ravenwater
  • bfloat16: Add ldexp/frexp/scalbn/logb/ilogb exponent functions (#1015) by @Ravenwater

CI/CD

  • Allow elreal scope in conventional-commits PR title check by @Ravenwater
  • cmake: Gate ccache save to main + set max-size to stop PR-run eviction (#1010) by @Ravenwater

Changed

  • elreal: Back out for McCleeary LFPERA rewrite (#922) by @Ravenwater
  • internal: Standardize internal/expansion regression tests + pedagogical api.cpp (#1000) by @Ravenwater

Documentation

  • Add Algorithmic Details section (LNS add/sub, multi-component) by @Ravenwater
  • algorithmic-details: Correct multi-component validation strategy by @Ravenwater
  • algorithmic-details: Correct fabricated API claims after audit by @Ravenwater
  • elreal: Phase H -- user-facing reference, algorithmic deep-dive, ELREALO retirement (#901) by @Ravenwater
  • internal: Shewchuk/Priest conformance audit + citation fixes (#990, #987 Layer 3) (#996) by @Ravenwater
  • internal: EFT operator diagrams + testing reference (#997) by @Ravenwater

Fixed

  • Streamlining the last long running AuxReal bisection test by @Ravenwater
  • elreal: Numeric_limits self-includes elreal_impl; denorm_min == min() by @Ravenwater
  • elreal: Rename _inline member to _inl_buf for MSVC compatibility (#919) by @Ravenwater
  • ereal: Enhance constant print info (#924) by @Ravenwater
  • cfloat: Work around clang miscompile in to_native (#938) by @Ravenwater
  • ereal: Improve regression tests for ereal (#943) by @Ravenwater
  • ereal: Apply IEEE 754 rules for Inf/NaN in operator+= / operator-= (#960) by @Ravenwater
  • ereal: Port Priest canonical renormalize to fix associativity (#961) by @Ravenwater
  • ereal: IEEE 754 signed-zero subtraction (#964) by @Ravenwater
  • ereal: IEEE 754 special values for multiplication (#967) by @Ravenwater
  • ereal: IEEE 754 division-by-zero + special values (#970) by @Ravenwater
  • ereal: Renormalize expansion_product output to Priest canonical form (#982) by @Ravenwater
  • einteger: Correct multiply carry propagation + shift canonicalization (#992) by @Ravenwater
  • erational: Correct ieee754 conversion (both directions) + add tests (#993) by @Ravenwater
  • ereal: Fixing expansion ops api demo by @Ravenwater
  • ereal: Stop ereal regression tests from running for hours in CI (#1001) by @Ravenwater
  • ereal: UBSan signed-overflow in check_priest_normal on non-finite limbs (#1003) by @Ravenwater
  • ereal: Checking exponent regression test by @Ravenwater
  • ereal: Deliver extended precision in mathlib transcendentals (#1004) by @Ravenwater
  • ereal: Parse high-precision decimals without precision loss or NaN (#1011) by @Ravenwater
  • internal: Correct inverted is_nonoverlapping expansion predicate (#1012) by @Ravenwater
  • qd: Correct qd_pi_3 constant (was pi/2) and make the constants test enforce (#1014) by @Ravenwater

Performance

  • elreal: Phase I -- throughput baseline and elreal-vs-ereal crossover (#902) by @Ravenwater
  • elreal: Phase K.1 -- small-buffer optimisation on _components ([#9...
Read more

Universal v4.7.0

19 May 11:25
9f7b3ae

Choose a tag to compare

[4.7.0] - 2026-05-19

Added

  • lns: CORDIC hyperbolic add/sub policy (Phase E of #777) (#836) by @Ravenwater
  • lns: Novel Cotransformation Combination policy (Phase F of #777) (#837) by @Ravenwater
  • utility: Constexpr string-parse primitives (Phase A of #835) (#838) by @Ravenwater
  • integer, fixpnt: Migrate/implement parse() onto string_parse (Phase B1 of #835) (#839) by @Ravenwater
  • utility: High-precision decimal-to-binary converter (Phase B2a of #835) (#841) by @Ravenwater
  • posit: Route decimal string parse through decimal_to_binary (Phase B2b of #835) (#843) by @Ravenwater
  • cfloat: Route decimal string parse through decimal_to_binary (Phase B2c of #835) (#846) by @Ravenwater
  • API parity for decimal string parse in extended-precision FP family (Phase C of #835) (#847) by @Ravenwater
  • API parity / implementation for decimal string parse in specialized FP (Phase D of #835) (#850) by @Ravenwater
  • Exact d2b-based decimal parse via distillation for dd, qd, floatcascade (#851) by @Ravenwater
  • Operator>> hygiene + ereal nan/inf for decimal/elastic family (Phase E of #835) (#858) by @Ravenwater
  • hfloat: Implement parse() for decimal string input (#859) by @Ravenwater
  • dfloat: Comprehensive parse coverage across BID and DPD (#860) by @Ravenwater
  • einteger: Complete binary/octal parse + setbyte + reduce sign fix (#863) by @Ravenwater
  • edecimal: Extend parse to decimal-point and scientific notation (#865) by @Ravenwater
  • erational: Extend parse to p/q, decimal, and scientific notation (#866) by @Ravenwater
  • efloat: Implement parse() for decimal and scientific literals (#867) by @Ravenwater

CI/CD

  • codeql: Drop pull_request trigger, switch c-cpp to manual CI_LITE build (#845) by @Ravenwater

Fixed

  • einteger: Correct borrow propagation in Knuth Algorithm D step D4 (#861) by @Ravenwater
  • einteger: Operator>>= leaves spurious limb past the shift boundary (#864) by @Ravenwater
  • ereal: Reject trailing garbage in parse + comprehensive test coverage (#868) by @Ravenwater
  • hfloat: Parse() for hfp128 yields correct values by @Ravenwater
  • hfloat: Parse() delivers full fbits precision via d2b by @Ravenwater
  • hfloat: To_hex / components support wide configs (no truncation) by @Ravenwater
  • hfloat: Maxpos / maxneg / minpos / minneg correct for fbits >= 64 by @Ravenwater
  • dfloat/api: Replace strstream + fix round-trip test by @Ravenwater

Miscellaneous

  • deps: Bump devalue from 5.6.4 to 5.8.1 in /docs-site (#834) by @dependabot[bot]
  • hfloat: Address CodeRabbit review nits by @Ravenwater
  • hfloat: Align multi-line hex print in api.cpp (CodeRabbit nit) by @Ravenwater

Testing

  • utility: Adopt canonical ReportTestSuite pattern for string_parse foundation test (#840) by @Ravenwater

Universal v4.6.16

13 May 23:17
e162292

Choose a tag to compare

[4.6.16] - 2026-05-13

Added

  • zfpblock: Full constexpr promotion of ZFP transform codec (#830) by @Ravenwater
  • zfpblock: Full constexpr promotion of zfparray multi-block container (#831) by @Ravenwater

Documentation

  • Wrapup 2026-05-10 -- elastic-types partial-constexpr cascade by @Ravenwater
  • Wrapup 2026-05-13 -- zfpblock constexpr completion + Epic #723 closed by @Ravenwater

Fixed

  • posit: Replace flaky random division test with targeted bit-pattern tests (#833) by @Ravenwater

Miscellaneous

  • deps: Bump astro from 6.1.8 to 6.3.2 in /docs-site (#832) by @dependabot[bot]

Universal v4.6.15

11 May 20:36
3a86bdf

Choose a tag to compare

[4.6.15] - 2026-05-11

Added

Universal v4.6.14

05 May 14:07
c2ecfa5

Choose a tag to compare

[4.6.14] - 2026-05-05

Added

  • e8m0: Full constexpr support across all operators (#810) by @Ravenwater
  • microfloat: Full constexpr support across all operators (#811) by @Ravenwater
  • mxfloat: Full constexpr support across all operators (#812) by @Ravenwater
  • nvblock: Full constexpr support across all operators (#813) by @Ravenwater
  • Partial constexpr support for accessor subset(zfpblock) (#814) by @Ravenwater

Documentation

  • Wrapup 2026-05-05 -- OCP/NVIDIA block-format constexpr chain by @Ravenwater

Universal v4.6.13

04 May 14:02
8eb4b5c

Choose a tag to compare

[4.6.13] - 2026-05-04

Added

CI/CD

  • Force Node.js 24 for JavaScript actions in all workflows (#790) by @Ravenwater

Documentation

  • Changelog entry + session log for 2026-05-04 by @Ravenwater

Fixed

  • lns: Correcting the LNS paper references (#794) by @Ravenwater
  • dfixpnt: Handle ndigits >= 20 overflow in to_int64 and operator=(double) (#807) by @Ravenwater
  • qd: To_digits robust to non-canonical limbs (qd/dd/floatcascade) (#808) by @Ravenwater

Universal v4.6.12

28 Apr 16:06
b611f06

Choose a tag to compare

[4.6.12] - 2026-04-28

Added

Documentation

Fixed

  • tools: Code hygiene for MSVC (bigobj, narrowing, ASCII docs, posit if-constexpr) (#778) by @Ravenwater
  • integer: Implement WholeNumber/NaturalNumber operator-= (#779) by @Ravenwater
  • lns: Per-algorithm tolerance for add/sub regression suite (#788) by @Ravenwater

Universal v4.6.11

26 Apr 18:19
9a7c024

Choose a tag to compare

[4.6.11] - 2026-04-26

Added

  • bfloat16: Full constexpr support across all operators (#751) by @Ravenwater
  • internal: Promote blocktriple and blocksignificand arithmetic to constexpr (#753) by @Ravenwater
  • posit: Full constexpr arithmetic, comparison, and conversion-out (#755) by @Ravenwater
  • cfloat: Full constexpr arithmetic, comparison, and conversion-out (#756) by @Ravenwater
  • integer: Full constexpr arithmetic, comparison, shifts, conversions (#757) by @Ravenwater
  • internal: Blockbinary mul/div/mod constexpr foundation (#760) by @Ravenwater
  • fixpnt: Full constexpr arithmetic, comparison, shifts, conversions (#761) by @Ravenwater
  • math: Add sw::math::constexpr_math facility with constexpr log2 (#762) by @Ravenwater
  • math: Add constexpr exp2 to sw::math::constexpr_math (#769) by @Ravenwater
  • math: Add constexpr log (natural logarithm) to sw::math::constexpr_math (#771) by @Ravenwater
  • math: Add constexpr pow to sw::math::constexpr_math (#770) by @Ravenwater
  • math: Add constexpr sqrt to sw::math::constexpr_math (#772) by @Ravenwater
  • math: Add constexpr exp (natural exponential) to sw::math::constexpr_math (#775) by @Ravenwater
  • lns: Full constexpr support across all operators (#776) by @Ravenwater

Miscellaneous

  • deps: Bump postcss from 8.5.6 to 8.5.10 in /docs-site (#754) by @dependabot[bot]

Testing

  • math: Harden pow signed-zero and special-value test checks (CodeRabbit) (#773) by @Ravenwater

Universal v4.6.10

24 Apr 08:58
a943617

Choose a tag to compare

[4.6.10] - 2026-04-24

Added

Miscellaneous

  • deps: Bump astro and @astrojs/starlight in /docs-site (#712) by @dependabot[bot]

Universal v4.6.9

17 Apr 21:04
9632fbc

Choose a tag to compare

[4.6.9] - 2026-04-17

Added

  • bisection: Core template class with encode/decode by @Ravenwater
  • tools: Pre-built generators for known number systems by @Ravenwater
  • tools: Bisection arithmetic operators and math functions by @Ravenwater
  • tools: Add standalone bisection CLI REPL (#701) by @Ravenwater
  • bisection: Template AuxReal for high-precision interval bisection (#703) by @Ravenwater
  • bisection: Validation suite and documentation (#705) by @Ravenwater
  • bisection: Promote storage to blockbinary for nbits > 64 (#706) by @Ravenwater
  • edecimal: Adding an performance test (#707) by @Ravenwater

CI/CD

Changed

  • docs-site: Make src/content/docs/ 100% generated by @Ravenwater

Documentation

  • Changelog and session log for 2026-03-30/31 by @Ravenwater
  • Update docs-site README for 100% generated workflow by @Ravenwater
  • Update Docker quick start for current tooling by @Ravenwater
  • Analysis of Lindstrom's bisection coding framework by @Ravenwater

Fixed

  • docker: Multi-stage build and security hardening by @Ravenwater
  • bisection: Sign-extend encode output and fix negation test by @Ravenwater
  • bisection: Address CodeRabbit review items for PR #694 by @Ravenwater
  • tools: Tighten LNSGenerator static_assert to m <= 6 by @Ravenwater
  • tools: Address CodeRabbit review items for bisection generators by @Ravenwater
  • tools: Add missing include and document golden ratio refinement by @Ravenwater
  • ci: Replace exhaustive C API shim tests with focused API coverage by @Ravenwater
  • ci: Use double instead of long double for posit128/256 API tests by @Ravenwater
  • ci: Use fromd/told API consistently for POWER/ARM/RISC-V compat by @Ravenwater
  • ci: Make special-value tests self-checking with NAR propagation by @Ravenwater
  • ci: Add non-zero reinterpret tests for posit64/128/256 by @Ravenwater
  • tools: Address CodeRabbit review for bisection arithmetic tests by @Ravenwater
  • tools: Correct NaN comparison in arithmetic verification by @Ravenwater
  • tools: Include division-by-zero in arithmetic verification by @Ravenwater
  • cmake: Clean up stale install config and orphan files (#709) by @Ravenwater
  • tools: Guard header include for MSVC without /Zc:__cplusplus (#711) by @Ravenwater

Miscellaneous

  • Retrigger CI after PR title fix by @Ravenwater
  • Remove all tracked files from generated content directory by @Ravenwater
  • docs: Clean command removes all generated artifacts by @Ravenwater
  • ci: Bump ccache-action to v1.2.22 and force Node.js 24 by @Ravenwater
  • deps: Bump defu from 6.1.4 to 6.1.6 in /docs-site by @dependabot[bot]
  • deps: Bump vite from 6.4.1 to 6.4.2 in /docs-site by @dependabot[bot]