Release Notes¶
Upcoming release (main)¶
New Features¶
The
bitstrings_to_ci_strings_symmetrize_spinfunction has been added, which allows one to obtain a collection of CI strings (with alpha and beta determinants symmetrized) from a collection of bitstrings.
recover_configurationsnow performs its per-bitstring correction in parallel when the consumer compiles with OpenMP enabled. The library remains header-only and depends only on the C++ standard library; the parallel path is guarded by_OPENMPand the serial behavior is used otherwise.
Under OpenMP, the random number generator is used to seed independent per-work-item streams rather than being drawn from sequentially. A counter-based engine (one with
set_counter, such as the C++26std::philox_engine) is keyed by bitstring index, so the result is identical for any number of threads; any other engine must be seedable and is copied per thread, giving results that are valid but depend on the thread count. A generator that is neither counter-based nor seedable is rejected at compile time under OpenMP but remains usable in a serial build.
Upgrade Notes¶
The numerical output of
recover_configurationsfor a given seeded generator has changed. The returned unique bitstrings are now emitted in first-seen (input) order rather than an unspecified order, and when built with OpenMP the correction draws randomness via per-work-item streams. The returned distribution remains a valid refinement; only the specific bitstrings selected and their ordering may differ from previous releases.
Other Notes¶
When the compiler asserts finite-math-only semantics (i.e., when
__FINITE_MATH_ONLY__is defined to a nonzero value, as it is under-ffinite-math-onlyand-ffast-math), the library now omits its now-redundant checks for NaN and infinite weight values.
The library will emit a compiler warning if
__FAST_MATH__is defined, as the use of-ffast-mathbreaks the IEEE 754 semantics that the library relies upon and is not supported. See Compilation flags for details.