You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: MSVC constant evaluator rejects the optional-returning rho recursion
All three failing MSVC 14.5 CI legs die identically in
`prime_factorization::first_base` with a bogus "failure was caused by a read
of an uninitialized symbol: std::_Optional_destruct_base<uint64_t>::_Has_value"
the moment `find_first_factor` reaches the Pollard's rho path (first hit:
the codata2014 alpha particle-proton mass ratio mantissa). GCC and Clang
evaluate the same code fine.
`smallest_prime_factor_of_hard_composite` and `smallest_prime_in` now return
a plain `std::uint64_t` with `0` (never a valid prime factor) as the
every-parameterization-failed sentinel instead of `std::optional`. Verified
on gcc-15 (full build, all tests) and covered by the existing
`find_first_factor` static assertions, which exercise the rho path directly.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments