Skip to content

Stabilise vibrational regression calculations#333

Draft
harryswift01 wants to merge 10 commits intomainfrom
313-numerical-stability
Draft

Stabilise vibrational regression calculations#333
harryswift01 wants to merge 10 commits intomainfrom
313-numerical-stability

Conversation

@harryswift01
Copy link
Copy Markdown
Member

Summary

This PR improves numerical stability and determinism in the vibrational entropy regression path.

The changes focus on using the appropriate symmetric eigensolver for covariance matrices and ensuring group traversal/indexing is deterministic. This targets intermittent CI-only regression failures where vibrational entropy components differed between otherwise equivalent runs.

Changes

Stabilise covariance eigendecomposition

  • Replace the general eigenvalue solver with the symmetric/Hermitian eigensolver for covariance matrices.
  • Explicitly symmetrise covariance matrices before eigenvalue calculation.
  • Avoid unnecessary complex eigenvalue paths for real symmetric covariance data.

Enforce deterministic group handling

  • Build group-to-index mappings using sorted group IDs.
  • Iterate over water groups in sorted order.
  • Iterate over neighbour/symmetry groups in sorted order.

Impact

  • Improves reproducibility of vibrational entropy calculations across CI and local environments.
  • Reduces sensitivity to platform-specific LAPACK/BLAS behaviour.
  • Prevents group-index mappings from depending on dictionary insertion order.
  • Does not change the public API or regression workflow structure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant