Changelog
Deprecated
- The gates
UandCXare being deprecated in favor ofu3and
cx. (#2380) - The gate
u0is being deprecated in favor of using multipleidgates
to insert delays (#2664) - The decorator
requires_qe_accessis being deprecated in favor of
online_test. - The
as_dictmethod of Qobj is deprecated in favor ofto_dict. (#2556)
Added
- A new pulse instruction,
Delay. ADelayoccupies a pulse channel for a
duration of time, blocking other instructions from being inserted in this time. (#2869) - Ability to check for equality of pulse
ScheduleandInstruction. (#2873) - Added tests for
gate_mapand reference images for testingplot_gate_map - New
CountOpsLongestanalysis pass to retrieve the number of operations
on the longest path of the DAGCircuit. (#2734) - Added
sechandsech_derivpulses inqiskit.pulse.pulse_lib. - The option
vertical_compressionwas added to the text drawer and
to theQuantumCircuit.drawmethod. The option allows to control
how much room the text circuit drawing takes. - The option
idle_wireswas added to the drawers to control
if wires without any operation should be included in the drawing. (#2692) - Introduced a visualization for the Pass Manager. (#2445)
- New pulse schedule method
Schedule.filterto filter by instruction
channel, time, and type. (#2597) - Decomposition of arbitrary isometries (#2600)
- Decomposition of diagonal gates (#2600)
- Decomposition of multiplexed rotation gates (#2600)
- Decomposition of multiplexed single-qubit unitaries (Option: decompose
up to a diagonal gate) (#2600) - ZYZ decomposition for single-qubit unitaries (#2600)
- Gray-Synth and Patel–Markov–Hayes algorithms for synthesis of
CNOT-Phase and CNOT-only (linear) circuits (#2457) - Added n-qubit unitaries to BasicAer simulator basis gates (#2342)
- Added a
random_circuitfunction underqiskit.circuit.random
(#2553) - Added
equivmethod toOperatorandStatevectorclasses for
testing if two objects are equivalent up to global phase (#2910) - Added
output_nameas a transpiler parameter to set the name of
output circuits (#2745) - Simple expressions of Parameters can now be created via the four basic math
operations (+,-,*,/). (#2537) - A
ParmeterVectorclass has been added to ease the construction of circuits
requiring a large number of parameters. (#2379) - dag.draw() method to visualize DAGCircuit objects (#3016)
Changed
- Intervals are now defined by start and stop, rather than begin and end.
- TimeslotCollections now are sorted by default and have more efficient merges.
- Pulse samples are now clipped if their norm is between 1 and 1+epsilon.
Otherwise an error is raised. Schedule.instructionsnow returns with time-ordering.- More informative errors are now raised if
qubit_lo_freqand
meas_lo_freqare not supplied toassemble_schedules. (#2833) pulse.samplersmodule has now been moved topulse.pulse_lib.samplers. (#2881)- The number of memory slots required will now be inferred from the supplied
schedules ifmemory_slotsis not supplied. - All circuit drawers now express most commonly used fractions
of PI (#2808). - Set default repetition time to be the first available.
- Pulse commands may now start with capitalized letters.
- The
pylatexencandpillowrequirements are now optional. These
are only used by thelatexandlatex_sourcecircuit
visualization backends. To continue using them ensure these are
installed. (#2451) - When adding a register to a circuit, an error will now be raised if
a register of the same name is already present. Previously, an error
would only be raised if the same register was added twice. - Qubits and classical bits are not represented as a tuples anymore,
but as instances ofQubitandClbitrespectively. (#2414) - The ApplyLayout pass is incorporated in all preset pass managers to
delineate a virtual circuit from a physical circuit (#2672) - Mapping passes (
CXDirection, Swap passes,CheckMap,CheckCnotDirection)
now operate on a register-less circuit corresponding to
an already embedded physical circuit. (#2672) - Replaces
LegacySwapby faster, more stableStochasticSwappass (#2672) - Uses level 1 by default as transpiler optimization level (#2672)
- Change
Snapshotsignature to matchsimulator.snapshot(#2592) DAGCircuit.width()formerly returned number of qubits, now returns total
number of qubits + classical bits (#2564)- Functions assuming the former semantics of
DAGCircuit.width()now call
DAGCircuit.num_qubits()(#2564) DAGCircuit.num_cbits()renamed toDAGCircuit.num_clbits()(#2564)- Changed definition of
Cu3Gateto to equivalent to the canonical
definition of a controlledU3Gate(#2755) coupling_mapnow required to validate abackend.configuration()(#2836)- The method
QuantumCircuit.count_opsnow returns anOrderedDictinstead of a dict. - If layout information is available in
the circuit, it will be included to the circuit drawing. This can be removed
using the optionwith_layout=Falsein the method
QuantumCircuit.draw. (#2739) - Q-sphere visualization is enhanced and corrected (#2932)
- Shorter CH gate definition involving only 1 CX (#2837)
- Now PassManager.draw() (without any argument) will return an in-memory PIL image.
Removed
- The ability to set the
Timeslots for a pulseInstructionat initialization. - The previously deprecated functions
qiskit.visualization.plot_stateand
qiskit.visualization.iplot_statehave been removed. Instead use
the specific functions for each plot type (#2325). - International documentation of outdated readme etc (#2302)
- Removed deprecated options in
execute,transpile, andassemble.
Removed deprecatedcompiler. - Removed deprecated
qcvvin tools. Removed deprecated converters
qobj_to_circuitsandcircuits_to_qobj(#2301) - The previously deprecated
qiskit._utilmodule has been removed.
Useqiskit.utilinstead. (#2329) - The logging tools in
qiskit.tools.loggingare removed. (#2387) - The
qiskit.qiskiterrormodule has been removed. Please use
qiskit.exceptionsinstead. (#2399) - Removed previously deprecated
DAGCircuitmethods (#2542) - Removed
CompositeGateclass, in favor of adding Instruction
objects directly (#2543) - Removed
ignore_requiresandignore_preservesoptions from
PassManager(#2565).
Fixed
- Fixes a bug where the
CmdDefwas getting built without buffers on channels. - Fixed bug in
Pulsefor multiple parameters being added (#2742) - Fixed bug in
PulseforCmdDefarguments (#2741) - Fixed bug in
OperatorandSuperOpfor initializing from circuit
containing gates without an explicit matrix definition (#2723) - Possible to decompose SU(4) gate into non-CNOT basis with
TwoQubitDecomposer - Fixes a bug that removed
idgates from circuit. id gates are
like awaitcommand and will never be removed (#2663) - Fixed bug in
CommutationAnalysispass affecting conditional gates (#2669) - Fixed bug in measure sampling for
BasicAerQasm simulator if a qubit
was measured into more than one classical bit (#2735) - Correctly serialize complex numbers with a nonzero real part
- Fixed bug in measure sampling for
BasicAerQasm simulator if only a
subset of qubits are measured (#2790) - Parameter objects can be serialized and communicated between
sub-processes (#2429) - Parameterized circuits no longer need to be transpiled individually (#2864)