Release Notes

Upcoming release (main)

New Features

  • The bitstrings_to_ci_strings_symmetrize_spin function 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_configurations now 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 _OPENMP and 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++26 std::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_configurations for 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-only and -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-math breaks the IEEE 754 semantics that the library relies upon and is not supported. See Compilation flags for details.