Skip to content

Add Suzuki-Trotter circuit primitive#603

Draft
wsttiger wants to merge 1 commit into
NVIDIA:mainfrom
wsttiger:suzuki_trotter_dev
Draft

Add Suzuki-Trotter circuit primitive#603
wsttiger wants to merge 1 commit into
NVIDIA:mainfrom
wsttiger:suzuki_trotter_dev

Conversation

@wsttiger

@wsttiger wsttiger commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add a Suzuki-Trotter product-formula circuit primitive to the solvers library.

  • Add cudaq::solvers::make_trotter_terms(...) for host-side spin_op decomposition into coefficients, Pauli words, identity coefficient, and qubit count.
  • Add cudaq::solvers::apply_trotter(...) as a QPU-facing primitive supporting first-, second-, and fourth-order product formulas.
  • Expose term extraction and the kernel primitive through Python bindings, including Python-side SpinOperator / SpinOperatorTerm handling.
  • Document identity-term/global-phase behavior for controlled and interference-sensitive algorithms.
  • Add focused C++ and Python coverage, including exact-diagonalization validation and a 4-qubit Hamiltonian with more than eight Pauli terms.

Validation

  • ./unittests/test_trotter --gtest_color=no -> 7 passed
  • pytest -q libs/solvers/python/tests/test_trotter.py -> 8 passed
  • git diff --check -> clean

@wsttiger wsttiger force-pushed the suzuki_trotter_dev branch 2 times, most recently from aa9e50f to 225a9c3 Compare June 10, 2026 21:58
Introduce Hamiltonian-simulation support for Suzuki-Trotter product formulas based on flattened Pauli terms. Add make_trotter_terms() for host-side spin_op decomposition and apply_trotter() as the QPU-facing primitive for first-, second-, and fourth-order formulas.

Expose the primitive through Python bindings, including Python-side SpinOperator term extraction. Document identity-term/global-phase handling for interference-sensitive algorithms.

Add C++ and Python tests covering term extraction, invalid inputs, identity handling, multi-order kernel validation against product-formula and exact-diagonalization references, and a 4-qubit Hamiltonian with more than eight Pauli terms.

Signed-off-by: Scott Thornton <wsttiger@gmail.com>
@wsttiger wsttiger force-pushed the suzuki_trotter_dev branch from 225a9c3 to 5436a5b Compare June 10, 2026 22:42
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