Skip to content

Add coefficient handler methods to python - #146

Merged
david-pl merged 4 commits into
mainfrom
david/tableau-coefficients
Jun 23, 2026
Merged

Add coefficient handler methods to python#146
david-pl merged 4 commits into
mainfrom
david/tableau-coefficients

Conversation

@david-pl

Copy link
Copy Markdown
Collaborator

Adds two convenience methods to get the coefficients and their length to the python wrapper for GeneralizedTableau. Useful for debugging and monitoring growth of the problem.

Copilot AI review requested due to automatic review settings June 23, 2026 11:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Python-level accessors for inspecting the generalized-tableau sparse coefficient vector (for debugging/monitoring), backed by new PyO3 bindings and covered by dedicated Python tests.

Changes:

  • Exposes GeneralizedTableau.coefficients() and GeneralizedTableau.num_coefficients() in the Python wrapper.
  • Implements the corresponding native methods in ppvm-python-native (including lossless index conversion for wide bnum index types).
  • Adds a new Python test module validating snapshot semantics, normalization, and wide-index behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
ppvm-python/src/ppvm/generalized_tableau.py Adds the two convenience methods and their docstrings.
ppvm-python/src/ppvm/_core.pyi Updates the native interface type stubs to include the new methods.
crates/ppvm-python-native/src/interface_tableau.rs Adds PyO3 methods to export coefficients as a Python dict and to return the coefficient count.
ppvm-python/test/generalized_tableau/test_coefficients.py Adds unit tests for the new API (fresh state, branching behavior, normalization, snapshot semantics, wide index types).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +203 to +205
This is the number of entries in the dict returned by
:meth:`coefficients`, computed without materializing it.

Comment on lines +62 to +65
# Past 128 qubits the Rust index is a bnum type; the keys must still
# round-trip as exact Python ints and the vector stay normalized.
tab = GeneralizedTableau(200)
tab.h(0)
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-23 12:15 UTC

@david-pl
david-pl merged commit 53ea773 into main Jun 23, 2026
13 checks passed
@david-pl
david-pl deleted the david/tableau-coefficients branch June 23, 2026 12:15
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.

2 participants