-
Notifications
You must be signed in to change notification settings - Fork 0
Labels
enhancement ✨New feature or requestNew feature or requestperformance ⚡Performance improvements and code optimizationsPerformance improvements and code optimizations
Milestone
Description
Description:
Focus on internal, result-identical optimizations to make the QEq core faster without changing outputs or user-facing behavior. We will eliminate redundant work in matrix assembly, reuse allocations, and keep parallelism simple via Rayon/faer defaults. No approximations or configurable “fast” modes in this issue—strict numerical equivalence is required.
Tasks:
-
Matrix Build Refactor (Lossless)
- Precompute geometry-dependent terms (distances/J_ij) and build a base matrix once; per-iteration only patch hydrogen diagonals.
- Reuse matrix/vector buffers (workspace) across iterations to avoid repeated allocations.
-
Parallel-Friendly Fill (Deterministic)
- Use Rayon global pool for the O(N²) fill in a race-free, deterministic manner; provide a clean serial fallback if Rayon is disabled.
- Keep faer defaults; note how to disable global parallelism for users who need it (docs comment only, no behavior change).
-
Validation
- Confirm strict equality (within ULP) vs current outputs on regression cases.
- Add/adjust tests for symmetry, total charge conservation, and unchanged results in strict mode.
- Add a lightweight benchmark (criterion or timing harness) for N≈10/100/500 to document speedups.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancement ✨New feature or requestNew feature or requestperformance ⚡Performance improvements and code optimizationsPerformance improvements and code optimizations
Type
Projects
Status
Done