Repository navigation
Releases: PsiQ/psiqdk
Release list
2.5.0
Released on: 2026-09-13
Package updates
psiqdk-workbench: 4.55.0 → 4.55.3psiqdk-algorithms: 1.24.3 → 1.24.4
Bug Fixes
psiqdk-workbench
- Special-angle detection for rotation gates is now robust to floating-point error, and uses the rotation's own error parameter as the comparison tolerance rather than exact equality. Previously, a rotation that was mathematically a special angle but numerically slightly off — for example a controlled 90° Ry decomposing into 45.00000001° and -45.00000001° uncontrolled rotations — would fail the check and be decomposed unnecessarily. This affects Ross-Selinger synthesis output as well as T-gate and active-volume counting, so affected circuits previously reported inflated active volume and produced unnecessarily long T-gate sequences.
- Numeric QRE:
local_ancillaeare now reflected in the qubit highwater mark, so numeric resource estimates no longer under-report peak qubit usage. Invalid values now raise a clearer error rather than failing obscurely inside the parameter cast. QPU.reset: fixednum_qubitsbeing left as a NumPy scalar rather than a Pythonint, which could propagate NumPy types into downstream code.
Documentation
psiqdk-workbench
- Corrected discrepancies between the parameters listed in docstrings and the actual function signatures, across the Workbench codebase.
- The
QPUandQubitsreference pages now list inherited members.
psiqdk-algorithms
- Fixed assorted typos and broken links.
2.4.0
Released on: 2026-09-01
Package updates
psiqdk-workbench: 4.52.5 → 4.55.0workbench-sim-native: 0.2.3 → 0.3.0
Features
psiqdk-workbench
psiqdk.workbench.integrations.resource_analyzer: addeddraw(qc, kind=..., title=...), which renders a Resource Analyzer graph as an interactive widget in Jupyter notebooks.kindaccepts"call_graph"(the default) or"flame_graph". (N.B. requirespsiqdk-visualizeto be installed.)RossSelingerSynthesisnow supports multi-qubit target registers for controlled rotations. Previously this was handled only by the single-control compilation filter, and calling the qubrick directly with a multi-qubit target raised an assertion; the qubrick and the filter now agree.Qubricknow supportsdagger=Truefor qubricks that leave qubits allocated at the end ofcompute(). This was previously forbidden.- Added a sparse state-vector simulation backend,
>>sparse-sv-sim>>, for use in a QPU filter stack alongside>>witness>>and>>buffer>>. - Added preliminary, experimental simulation backends for Qiskit, PennyLane and QBlaze, exposed as the
QISKIT_STATE_VEC,PENNYLANE_STATE_VECandQBLAZE_SPARSE_STATE_VECpresets inpsiqdk.workbench.filter_presets. These are native simulation filters rather than OpenQASM round-trips.
workbench-sim-native
- Added the sparse state-vector simulator that backs
>>sparse-sv-sim>>.
Behavior Changes
psiqdk-workbench
RossSelingerSynthesis: for controlled rotations,error_paramis now the error budget for each constituent single-qubit rotation, rather than a total budget divided across them. Previously the value was split (error_param / 2for Rz,error_param / 3for phase rotations). For an unchangederror_param, controlled rotations are now synthesized at looser per-gate precision, which lowers their T counts and active volume; pass a correspondingly smallererror_paramto retain the previous overall accuracy.
Deprecations
psiqdk-workbench
psiqdk.workbench.qre.get_baseline_costs_from_witnessandpsiqdk.workbench.qre.get_active_volume_from_witnessnow raise aFutureWarningand will be removed in a future release. Useresource_estimator(qc).resources(expanded=True)andresource_estimator(qc).resources()["active_volume"]instead.
Bug Fixes
psiqdk-workbench
RossSelingerSynthesis: fixed incorrect synthesis of open-controlled (~ctrl) phase rotations.- Circuit Designer export: circuits containing
nops or unnamedQubitsregisters (those created viaQubits(N, qpu=qc)with no name) no longer fail to export.nops are now drawn as separators, and unnamed registers are correctly distinguished from registers the user explicitly named with an empty string. - Lowered the
numpyfloor for Python versions below 3.14. The minimum had been raised tonumpy>=2.4.6solely to gain Python 3.14 support, which unnecessarily prevented oldernumpypins on earlier Python versions.
Documentation
psiqdk-workbench
- Added missing docstrings across the API reference.
2.3.0
Released on: 2026-07-29
Package updates
psiqdk-workbench: 4.51.0 → 4.52.5psiqdk-algorithms: 1.23.1 → 1.24.3
Refactor
Completed internal code migration from psiq_workbench to psiqdk-workbench and workbench_algorithms to psiqdk-algorithms to avoid the previous dual-package releases. Both psiqdk-workbench and psiqdk-algorithm are now “real” python packages rather than thin API wrappers around the legacy packages.
Bug Fixes
psiqdk-workbench
QPU.draw: increased minimum width of drawings, improving experience for short circuitsQubrick.get_input_qreg: fixed bug in uncompute trying to access released qubits when parent calls child (caused by register deallocation before custom uncompute).psiqdk.workbench.interoperability: added missing tag definitionscreates_junk,experimental, andnot_coherently_invertiblepsiqdk.workbench.compilation.filters.elementary_filters: added missing importsByOperationTypeFilter,check,analyze, andprocesspsiqdk.workbench.ops: added missing importsget_qubits_used_mask,OperationQPU.get_instructions: added in commented-out operations for qubrick entry/exit and qubit allocation/deallocation when using theasmandasm-stackformat.
2.2.0
Released on: 2026-07-14
Package updates
psiqdk-workbench: 4.48.4 → 4.51.0
Features
psiqdk-workbench
-
Added new API surfaces (
psiqdk.workbench.XXX) for previously-hidden features, including:check_ops: utilities for checking properties of operations, e.g.is_pauli,is_self_inverse, etc.filters: now directly exposes composite filtersBaselineArchitectureFilterandCompositeCompilationFilter.interoperability:approximateinteroperability tag addedtest_helpers: now exposes various helpers for test suites, such asneeds_bartiq,needs_qiskit, etc.qre: exposesrestructure_op,ToleranceSpec,compare_symbolic_to_numeric, andcompare_symbolic_total_cost_with_numeric
Bug Fixes
psiqdk-workbench
- Fixed badly-formatted display of circuit diagrams with Unicode on GitHub
- Fixed deprecated qubit slicing from Qiskit and OpenQASM import/export filters
- Remove double-escaping in circuit diagram labels
Documentation
psiqdk-workbench
- Added Representing Integers as Bit Strings deep dive, covering the topic of little- vs big-endianness
2.1.0
Released on: 2026-06-23
Package updates
psiqdk-workbench: 4.45.0 → 4.48.4psiqdk-algorithms: 1.22.3 → 1.23.1workbench-sim-native: 0.2.1 → 0.2.3
Features
psiqdk-workbench
- Extends QPU.set_random support to the bit simulator backend to enable randomness in classical bit simulations
- Adds the track_qubricks optional argument to OpFilter to enable the ability to track qubrick hierarchies within filters.
- Adds the angle_synthesis_method keyword argument to NumericEstimator.resources to allow specification of an angle synthesis method when performing numerical QREs of active volume
psiqdk-algorithms
-
Unifies phase gradient qubricks and supports QFT via Phase Gradient Addition
- Adds DyadicAngle, an explicit angle type for validating catalyst-backed phase-gradient base angles.
- Adds PhaseGradientViaPhaseCatalystState, which implements phase gradients using rotation catalyst states and a constructor-owned adder.
- Defaults catalyst-based phase gradients to PhaseGradientAdder, while allowing NaiveAdd and GidneyAdd via PhaseGradientViaPhaseCatalystState(adder=...).
- Adds QFTviaPhaseGradient, enabling QFT and inverse QFT through either NaivePhaseGradient or catalyst/PGA-backed phase gradients.
Bug Fixes
psiqdk-workbench
- Errors now thrown when attempting to rebind filters to new QIan NanezIPU instances
- Update QRE metrics to reset to zero when QPU.reset instruction is applied
- Added runtime type checking for Qubrick.alloc_temp_qreg params to catch common errors
- Deal with case when Qubrick has deleted its allocations during compute(), re-allocated them in its dagger, and then a custom uncompute() is used.
psiqdk-algorithms
- Remove extra initialization elbows from USP variants
- Fix phase gradient adder control bug when ctrl=0.
- Make scipy a required dependency
Documentation
psiqdk-workbench
- Added documentation for the >>clifford-sim>>
2.0.0
2.0.0
Welcome PsiQuantum Development Kit (PsiQDK), PsiQuantum's Open Access SDK for programming Fault Tolerant Quantum Computers. The PsiQDK lets you:
- Write programs using a compact and composable Python API
- Simulate them using an optimized C++ core
- Compile and optimize high-level operations to low-level native gate-sets
- Estimate resources without manual bookkeeping
- Debug and validate complex algorithms efficiently
- Interface with Construct for advanced visualisation of circuits and their resource cost breakdowns
Links
To find out more about the QDK, visit the following links
- Construct documentation - https://construct.psiquantum.com/docs
- Tutorials:
- Workbench - gates, qubit management, simulation, resource estimation, and the Qubricks framework.
- Algorithms tutorials - state preparation, amplitude amplification, phase estimation, arithmetic, QROM, and more.
- Visualization examples - interactive circuit and QRE viewers for Jupyter and VS Code.
- End-to-end examples - full algorithm-design → implementation → resource-estimation workflows (Grover SAT solver, recursive state preparation).
- Workbench Quantum Katas - a hands-on collection of tutorials and programming exercises that teach quantum computing and quantum programming, from basic concepts to fault-tolerant applications such as quantum chemistry.
- Quantum Programming in Depth - side-by-side code samples in three quantum development toolkits: Workbench, Q#, and Qiskit.
Components
psiqdk.workbench: 4.45.0psiqdk.algorithms: 1.22.3psiqdk.visualize: 0.97.2bartiq: 0.17.0qref: 0.11.0workbench-sim-native: 0.2.1
Support
PsiQuantum officially supports the current Stable release of PsiQDK. Older releases are best-effort only.
Contributing
We welcome bug reports, feature requests, and discussion. Please file a new issue on this repository.
License
See LICENSE.