0.14.0 - 2025-12-09¶
Removed¶
Removed the
VirtualRegister.to_json_dictand thevirtual_register_from_jsonfunction. (#223)Removed support for Python 3.9 following its end-of-life date. (#244)
The modules
.transpiler.noise_injection_strategies,.transpiler.twirling_strategies, and their contents have been removed. These files contained enum classes for specifying arguments to some of the transpiler passes; these arguments must now be specified as strings. (#257)Temporarily removed support for
IfElseOpinstructions inside of boxes—we are in the middle of refactoring this to make it more general, but we cannot wait for it to be complete to make a new release. Please refrain from upgrading if this breaks your workflow, and apologies.
Deprecated¶
Deprecated boolean values for the
remove_barriersargument ofsamplomatic.transpiler.generate_boxing_pass_manager. Now, the four options are'immediately','finally,,'after_stratification', and'never', whereTrueandFalseare equivalent to the first and last string values, respectively. The default value is'after_stratification'which is a change in behavior, but should be a better choice in most cases. (#238)
Added¶
Changed¶
Increased the default SSV from
1to2. (#224)Changed the scope of the transpiler passes
GroupGatesIntoBoxes,GroupMeasIntoBoxes, andAddTerminalRightDressedBoxes. Formerly, all three of these passes were responsible for discovering single-qubit gates in the input circuit and moving them into newly created boxes. Now, to simplify their implementations and make the pass manager more modular, these three passes no longer have this responsibility, which has instead been delegated to the new passAbsorbSingleQubitGates. In particular,GroupGatesIntoBoxesandGroupMeasIntoBoxesare now responsible only for inserting new left-dressed boxes populated only with entangling and measurement instructions. Similarly,AddTerminalRightDressedBoxesinserts empty right-dressed boxes boxes. Thegenerate_boxing_pass_managerfunction has been updated to includeAbsorbSingleQubitGates. (#237)Changed the behaviour of the pass manager returned by
samplomatic.transpiler.generate_boxing_pass_managerunder default settings with respect to how it treats barriers. Before, it would discard all barriers before attempting to put entangling gates into boxes. Now, it discards barriers after entangling gates are put into boxes, but before single-qubit gates are moved into adjacent boxes. This means that barriers can effectively be used as hints to choose how to stratify entangling gates without constraining single-qubit gates to end up in their own boxes. This also has better interaction with the Qiskit transpiler in the case that the original circuit is programmed in terms of a different entangling gate than the target. See the new possible values of the argumentremove_barriersfor details. (#238)The
DataSerializer.serializenow requires the SSV as an argument. (#254)Arguments to
samplomatic.transpiler.generate_boxing_pass_managerare now required to be keyword arguments. Moreover, all string-valued selection arguments (e.g.twirling_strategy) are required to be specified as strings because the enum classes have been removed. (#257)Changed the default
twirling_strategyofsamplomatic.transpiler.generate_boxing_pass_managerfrom"active"to"active_circit". This was done because the latter is a safer default. Typically, when twirling, one wants to eliminate all coherent error on active qubits. The"active"strategy is only able to do this under certain assumptions about noise processes. (#265)