QES is organized to support scientific workflows where reproducibility and numerical correctness are as important as speed.
Module-level APIs should communicate:
- expected input ranks and shapes,
- expected dtypes,
- what is returned and in which structural form.
Core user APIs should remain stable regardless of execution backend. Backend-specific optimizations (NumPy/JAX) should preserve mathematical semantics.
Scientific routines should state known stability sensitivities such as:
- conditioning of linear solves,
- cancellation around nearly degenerate spectra,
- precision sensitivity (
float32vsfloat64, complex precision).
Stochastic workflows should expose seed paths and deterministic modes where practical. When backend behavior differs (for example, due to parallel reductions), docs should call out expected variance.
ED and NQS workflows should be composable through clear state/operator conventions, allowing users to switch methods without rewriting model definitions.