Repository navigation
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.