qiskit 1.3.0b1__cp39-abi3-win32.whl → 1.3.0rc2__cp39-abi3-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qiskit/VERSION.txt +1 -1
- qiskit/__init__.py +20 -1
- qiskit/_accelerate.pyd +0 -0
- qiskit/assembler/assemble_schedules.py +2 -0
- qiskit/circuit/__init__.py +44 -1
- qiskit/circuit/_standard_gates_commutations.py +585 -0
- qiskit/circuit/barrier.py +2 -0
- qiskit/circuit/controlflow/builder.py +3 -3
- qiskit/circuit/controlflow/if_else.py +13 -5
- qiskit/circuit/controlflow/while_loop.py +10 -2
- qiskit/circuit/delay.py +20 -3
- qiskit/circuit/equivalence.py +13 -214
- qiskit/circuit/gate.py +3 -1
- qiskit/circuit/instruction.py +32 -11
- qiskit/circuit/instructionset.py +2 -0
- qiskit/circuit/library/__init__.py +110 -14
- qiskit/circuit/library/arithmetic/__init__.py +9 -2
- qiskit/circuit/library/arithmetic/adders/__init__.py +1 -0
- qiskit/circuit/library/arithmetic/adders/adder.py +154 -2
- qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +20 -56
- qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +14 -1
- qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +21 -91
- qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
- qiskit/circuit/library/arithmetic/multipliers/__init__.py +1 -0
- qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py +8 -1
- qiskit/circuit/library/arithmetic/multipliers/multiplier.py +94 -3
- qiskit/circuit/library/arithmetic/multipliers/rg_qft_multiplier.py +8 -1
- qiskit/circuit/library/arithmetic/weighted_adder.py +1 -1
- qiskit/circuit/library/basis_change/qft.py +20 -38
- qiskit/circuit/library/blueprintcircuit.py +64 -0
- qiskit/circuit/library/boolean_logic/__init__.py +4 -4
- qiskit/circuit/library/boolean_logic/inner_product.py +81 -4
- qiskit/circuit/library/boolean_logic/quantum_and.py +107 -4
- qiskit/circuit/library/boolean_logic/quantum_or.py +107 -3
- qiskit/circuit/library/boolean_logic/quantum_xor.py +97 -3
- qiskit/circuit/library/data_preparation/__init__.py +6 -3
- qiskit/circuit/library/data_preparation/{z_feature_map.py → _z_feature_map.py} +45 -34
- qiskit/circuit/library/data_preparation/_zz_feature_map.py +150 -0
- qiskit/circuit/library/data_preparation/pauli_feature_map.py +342 -29
- qiskit/circuit/library/fourier_checking.py +72 -11
- qiskit/circuit/library/generalized_gates/__init__.py +1 -1
- qiskit/circuit/library/generalized_gates/diagonal.py +45 -51
- qiskit/circuit/library/generalized_gates/gms.py +67 -14
- qiskit/circuit/library/generalized_gates/gr.py +4 -4
- qiskit/circuit/library/generalized_gates/isometry.py +2 -2
- qiskit/circuit/library/generalized_gates/linear_function.py +12 -6
- qiskit/circuit/library/generalized_gates/mcmt.py +167 -107
- qiskit/circuit/library/generalized_gates/permutation.py +8 -6
- qiskit/circuit/library/generalized_gates/rv.py +8 -9
- qiskit/circuit/library/graph_state.py +93 -10
- qiskit/circuit/library/grover_operator.py +270 -2
- qiskit/circuit/library/hidden_linear_function.py +83 -20
- qiskit/circuit/library/iqp.py +99 -20
- qiskit/circuit/library/n_local/__init__.py +19 -7
- qiskit/circuit/library/n_local/efficient_su2.py +118 -5
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +259 -0
- qiskit/circuit/library/n_local/excitation_preserving.py +130 -6
- qiskit/circuit/library/n_local/n_local.py +406 -5
- qiskit/circuit/library/n_local/pauli_two_design.py +106 -4
- qiskit/circuit/library/n_local/qaoa_ansatz.py +80 -1
- qiskit/circuit/library/n_local/real_amplitudes.py +127 -7
- qiskit/circuit/library/n_local/two_local.py +14 -7
- qiskit/circuit/library/overlap.py +91 -26
- qiskit/circuit/library/pauli_evolution.py +17 -15
- qiskit/circuit/library/phase_estimation.py +80 -4
- qiskit/circuit/library/quantum_volume.py +72 -20
- qiskit/circuit/library/standard_gates/__init__.py +20 -1
- qiskit/circuit/library/standard_gates/dcx.py +2 -1
- qiskit/circuit/library/standard_gates/ecr.py +2 -2
- qiskit/circuit/library/standard_gates/h.py +4 -3
- qiskit/circuit/library/standard_gates/i.py +2 -1
- qiskit/circuit/library/standard_gates/iswap.py +2 -2
- qiskit/circuit/library/standard_gates/p.py +20 -12
- qiskit/circuit/library/standard_gates/r.py +1 -1
- qiskit/circuit/library/standard_gates/rx.py +4 -3
- qiskit/circuit/library/standard_gates/rxx.py +2 -2
- qiskit/circuit/library/standard_gates/ry.py +4 -3
- qiskit/circuit/library/standard_gates/ryy.py +2 -2
- qiskit/circuit/library/standard_gates/rz.py +13 -12
- qiskit/circuit/library/standard_gates/rzx.py +6 -6
- qiskit/circuit/library/standard_gates/rzz.py +1 -1
- qiskit/circuit/library/standard_gates/s.py +4 -4
- qiskit/circuit/library/standard_gates/swap.py +3 -3
- qiskit/circuit/library/standard_gates/sx.py +4 -3
- qiskit/circuit/library/standard_gates/t.py +2 -2
- qiskit/circuit/library/standard_gates/u.py +11 -3
- qiskit/circuit/library/standard_gates/u1.py +65 -15
- qiskit/circuit/library/standard_gates/u2.py +4 -1
- qiskit/circuit/library/standard_gates/u3.py +31 -3
- qiskit/circuit/library/standard_gates/x.py +7 -5
- qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -2
- qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -2
- qiskit/circuit/library/standard_gates/y.py +4 -3
- qiskit/circuit/library/standard_gates/z.py +3 -3
- qiskit/circuit/library/templates/clifford/clifford_2_1.py +9 -8
- qiskit/circuit/library/templates/clifford/clifford_2_2.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_2_3.py +9 -7
- qiskit/circuit/library/templates/clifford/clifford_2_4.py +9 -8
- qiskit/circuit/library/templates/clifford/clifford_3_1.py +9 -8
- qiskit/circuit/library/templates/clifford/clifford_4_1.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_4_2.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_4_3.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_4_4.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_5_1.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_6_1.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_6_2.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_6_3.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_6_4.py +9 -8
- qiskit/circuit/library/templates/clifford/clifford_6_5.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_8_1.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_8_2.py +10 -9
- qiskit/circuit/library/templates/clifford/clifford_8_3.py +10 -9
- qiskit/circuit/library/templates/nct/template_nct_2a_1.py +9 -7
- qiskit/circuit/library/templates/nct/template_nct_2a_2.py +10 -8
- qiskit/circuit/library/templates/nct/template_nct_2a_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_4a_1.py +16 -14
- qiskit/circuit/library/templates/nct/template_nct_4a_2.py +14 -12
- qiskit/circuit/library/templates/nct/template_nct_4a_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_4b_1.py +14 -12
- qiskit/circuit/library/templates/nct/template_nct_4b_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_5a_1.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_5a_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_5a_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_5a_4.py +11 -9
- qiskit/circuit/library/templates/nct/template_nct_6a_1.py +11 -9
- qiskit/circuit/library/templates/nct/template_nct_6a_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_6a_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_6a_4.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_6b_1.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_6b_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_6c_1.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_7a_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_7b_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_7c_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_7d_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_7e_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_9a_1.py +13 -11
- qiskit/circuit/library/templates/nct/template_nct_9c_1.py +11 -9
- qiskit/circuit/library/templates/nct/template_nct_9c_10.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_11.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_12.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_4.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_5.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_6.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_7.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_8.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9c_9.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_1.py +11 -9
- qiskit/circuit/library/templates/nct/template_nct_9d_10.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_2.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_3.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_4.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_5.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_6.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_7.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_8.py +12 -10
- qiskit/circuit/library/templates/nct/template_nct_9d_9.py +12 -10
- qiskit/circuit/library/templates/rzx/rzx_cy.py +11 -10
- qiskit/circuit/library/templates/rzx/rzx_xz.py +16 -15
- qiskit/circuit/library/templates/rzx/rzx_yz.py +12 -10
- qiskit/circuit/library/templates/rzx/rzx_zz1.py +22 -20
- qiskit/circuit/library/templates/rzx/rzx_zz2.py +16 -15
- qiskit/circuit/library/templates/rzx/rzx_zz3.py +17 -15
- qiskit/circuit/parameter.py +4 -0
- qiskit/circuit/parameterexpression.py +167 -34
- qiskit/circuit/quantumcircuit.py +162 -126
- qiskit/circuit/singleton.py +2 -0
- qiskit/circuit/store.py +2 -0
- qiskit/circuit/twirling.py +145 -0
- qiskit/compiler/assembler.py +17 -4
- qiskit/compiler/scheduler.py +2 -0
- qiskit/compiler/sequencer.py +2 -0
- qiskit/compiler/transpiler.py +81 -26
- qiskit/converters/circuit_to_dag.py +2 -2
- qiskit/converters/circuit_to_dagdependency.py +1 -1
- qiskit/converters/circuit_to_dagdependency_v2.py +1 -1
- qiskit/converters/circuit_to_instruction.py +1 -1
- qiskit/converters/dag_to_circuit.py +7 -5
- qiskit/converters/dag_to_dagdependency.py +1 -1
- qiskit/converters/dag_to_dagdependency_v2.py +1 -1
- qiskit/converters/dagdependency_to_circuit.py +5 -1
- qiskit/converters/dagdependency_to_dag.py +6 -1
- qiskit/dagcircuit/collect_blocks.py +3 -3
- qiskit/dagcircuit/dagdependency.py +18 -5
- qiskit/dagcircuit/dagdependency_v2.py +1 -1
- qiskit/dagcircuit/dagnode.py +2 -2
- qiskit/passmanager/__init__.py +2 -2
- qiskit/primitives/backend_estimator.py +5 -2
- qiskit/primitives/backend_sampler_v2.py +61 -18
- qiskit/primitives/base/base_estimator.py +2 -2
- qiskit/primitives/containers/data_bin.py +9 -1
- qiskit/primitives/statevector_sampler.py +1 -1
- qiskit/primitives/utils.py +1 -1
- qiskit/providers/__init__.py +3 -3
- qiskit/providers/backend.py +12 -1
- qiskit/providers/backend_compat.py +23 -3
- qiskit/providers/basic_provider/basic_simulator.py +12 -2
- qiskit/providers/fake_provider/fake_pulse_backend.py +6 -1
- qiskit/providers/fake_provider/generic_backend_v2.py +46 -30
- qiskit/providers/models/pulsedefaults.py +2 -0
- qiskit/pulse/builder.py +59 -18
- qiskit/pulse/calibration_entries.py +4 -1
- qiskit/pulse/channels.py +2 -0
- qiskit/pulse/exceptions.py +2 -0
- qiskit/pulse/instruction_schedule_map.py +21 -6
- qiskit/pulse/instructions/acquire.py +2 -0
- qiskit/pulse/instructions/delay.py +2 -0
- qiskit/pulse/instructions/directives.py +8 -0
- qiskit/pulse/instructions/frequency.py +3 -0
- qiskit/pulse/instructions/instruction.py +2 -0
- qiskit/pulse/instructions/phase.py +3 -0
- qiskit/pulse/instructions/play.py +2 -0
- qiskit/pulse/instructions/reference.py +2 -0
- qiskit/pulse/instructions/snapshot.py +2 -0
- qiskit/pulse/library/pulse.py +2 -0
- qiskit/pulse/library/symbolic_pulses.py +28 -0
- qiskit/pulse/library/waveform.py +2 -0
- qiskit/pulse/macros.py +1 -1
- qiskit/pulse/schedule.py +12 -13
- qiskit/pulse/transforms/alignments.py +5 -3
- qiskit/pulse/transforms/dag.py +7 -0
- qiskit/qasm2/export.py +5 -3
- qiskit/qasm2/parse.py +46 -2
- qiskit/qasm3/__init__.py +1 -0
- qiskit/qasm3/ast.py +123 -15
- qiskit/qasm3/exporter.py +103 -77
- qiskit/qobj/converters/pulse_instruction.py +6 -4
- qiskit/qpy/__init__.py +181 -0
- qiskit/qpy/binary_io/circuits.py +20 -5
- qiskit/qpy/binary_io/schedules.py +3 -4
- qiskit/qpy/binary_io/value.py +310 -13
- qiskit/qpy/common.py +46 -2
- qiskit/qpy/formats.py +7 -0
- qiskit/qpy/interface.py +40 -4
- qiskit/quantum_info/__init__.py +4 -0
- qiskit/quantum_info/operators/channel/transformations.py +28 -21
- qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
- qiskit/quantum_info/operators/operator.py +54 -8
- qiskit/quantum_info/operators/symplectic/base_pauli.py +11 -19
- qiskit/quantum_info/operators/symplectic/clifford.py +1 -1
- qiskit/quantum_info/operators/symplectic/clifford_circuits.py +1 -1
- qiskit/quantum_info/operators/symplectic/pauli.py +2 -0
- qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +23 -2
- qiskit/quantum_info/states/densitymatrix.py +5 -5
- qiskit/quantum_info/states/stabilizerstate.py +1 -1
- qiskit/quantum_info/states/statevector.py +6 -6
- qiskit/result/mitigation/base_readout_mitigator.py +1 -1
- qiskit/result/mitigation/correlated_readout_mitigator.py +9 -1
- qiskit/result/mitigation/local_readout_mitigator.py +9 -1
- qiskit/result/mitigation/utils.py +57 -0
- qiskit/scheduler/config.py +2 -0
- qiskit/scheduler/methods/basic.py +3 -0
- qiskit/scheduler/schedule_circuit.py +2 -0
- qiskit/scheduler/sequence.py +2 -0
- qiskit/synthesis/__init__.py +25 -0
- qiskit/synthesis/arithmetic/__init__.py +16 -0
- qiskit/synthesis/arithmetic/adders/__init__.py +17 -0
- qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +154 -0
- qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +103 -0
- qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +161 -0
- qiskit/synthesis/arithmetic/multipliers/__init__.py +16 -0
- qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +102 -0
- qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +99 -0
- qiskit/synthesis/clifford/clifford_decompose_bm.py +1 -2
- qiskit/synthesis/clifford/clifford_decompose_greedy.py +3 -2
- qiskit/synthesis/clifford/clifford_decompose_layers.py +2 -1
- qiskit/synthesis/evolution/__init__.py +1 -0
- qiskit/synthesis/evolution/lie_trotter.py +16 -42
- qiskit/synthesis/evolution/pauli_network.py +80 -0
- qiskit/synthesis/evolution/product_formula.py +165 -238
- qiskit/synthesis/evolution/qdrift.py +36 -29
- qiskit/synthesis/evolution/suzuki_trotter.py +87 -27
- qiskit/synthesis/multi_controlled/__init__.py +1 -0
- qiskit/synthesis/multi_controlled/mcmt_vchain.py +52 -0
- qiskit/synthesis/qft/qft_decompose_full.py +19 -1
- qiskit/synthesis/qft/qft_decompose_lnn.py +2 -1
- qiskit/synthesis/stabilizer/stabilizer_decompose.py +2 -1
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +4 -63
- qiskit/synthesis/unitary/qsd.py +5 -5
- qiskit/transpiler/__init__.py +21 -14
- qiskit/transpiler/basepasses.py +1 -1
- qiskit/transpiler/passes/__init__.py +2 -0
- qiskit/transpiler/passes/basis/basis_translator.py +9 -565
- qiskit/transpiler/passes/basis/decompose.py +45 -12
- qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
- qiskit/transpiler/passes/basis/unroll_custom_definitions.py +1 -1
- qiskit/transpiler/passes/calibration/pulse_gate.py +4 -2
- qiskit/transpiler/passes/calibration/rx_builder.py +11 -7
- qiskit/transpiler/passes/calibration/rzx_builder.py +46 -30
- qiskit/transpiler/passes/layout/disjoint_utils.py +15 -13
- qiskit/transpiler/passes/layout/sabre_layout.py +7 -2
- qiskit/transpiler/passes/layout/sabre_pre_layout.py +5 -0
- qiskit/transpiler/passes/optimization/__init__.py +1 -0
- qiskit/transpiler/passes/optimization/collect_cliffords.py +19 -3
- qiskit/transpiler/passes/optimization/collect_linear_functions.py +1 -1
- qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
- qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py +1 -1
- qiskit/transpiler/passes/optimization/consolidate_blocks.py +48 -131
- qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +4 -2
- qiskit/transpiler/passes/optimization/elide_permutations.py +9 -32
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +5 -11
- qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
- qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +1 -1
- qiskit/transpiler/passes/optimization/remove_identity_equiv.py +69 -0
- qiskit/transpiler/passes/optimization/template_matching/backward_match.py +5 -5
- qiskit/transpiler/passes/optimization/template_matching/forward_match.py +4 -4
- qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +1 -1
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
- qiskit/transpiler/passes/routing/sabre_swap.py +7 -3
- qiskit/transpiler/passes/routing/star_prerouting.py +2 -2
- qiskit/transpiler/passes/scheduling/alap.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/align_measures.py +2 -2
- qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +2 -0
- qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
- qiskit/transpiler/passes/scheduling/asap.py +1 -1
- qiskit/transpiler/passes/scheduling/base_scheduler.py +14 -12
- qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +9 -4
- qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +16 -5
- qiskit/transpiler/passes/scheduling/padding/pad_delay.py +4 -1
- qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +6 -2
- qiskit/transpiler/passes/scheduling/time_unit_conversion.py +9 -4
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +262 -99
- qiskit/transpiler/passes/synthesis/hls_plugins.py +637 -7
- qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +55 -34
- qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +2 -56
- qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +5 -0
- qiskit/transpiler/passes/utils/gate_direction.py +12 -275
- qiskit/transpiler/passes/utils/gates_basis.py +7 -30
- qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +2 -1
- qiskit/transpiler/passmanager_config.py +22 -4
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +40 -14
- qiskit/transpiler/preset_passmanagers/common.py +5 -3
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +125 -42
- qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
- qiskit/transpiler/target.py +74 -16
- qiskit/utils/deprecate_pulse.py +119 -0
- qiskit/visualization/circuit/_utils.py +2 -2
- qiskit/visualization/circuit/circuit_visualization.py +3 -2
- qiskit/visualization/circuit/matplotlib.py +1 -1
- qiskit/visualization/dag_visualization.py +1 -1
- qiskit/visualization/pass_manager_visualization.py +3 -14
- qiskit/visualization/pulse_v2/interface.py +3 -1
- qiskit/visualization/timeline/core.py +25 -2
- qiskit/visualization/timeline/interface.py +12 -0
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/METADATA +9 -8
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/RECORD +357 -346
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/WHEEL +1 -1
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/entry_points.txt +19 -0
- qiskit/circuit/library/data_preparation/zz_feature_map.py +0 -118
- qiskit/synthesis/two_qubit/weyl.py +0 -97
- qiskit/transpiler/passes/synthesis/qubit_tracker.py +0 -132
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.3.0b1.dist-info → qiskit-1.3.0rc2.dist-info}/top_level.txt +0 -0
@@ -35,7 +35,7 @@ class UGate(Gate):
|
|
35
35
|
|
36
36
|
**Circuit symbol:**
|
37
37
|
|
38
|
-
..
|
38
|
+
.. code-block:: text
|
39
39
|
|
40
40
|
┌──────────┐
|
41
41
|
q_0: ┤ U(ϴ,φ,λ) ├
|
@@ -218,7 +218,7 @@ class CUGate(ControlledGate):
|
|
218
218
|
|
219
219
|
**Circuit symbol:**
|
220
220
|
|
221
|
-
..
|
221
|
+
.. code-block:: text
|
222
222
|
|
223
223
|
q_0: ──────■──────
|
224
224
|
┌─────┴──────┐
|
@@ -251,7 +251,8 @@ class CUGate(ControlledGate):
|
|
251
251
|
which in our case would be q_1. Thus a textbook matrix for this
|
252
252
|
gate will be:
|
253
253
|
|
254
|
-
..
|
254
|
+
.. code-block:: text
|
255
|
+
|
255
256
|
┌────────────┐
|
256
257
|
q_0: ┤ U(ϴ,φ,λ,γ) ├
|
257
258
|
└─────┬──────┘
|
@@ -393,3 +394,10 @@ class CUGate(ControlledGate):
|
|
393
394
|
out = super().__deepcopy__(memo)
|
394
395
|
out._params = _copy.deepcopy(out._params, memo)
|
395
396
|
return out
|
397
|
+
|
398
|
+
def __eq__(self, other):
|
399
|
+
return (
|
400
|
+
isinstance(other, CUGate)
|
401
|
+
and self.ctrl_state == other.ctrl_state
|
402
|
+
and self._compare_parameters(other)
|
403
|
+
)
|
@@ -34,47 +34,47 @@ class U1Gate(Gate):
|
|
34
34
|
|
35
35
|
.. math::
|
36
36
|
|
37
|
-
U1(\
|
37
|
+
U1(\theta) = P(\theta)= U(0,0,\theta)
|
38
38
|
|
39
39
|
.. code-block:: python
|
40
40
|
|
41
41
|
circuit = QuantumCircuit(1)
|
42
|
-
circuit.p(lambda, 0) # or circuit.u(0, 0, lambda)
|
42
|
+
circuit.p(lambda, 0) # or circuit.u(0, 0, lambda, 0)
|
43
43
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
47
|
**Circuit symbol:**
|
48
48
|
|
49
|
-
..
|
49
|
+
.. code-block:: text
|
50
50
|
|
51
51
|
┌───────┐
|
52
|
-
q_0: ┤ U1(
|
52
|
+
q_0: ┤ U1(θ) ├
|
53
53
|
└───────┘
|
54
54
|
|
55
55
|
**Matrix Representation:**
|
56
56
|
|
57
57
|
.. math::
|
58
58
|
|
59
|
-
U1(\
|
59
|
+
U1(\theta) =
|
60
60
|
\begin{pmatrix}
|
61
61
|
1 & 0 \\
|
62
|
-
0 & e^{i\
|
62
|
+
0 & e^{i\theta}
|
63
63
|
\end{pmatrix}
|
64
64
|
|
65
65
|
**Examples:**
|
66
66
|
|
67
67
|
.. math::
|
68
68
|
|
69
|
-
U1(\
|
69
|
+
U1(\theta = \pi) = Z
|
70
70
|
|
71
71
|
.. math::
|
72
72
|
|
73
|
-
U1(\
|
73
|
+
U1(\theta = \pi/2) = S
|
74
74
|
|
75
75
|
.. math::
|
76
76
|
|
77
|
-
U1(\
|
77
|
+
U1(\theta = \pi/4) = T
|
78
78
|
|
79
79
|
.. seealso::
|
80
80
|
|
@@ -83,7 +83,7 @@ class U1Gate(Gate):
|
|
83
83
|
|
84
84
|
.. math::
|
85
85
|
|
86
|
-
U1(\
|
86
|
+
U1(\theta) = e^{i{\theta}/2} RZ(\theta)
|
87
87
|
|
88
88
|
:class:`~qiskit.circuit.library.standard_gates.U3Gate`:
|
89
89
|
U3 is a generalization of U2 that covers all single-qubit rotations,
|
@@ -170,6 +170,9 @@ class U1Gate(Gate):
|
|
170
170
|
lam = float(self.params[0])
|
171
171
|
return numpy.array([[1, 0], [0, numpy.exp(1j * lam)]], dtype=dtype)
|
172
172
|
|
173
|
+
def __eq__(self, other):
|
174
|
+
return isinstance(other, U1Gate) and self._compare_parameters(other)
|
175
|
+
|
173
176
|
|
174
177
|
class CU1Gate(ControlledGate):
|
175
178
|
r"""Controlled-U1 gate.
|
@@ -177,13 +180,29 @@ class CU1Gate(ControlledGate):
|
|
177
180
|
This is a diagonal and symmetric gate that induces a
|
178
181
|
phase on the state of the target qubit, depending on the control state.
|
179
182
|
|
183
|
+
.. warning::
|
184
|
+
|
185
|
+
This gate is deprecated. Instead, the :class:`.CPhaseGate` should be used
|
186
|
+
|
187
|
+
.. math::
|
188
|
+
|
189
|
+
CU1(\lambda) = CP(\lambda)
|
190
|
+
|
191
|
+
.. code-block:: python
|
192
|
+
|
193
|
+
circuit = QuantumCircuit(2)
|
194
|
+
circuit.cp(lambda, 0, 1)
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
180
199
|
**Circuit symbol:**
|
181
200
|
|
182
|
-
..
|
201
|
+
.. code-block:: text
|
183
202
|
|
184
203
|
|
185
204
|
q_0: ─■──
|
186
|
-
|
205
|
+
│θ
|
187
206
|
q_1: ─■──
|
188
207
|
|
189
208
|
|
@@ -191,13 +210,13 @@ class CU1Gate(ControlledGate):
|
|
191
210
|
|
192
211
|
.. math::
|
193
212
|
|
194
|
-
CU1(\
|
213
|
+
CU1(\theta) =
|
195
214
|
I \otimes |0\rangle\langle 0| + U1 \otimes |1\rangle\langle 1| =
|
196
215
|
\begin{pmatrix}
|
197
216
|
1 & 0 & 0 & 0 \\
|
198
217
|
0 & 1 & 0 & 0 \\
|
199
218
|
0 & 0 & 1 & 0 \\
|
200
|
-
0 & 0 & 0 & e^{i\
|
219
|
+
0 & 0 & 0 & e^{i\theta}
|
201
220
|
\end{pmatrix}
|
202
221
|
|
203
222
|
.. seealso::
|
@@ -325,6 +344,13 @@ class CU1Gate(ControlledGate):
|
|
325
344
|
[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, eith, 0], [0, 0, 0, 1]], dtype=dtype
|
326
345
|
)
|
327
346
|
|
347
|
+
def __eq__(self, other):
|
348
|
+
return (
|
349
|
+
isinstance(other, CU1Gate)
|
350
|
+
and self.ctrl_state == other.ctrl_state
|
351
|
+
and self._compare_parameters(other)
|
352
|
+
)
|
353
|
+
|
328
354
|
|
329
355
|
class MCU1Gate(ControlledGate):
|
330
356
|
r"""Multi-controlled-U1 gate.
|
@@ -332,9 +358,25 @@ class MCU1Gate(ControlledGate):
|
|
332
358
|
This is a diagonal and symmetric gate that induces a
|
333
359
|
phase on the state of the target qubit, depending on the state of the control qubits.
|
334
360
|
|
361
|
+
.. warning::
|
362
|
+
|
363
|
+
This gate is deprecated. Instead, the following replacements should be used
|
364
|
+
|
365
|
+
.. math::
|
366
|
+
|
367
|
+
MCU1(\lambda) = MCP(\lambda)
|
368
|
+
|
369
|
+
.. code-block:: python
|
370
|
+
|
371
|
+
circuit = QuantumCircuit(5)
|
372
|
+
circuit.mcp(lambda, list(range(4)), 4)
|
373
|
+
|
374
|
+
|
375
|
+
|
376
|
+
|
335
377
|
**Circuit symbol:**
|
336
378
|
|
337
|
-
..
|
379
|
+
.. code-block:: text
|
338
380
|
|
339
381
|
q_0: ────■────
|
340
382
|
│
|
@@ -449,3 +491,11 @@ class MCU1Gate(ControlledGate):
|
|
449
491
|
MCU1Gate: inverse gate.
|
450
492
|
"""
|
451
493
|
return MCU1Gate(-self.params[0], self.num_ctrl_qubits)
|
494
|
+
|
495
|
+
def __eq__(self, other):
|
496
|
+
return (
|
497
|
+
isinstance(other, MCU1Gate)
|
498
|
+
and self.num_ctrl_qubits == other.num_ctrl_qubits
|
499
|
+
and self.ctrl_state == other.ctrl_state
|
500
|
+
and self._compare_parameters(other)
|
501
|
+
)
|
@@ -43,7 +43,7 @@ class U2Gate(Gate):
|
|
43
43
|
|
44
44
|
**Circuit symbol:**
|
45
45
|
|
46
|
-
..
|
46
|
+
.. code-block:: text
|
47
47
|
|
48
48
|
┌─────────┐
|
49
49
|
q_0: ┤ U2(φ,λ) ├
|
@@ -144,3 +144,6 @@ class U2Gate(Gate):
|
|
144
144
|
],
|
145
145
|
dtype=dtype or complex,
|
146
146
|
)
|
147
|
+
|
148
|
+
def __eq__(self, other):
|
149
|
+
return isinstance(other, U2Gate) and self._compare_parameters(other)
|
@@ -43,7 +43,7 @@ class U3Gate(Gate):
|
|
43
43
|
|
44
44
|
**Circuit symbol:**
|
45
45
|
|
46
|
-
..
|
46
|
+
.. code-block:: text
|
47
47
|
|
48
48
|
┌───────────┐
|
49
49
|
q_0: ┤ U3(ϴ,φ,λ) ├
|
@@ -178,6 +178,9 @@ class U3Gate(Gate):
|
|
178
178
|
dtype=dtype or complex,
|
179
179
|
)
|
180
180
|
|
181
|
+
def __eq__(self, other):
|
182
|
+
return isinstance(other, U3Gate) and self._compare_parameters(other)
|
183
|
+
|
181
184
|
|
182
185
|
class CU3Gate(ControlledGate):
|
183
186
|
r"""Controlled-U3 gate (3-parameter two-qubit gate).
|
@@ -186,9 +189,26 @@ class CU3Gate(ControlledGate):
|
|
186
189
|
It is restricted to 3 parameters, and so cannot cover generic two-qubit
|
187
190
|
controlled gates).
|
188
191
|
|
192
|
+
.. warning::
|
193
|
+
|
194
|
+
This gate is deprecated. Instead, the :class:`.CUGate` should be used
|
195
|
+
|
196
|
+
.. math::
|
197
|
+
|
198
|
+
CU3(\theta, \phi, \lambda) = CU(\theta, \phi, \lambda, 0)
|
199
|
+
|
200
|
+
.. code-block:: python
|
201
|
+
|
202
|
+
circuit = QuantumCircuit(2)
|
203
|
+
gamma = 0
|
204
|
+
circuit.cu(theta, phi, lambda, gamma, 0, 1)
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
189
209
|
**Circuit symbol:**
|
190
210
|
|
191
|
-
..
|
211
|
+
.. code-block:: text
|
192
212
|
|
193
213
|
q_0: ──────■──────
|
194
214
|
┌─────┴─────┐
|
@@ -219,7 +239,8 @@ class CU3Gate(ControlledGate):
|
|
219
239
|
which in our case would be q_1. Thus a textbook matrix for this
|
220
240
|
gate will be:
|
221
241
|
|
222
|
-
..
|
242
|
+
.. code-block:: text
|
243
|
+
|
223
244
|
┌───────────┐
|
224
245
|
q_0: ┤ U3(ϴ,φ,λ) ├
|
225
246
|
└─────┬─────┘
|
@@ -351,6 +372,13 @@ class CU3Gate(ControlledGate):
|
|
351
372
|
dtype=dtype or complex,
|
352
373
|
)
|
353
374
|
|
375
|
+
def __eq__(self, other):
|
376
|
+
return (
|
377
|
+
isinstance(other, CU3Gate)
|
378
|
+
and self.ctrl_state == other.ctrl_state
|
379
|
+
and self._compare_parameters(other)
|
380
|
+
)
|
381
|
+
|
354
382
|
|
355
383
|
def _generate_gray_code(num_bits):
|
356
384
|
"""Generate the gray code for ``num_bits`` bits."""
|
@@ -44,7 +44,7 @@ class XGate(SingletonGate):
|
|
44
44
|
|
45
45
|
**Circuit symbol:**
|
46
46
|
|
47
|
-
..
|
47
|
+
.. code-block:: text
|
48
48
|
|
49
49
|
┌───┐
|
50
50
|
q_0: ┤ X ├
|
@@ -163,7 +163,7 @@ class CXGate(SingletonControlledGate):
|
|
163
163
|
|
164
164
|
**Circuit symbol:**
|
165
165
|
|
166
|
-
..
|
166
|
+
.. code-block:: text
|
167
167
|
|
168
168
|
q_0: ──■──
|
169
169
|
┌─┴─┐
|
@@ -191,7 +191,8 @@ class CXGate(SingletonControlledGate):
|
|
191
191
|
which in our case would be q_1. Thus a textbook matrix for this
|
192
192
|
gate will be:
|
193
193
|
|
194
|
-
..
|
194
|
+
.. code-block:: text
|
195
|
+
|
195
196
|
┌───┐
|
196
197
|
q_0: ┤ X ├
|
197
198
|
└─┬─┘
|
@@ -310,7 +311,7 @@ class CCXGate(SingletonControlledGate):
|
|
310
311
|
|
311
312
|
**Circuit symbol:**
|
312
313
|
|
313
|
-
..
|
314
|
+
.. code-block:: text
|
314
315
|
|
315
316
|
q_0: ──■──
|
316
317
|
│
|
@@ -344,7 +345,8 @@ class CCXGate(SingletonControlledGate):
|
|
344
345
|
which in our case would be q_2 and q_1. Thus a textbook matrix for this
|
345
346
|
gate will be:
|
346
347
|
|
347
|
-
..
|
348
|
+
.. code-block:: text
|
349
|
+
|
348
350
|
┌───┐
|
349
351
|
q_0: ┤ X ├
|
350
352
|
└─┬─┘
|
@@ -41,7 +41,7 @@ class XXMinusYYGate(Gate):
|
|
41
41
|
|
42
42
|
**Circuit Symbol:**
|
43
43
|
|
44
|
-
..
|
44
|
+
.. code-block:: text
|
45
45
|
|
46
46
|
┌───────────────┐
|
47
47
|
q_0: ┤0 ├
|
@@ -73,7 +73,7 @@ class XXMinusYYGate(Gate):
|
|
73
73
|
phase is added on q_0. If :math:`\beta` is set to its default value
|
74
74
|
of :math:`0`, the gate is equivalent in big and little endian.
|
75
75
|
|
76
|
-
..
|
76
|
+
.. code-block:: text
|
77
77
|
|
78
78
|
┌───────────────┐
|
79
79
|
q_0: ┤1 ├
|
@@ -35,7 +35,7 @@ class XXPlusYYGate(Gate):
|
|
35
35
|
|
36
36
|
**Circuit Symbol:**
|
37
37
|
|
38
|
-
..
|
38
|
+
.. code-block:: text
|
39
39
|
|
40
40
|
┌───────────────┐
|
41
41
|
q_0: ┤0 ├
|
@@ -67,7 +67,7 @@ class XXPlusYYGate(Gate):
|
|
67
67
|
phase is added on q_1. If :math:`\beta` is set to its default value
|
68
68
|
of :math:`0`, the gate is equivalent in big and little endian.
|
69
69
|
|
70
|
-
..
|
70
|
+
.. code-block:: text
|
71
71
|
|
72
72
|
┌───────────────┐
|
73
73
|
q_0: ┤1 ├
|
@@ -42,7 +42,7 @@ class YGate(SingletonGate):
|
|
42
42
|
|
43
43
|
**Circuit symbol:**
|
44
44
|
|
45
|
-
..
|
45
|
+
.. code-block:: text
|
46
46
|
|
47
47
|
┌───┐
|
48
48
|
q_0: ┤ Y ├
|
@@ -152,7 +152,7 @@ class CYGate(SingletonControlledGate):
|
|
152
152
|
|
153
153
|
**Circuit symbol:**
|
154
154
|
|
155
|
-
..
|
155
|
+
.. code-block:: text
|
156
156
|
|
157
157
|
q_0: ──■──
|
158
158
|
┌─┴─┐
|
@@ -181,7 +181,8 @@ class CYGate(SingletonControlledGate):
|
|
181
181
|
which in our case would be q_1. Thus a textbook matrix for this
|
182
182
|
gate will be:
|
183
183
|
|
184
|
-
..
|
184
|
+
.. code-block:: text
|
185
|
+
|
185
186
|
┌───┐
|
186
187
|
q_0: ┤ Y ├
|
187
188
|
└─┬─┘
|
@@ -45,7 +45,7 @@ class ZGate(SingletonGate):
|
|
45
45
|
|
46
46
|
**Circuit symbol:**
|
47
47
|
|
48
|
-
..
|
48
|
+
.. code-block:: text
|
49
49
|
|
50
50
|
┌───┐
|
51
51
|
q_0: ┤ Z ├
|
@@ -161,7 +161,7 @@ class CZGate(SingletonControlledGate):
|
|
161
161
|
|
162
162
|
**Circuit symbol:**
|
163
163
|
|
164
|
-
..
|
164
|
+
.. code-block:: text
|
165
165
|
|
166
166
|
q_0: ─■─
|
167
167
|
│
|
@@ -257,7 +257,7 @@ class CCZGate(SingletonControlledGate):
|
|
257
257
|
|
258
258
|
**Circuit symbol:**
|
259
259
|
|
260
|
-
..
|
260
|
+
.. code-block:: text
|
261
261
|
|
262
262
|
q_0: ─■─
|
263
263
|
│
|
@@ -10,20 +10,21 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 2_1:
|
15
|
-
.. parsed-literal::
|
16
|
-
|
17
|
-
q_0: ─■──■─
|
18
|
-
│ │
|
19
|
-
q_1: ─■──■─
|
20
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
21
14
|
|
22
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
23
16
|
|
24
17
|
|
25
18
|
def clifford_2_1():
|
26
19
|
"""
|
20
|
+
Clifford template 2_1:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
q_0: ─■──■─
|
25
|
+
│ │
|
26
|
+
q_1: ─■──■─
|
27
|
+
|
27
28
|
Returns:
|
28
29
|
QuantumCircuit: template as a quantum circuit.
|
29
30
|
"""
|
@@ -10,21 +10,22 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 2_2:
|
15
|
-
.. parsed-literal::
|
16
|
-
|
17
|
-
q_0: ──■────■──
|
18
|
-
┌─┴─┐┌─┴─┐
|
19
|
-
q_1: ┤ X ├┤ X ├
|
20
|
-
└───┘└───┘
|
21
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
22
14
|
|
23
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
24
16
|
|
25
17
|
|
26
18
|
def clifford_2_2():
|
27
19
|
"""
|
20
|
+
Clifford template 2_2:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
q_0: ──■────■──
|
25
|
+
┌─┴─┐┌─┴─┐
|
26
|
+
q_1: ┤ X ├┤ X ├
|
27
|
+
└───┘└───┘
|
28
|
+
|
28
29
|
Returns:
|
29
30
|
QuantumCircuit: template as a quantum circuit.
|
30
31
|
"""
|
@@ -10,19 +10,21 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 2_3:
|
15
|
-
.. parsed-literal::
|
16
|
-
┌───┐┌───┐
|
17
|
-
q_0: ┤ H ├┤ H ├
|
18
|
-
└───┘└───┘
|
19
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
20
14
|
|
21
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
22
16
|
|
23
17
|
|
24
18
|
def clifford_2_3():
|
25
19
|
"""
|
20
|
+
Clifford template 2_3:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
┌───┐┌───┐
|
25
|
+
q_0: ┤ H ├┤ H ├
|
26
|
+
└───┘└───┘
|
27
|
+
|
26
28
|
Returns:
|
27
29
|
QuantumCircuit: template as a quantum circuit.
|
28
30
|
"""
|
@@ -10,20 +10,21 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 2_4:
|
15
|
-
.. parsed-literal::
|
16
|
-
|
17
|
-
q_0: ─X──X─
|
18
|
-
│ │
|
19
|
-
q_1: ─X──X─
|
20
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
21
14
|
|
22
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
23
16
|
|
24
17
|
|
25
18
|
def clifford_2_4():
|
26
19
|
"""
|
20
|
+
Clifford template 2_4:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
q_0: ─X──X─
|
25
|
+
│ │
|
26
|
+
q_1: ─X──X─
|
27
|
+
|
27
28
|
Returns:
|
28
29
|
QuantumCircuit: template as a quantum circuit.
|
29
30
|
"""
|
@@ -10,20 +10,21 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 3_1:
|
15
|
-
.. parsed-literal::
|
16
|
-
|
17
|
-
┌───┐┌───┐┌───┐
|
18
|
-
q_0: ┤ S ├┤ S ├┤ Z ├
|
19
|
-
└───┘└───┘└───┘
|
20
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
21
14
|
|
22
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
23
16
|
|
24
17
|
|
25
18
|
def clifford_3_1():
|
26
19
|
"""
|
20
|
+
Clifford template 3_1:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
┌───┐┌───┐┌───┐
|
25
|
+
q_0: ┤ S ├┤ S ├┤ Z ├
|
26
|
+
└───┘└───┘└───┘
|
27
|
+
|
27
28
|
Returns:
|
28
29
|
QuantumCircuit: template as a quantum circuit.
|
29
30
|
"""
|
@@ -10,22 +10,23 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
# pylint: disable=missing-module-docstring
|
14
|
+
|
15
|
+
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
16
|
+
|
17
|
+
|
18
|
+
def clifford_4_1():
|
19
|
+
"""
|
20
|
+
Clifford template 4_1:
|
21
|
+
|
22
|
+
.. code-block:: text
|
16
23
|
|
17
24
|
┌───┐
|
18
25
|
q_0: ──■──┤ X ├──■───X─
|
19
26
|
┌─┴─┐└─┬─┘┌─┴─┐ │
|
20
27
|
q_1: ┤ X ├──■──┤ X ├─X─
|
21
28
|
└───┘ └───┘
|
22
|
-
"""
|
23
|
-
|
24
|
-
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
25
29
|
|
26
|
-
|
27
|
-
def clifford_4_1():
|
28
|
-
"""
|
29
30
|
Returns:
|
30
31
|
QuantumCircuit: template as a quantum circuit.
|
31
32
|
"""
|
@@ -10,21 +10,22 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
Clifford template 4_2:
|
15
|
-
.. parsed-literal::
|
16
|
-
|
17
|
-
q_0: ───────■────────■─
|
18
|
-
┌───┐┌─┴─┐┌───┐ │
|
19
|
-
q_1: ┤ H ├┤ X ├┤ H ├─■─
|
20
|
-
└───┘└───┘└───┘
|
21
|
-
"""
|
13
|
+
# pylint: disable=missing-module-docstring
|
22
14
|
|
23
15
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
24
16
|
|
25
17
|
|
26
18
|
def clifford_4_2():
|
27
19
|
"""
|
20
|
+
Clifford template 4_2:
|
21
|
+
|
22
|
+
.. code-block:: text
|
23
|
+
|
24
|
+
q_0: ───────■────────■─
|
25
|
+
┌───┐┌─┴─┐┌───┐ │
|
26
|
+
q_1: ┤ H ├┤ X ├┤ H ├─■─
|
27
|
+
└───┘└───┘└───┘
|
28
|
+
|
28
29
|
Returns:
|
29
30
|
QuantumCircuit: template as a quantum circuit.
|
30
31
|
"""
|
@@ -10,22 +10,23 @@
|
|
10
10
|
# copyright notice, and modified files need to carry a notice indicating
|
11
11
|
# that they have been altered from the originals.
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
# pylint: disable=missing-module-docstring
|
14
|
+
|
15
|
+
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
16
|
+
|
17
|
+
|
18
|
+
def clifford_4_3():
|
19
|
+
"""
|
20
|
+
Clifford template 4_3:
|
21
|
+
|
22
|
+
.. code-block:: text
|
16
23
|
|
17
24
|
┌───┐ ┌─────┐
|
18
25
|
q_0: ┤ S ├──■──┤ SDG ├──■──
|
19
26
|
└───┘┌─┴─┐└─────┘┌─┴─┐
|
20
27
|
q_1: ─────┤ X ├───────┤ X ├
|
21
28
|
└───┘ └───┘
|
22
|
-
"""
|
23
|
-
|
24
|
-
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
25
29
|
|
26
|
-
|
27
|
-
def clifford_4_3():
|
28
|
-
"""
|
29
30
|
Returns:
|
30
31
|
QuantumCircuit: template as a quantum circuit.
|
31
32
|
"""
|