qiskit 1.4.1__cp39-abi3-macosx_11_0_arm64.whl → 2.0.0__cp39-abi3-macosx_11_0_arm64.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 +3 -9
- qiskit/_accelerate.abi3.so +0 -0
- qiskit/circuit/__init__.py +35 -10
- qiskit/circuit/{add_control.py → _add_control.py} +32 -12
- qiskit/circuit/_classical_resource_map.py +5 -3
- qiskit/circuit/barrier.py +3 -7
- qiskit/circuit/classical/expr/__init__.py +31 -3
- qiskit/circuit/classical/expr/constructors.py +236 -28
- qiskit/circuit/classical/expr/expr.py +104 -3
- qiskit/circuit/classical/expr/visitors.py +75 -0
- qiskit/circuit/classical/types/__init__.py +12 -8
- qiskit/circuit/classical/types/ordering.py +14 -7
- qiskit/circuit/classical/types/types.py +36 -0
- qiskit/circuit/commutation_checker.py +34 -7
- qiskit/circuit/controlflow/__init__.py +32 -1
- qiskit/circuit/controlflow/_builder_utils.py +9 -5
- qiskit/circuit/controlflow/box.py +163 -0
- qiskit/circuit/controlflow/break_loop.py +1 -1
- qiskit/circuit/controlflow/builder.py +139 -39
- qiskit/circuit/controlflow/continue_loop.py +1 -3
- qiskit/circuit/controlflow/control_flow.py +10 -0
- qiskit/circuit/controlflow/for_loop.py +2 -1
- qiskit/circuit/controlflow/if_else.py +3 -16
- qiskit/circuit/controlflow/switch_case.py +2 -8
- qiskit/circuit/controlflow/while_loop.py +2 -7
- qiskit/circuit/controlledgate.py +2 -4
- qiskit/circuit/delay.py +40 -11
- qiskit/circuit/duration.py +0 -15
- qiskit/circuit/gate.py +2 -4
- qiskit/circuit/instruction.py +2 -141
- qiskit/circuit/instructionset.py +7 -54
- qiskit/circuit/library/__init__.py +469 -154
- qiskit/circuit/library/arithmetic/__init__.py +16 -10
- qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
- qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +2 -2
- qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +1 -1
- qiskit/circuit/library/arithmetic/exact_reciprocal.py +64 -21
- qiskit/circuit/library/arithmetic/integer_comparator.py +37 -80
- qiskit/circuit/library/arithmetic/linear_amplitude_function.py +169 -2
- qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +59 -5
- qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +154 -6
- qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +114 -4
- qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +191 -15
- qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py +93 -39
- qiskit/circuit/library/arithmetic/quadratic_form.py +168 -2
- qiskit/circuit/library/arithmetic/weighted_adder.py +73 -1
- qiskit/circuit/library/bit_flip_oracle.py +130 -0
- qiskit/circuit/library/blueprintcircuit.py +52 -16
- qiskit/circuit/library/data_preparation/initializer.py +1 -1
- qiskit/circuit/library/data_preparation/pauli_feature_map.py +4 -4
- qiskit/circuit/library/data_preparation/state_preparation.py +1 -1
- qiskit/circuit/library/generalized_gates/gms.py +1 -1
- qiskit/circuit/library/generalized_gates/isometry.py +1 -1
- qiskit/circuit/library/generalized_gates/pauli.py +1 -2
- qiskit/circuit/library/generalized_gates/uc.py +97 -7
- qiskit/circuit/library/generalized_gates/uc_pauli_rot.py +1 -1
- qiskit/circuit/library/generalized_gates/unitary.py +4 -2
- qiskit/circuit/library/graph_state.py +1 -0
- qiskit/circuit/library/hamiltonian_gate.py +1 -1
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
- qiskit/circuit/library/n_local/n_local.py +1 -1
- qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -1
- qiskit/circuit/library/overlap.py +2 -2
- qiskit/circuit/library/pauli_evolution.py +39 -24
- qiskit/circuit/library/phase_oracle.py +130 -51
- qiskit/circuit/library/standard_gates/__init__.py +0 -1
- qiskit/circuit/library/standard_gates/dcx.py +3 -4
- qiskit/circuit/library/standard_gates/ecr.py +3 -4
- qiskit/circuit/library/standard_gates/global_phase.py +5 -6
- qiskit/circuit/library/standard_gates/h.py +4 -9
- qiskit/circuit/library/standard_gates/i.py +2 -2
- qiskit/circuit/library/standard_gates/iswap.py +3 -4
- qiskit/circuit/library/standard_gates/p.py +15 -34
- qiskit/circuit/library/standard_gates/r.py +7 -10
- qiskit/circuit/library/standard_gates/rx.py +5 -15
- qiskit/circuit/library/standard_gates/rxx.py +3 -6
- qiskit/circuit/library/standard_gates/ry.py +5 -17
- qiskit/circuit/library/standard_gates/ryy.py +3 -6
- qiskit/circuit/library/standard_gates/rz.py +5 -17
- qiskit/circuit/library/standard_gates/rzx.py +3 -6
- qiskit/circuit/library/standard_gates/rzz.py +3 -6
- qiskit/circuit/library/standard_gates/s.py +6 -15
- qiskit/circuit/library/standard_gates/swap.py +4 -11
- qiskit/circuit/library/standard_gates/sx.py +7 -12
- qiskit/circuit/library/standard_gates/t.py +6 -7
- qiskit/circuit/library/standard_gates/u.py +2 -10
- qiskit/circuit/library/standard_gates/u1.py +5 -16
- qiskit/circuit/library/standard_gates/u2.py +2 -6
- qiskit/circuit/library/standard_gates/u3.py +3 -11
- qiskit/circuit/library/standard_gates/x.py +14 -62
- qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -5
- qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -5
- qiskit/circuit/library/standard_gates/y.py +4 -9
- qiskit/circuit/library/standard_gates/z.py +5 -15
- qiskit/circuit/measure.py +11 -2
- qiskit/circuit/parameterexpression.py +11 -0
- qiskit/circuit/quantumcircuit.py +890 -564
- qiskit/circuit/random/utils.py +12 -6
- qiskit/circuit/reset.py +5 -2
- qiskit/circuit/singleton.py +5 -11
- qiskit/circuit/store.py +0 -8
- qiskit/circuit/tools/pi_check.py +3 -0
- qiskit/compiler/__init__.py +1 -7
- qiskit/compiler/transpiler.py +38 -196
- qiskit/converters/circuit_to_dag.py +6 -4
- qiskit/converters/circuit_to_dagdependency.py +0 -2
- qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
- qiskit/converters/circuit_to_gate.py +1 -1
- qiskit/converters/circuit_to_instruction.py +16 -29
- qiskit/converters/dag_to_circuit.py +7 -8
- qiskit/converters/dag_to_dagdependency.py +0 -1
- qiskit/converters/dag_to_dagdependency_v2.py +0 -1
- qiskit/converters/dagdependency_to_circuit.py +0 -6
- qiskit/converters/dagdependency_to_dag.py +0 -6
- qiskit/dagcircuit/collect_blocks.py +32 -20
- qiskit/dagcircuit/dagdependency.py +3 -37
- qiskit/dagcircuit/dagdependency_v2.py +5 -82
- qiskit/dagcircuit/dagnode.py +14 -2
- qiskit/passmanager/__init__.py +24 -6
- qiskit/passmanager/passmanager.py +26 -24
- qiskit/primitives/__init__.py +44 -35
- qiskit/primitives/backend_estimator_v2.py +102 -23
- qiskit/primitives/backend_sampler_v2.py +5 -20
- qiskit/primitives/base/__init__.py +4 -4
- qiskit/primitives/base/base_estimator.py +77 -82
- qiskit/primitives/base/base_primitive_job.py +2 -2
- qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
- qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
- qiskit/primitives/base/base_sampler.py +52 -60
- qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
- qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
- qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
- qiskit/primitives/containers/bindings_array.py +3 -1
- qiskit/primitives/containers/bit_array.py +23 -0
- qiskit/primitives/containers/data_bin.py +3 -1
- qiskit/primitives/containers/observables_array.py +19 -2
- qiskit/primitives/statevector_sampler.py +6 -8
- qiskit/primitives/utils.py +14 -189
- qiskit/providers/__init__.py +4 -130
- qiskit/providers/backend.py +11 -314
- qiskit/providers/basic_provider/__init__.py +3 -1
- qiskit/providers/basic_provider/basic_provider.py +29 -9
- qiskit/providers/basic_provider/basic_simulator.py +158 -298
- qiskit/providers/exceptions.py +0 -33
- qiskit/providers/fake_provider/__init__.py +0 -37
- qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
- qiskit/qasm2/__init__.py +21 -6
- qiskit/qasm2/export.py +2 -10
- qiskit/qasm2/parse.py +11 -25
- qiskit/qasm3/__init__.py +5 -1
- qiskit/qasm3/ast.py +44 -0
- qiskit/qasm3/exporter.py +65 -27
- qiskit/qasm3/printer.py +35 -4
- qiskit/qpy/__init__.py +162 -19
- qiskit/qpy/binary_io/__init__.py +0 -1
- qiskit/qpy/binary_io/circuits.py +96 -116
- qiskit/qpy/binary_io/parse_sympy_repr.py +121 -0
- qiskit/qpy/binary_io/schedules.py +61 -388
- qiskit/qpy/binary_io/value.py +159 -33
- qiskit/qpy/common.py +10 -7
- qiskit/qpy/formats.py +41 -0
- qiskit/qpy/interface.py +29 -62
- qiskit/qpy/type_keys.py +58 -221
- qiskit/quantum_info/analysis/distance.py +3 -1
- qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
- qiskit/quantum_info/operators/operator.py +6 -2
- qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
- qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
- qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
- qiskit/quantum_info/states/densitymatrix.py +16 -6
- qiskit/quantum_info/states/stabilizerstate.py +35 -4
- qiskit/quantum_info/states/statevector.py +16 -6
- qiskit/result/__init__.py +5 -17
- qiskit/result/models.py +18 -11
- qiskit/result/result.py +38 -134
- qiskit/result/sampled_expval.py +1 -2
- qiskit/result/utils.py +3 -4
- qiskit/synthesis/__init__.py +21 -1
- qiskit/synthesis/arithmetic/__init__.py +3 -1
- qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
- qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
- qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
- qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
- qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
- qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
- qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
- qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
- qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
- qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
- qiskit/synthesis/boolean/boolean_expression.py +231 -0
- qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
- qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -0
- qiskit/synthesis/discrete_basis/generate_basis_approximations.py +2 -0
- qiskit/synthesis/evolution/lie_trotter.py +10 -7
- qiskit/synthesis/evolution/product_formula.py +44 -35
- qiskit/synthesis/evolution/qdrift.py +17 -24
- qiskit/synthesis/evolution/suzuki_trotter.py +20 -27
- qiskit/synthesis/linear/linear_depth_lnn.py +6 -221
- qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +4 -205
- qiskit/synthesis/multi_controlled/__init__.py +1 -0
- qiskit/synthesis/multi_controlled/mcx_synthesis.py +5 -2
- qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +206 -0
- qiskit/synthesis/one_qubit/one_qubit_decompose.py +1 -1
- qiskit/synthesis/two_qubit/__init__.py +1 -0
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +28 -145
- qiskit/transpiler/__init__.py +32 -232
- qiskit/transpiler/basepasses.py +20 -51
- qiskit/transpiler/layout.py +1 -1
- qiskit/transpiler/passes/__init__.py +4 -40
- qiskit/transpiler/passes/basis/basis_translator.py +5 -4
- qiskit/transpiler/passes/basis/decompose.py +1 -15
- qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -5
- qiskit/transpiler/passes/basis/unroll_custom_definitions.py +3 -2
- qiskit/transpiler/passes/layout/apply_layout.py +4 -0
- qiskit/transpiler/passes/layout/dense_layout.py +2 -39
- qiskit/transpiler/passes/layout/full_ancilla_allocation.py +3 -4
- qiskit/transpiler/passes/layout/sabre_layout.py +7 -3
- qiskit/transpiler/passes/layout/vf2_layout.py +2 -20
- qiskit/transpiler/passes/layout/vf2_post_layout.py +60 -125
- qiskit/transpiler/passes/layout/vf2_utils.py +2 -26
- qiskit/transpiler/passes/optimization/__init__.py +2 -3
- qiskit/transpiler/passes/optimization/collect_and_collapse.py +2 -0
- qiskit/transpiler/passes/optimization/collect_cliffords.py +5 -0
- qiskit/transpiler/passes/optimization/collect_linear_functions.py +5 -0
- qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +16 -1
- qiskit/transpiler/passes/optimization/commutation_analysis.py +3 -3
- qiskit/transpiler/passes/optimization/consolidate_blocks.py +41 -19
- qiskit/transpiler/passes/optimization/contract_idle_wires_in_control_flow.py +104 -0
- qiskit/transpiler/passes/optimization/light_cone.py +135 -0
- qiskit/transpiler/passes/optimization/optimize_1q_commutation.py +0 -1
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +18 -22
- qiskit/transpiler/passes/optimization/optimize_annotated.py +3 -2
- qiskit/transpiler/passes/optimization/remove_identity_equiv.py +6 -4
- qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +5 -2
- qiskit/transpiler/passes/optimization/split_2q_unitaries.py +26 -3
- qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +3 -2
- qiskit/transpiler/passes/routing/__init__.py +0 -1
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -1
- qiskit/transpiler/passes/routing/sabre_swap.py +14 -6
- qiskit/transpiler/passes/routing/star_prerouting.py +1 -1
- qiskit/transpiler/passes/scheduling/__init__.py +1 -7
- qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -4
- qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -9
- qiskit/transpiler/passes/scheduling/alignments/reschedule.py +17 -16
- qiskit/transpiler/passes/scheduling/padding/base_padding.py +32 -4
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +25 -63
- qiskit/transpiler/passes/scheduling/padding/pad_delay.py +12 -4
- qiskit/transpiler/passes/scheduling/scheduling/alap.py +5 -39
- qiskit/transpiler/passes/scheduling/scheduling/asap.py +4 -35
- qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +10 -16
- qiskit/transpiler/passes/scheduling/time_unit_conversion.py +134 -62
- qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py +653 -0
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +176 -601
- qiskit/transpiler/passes/synthesis/hls_plugins.py +294 -1
- qiskit/transpiler/passes/synthesis/plugin.py +4 -0
- qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +16 -10
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -697
- qiskit/transpiler/passes/utils/__init__.py +0 -1
- qiskit/transpiler/passes/utils/check_gate_direction.py +13 -5
- qiskit/transpiler/passes/utils/control_flow.py +2 -6
- qiskit/transpiler/passes/utils/gate_direction.py +7 -0
- qiskit/transpiler/passes/utils/remove_final_measurements.py +40 -33
- qiskit/transpiler/passmanager.py +13 -0
- qiskit/transpiler/passmanager_config.py +5 -81
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +225 -344
- qiskit/transpiler/preset_passmanagers/common.py +140 -167
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +107 -322
- qiskit/transpiler/preset_passmanagers/level0.py +2 -11
- qiskit/transpiler/preset_passmanagers/level1.py +2 -14
- qiskit/transpiler/preset_passmanagers/level2.py +2 -12
- qiskit/transpiler/preset_passmanagers/level3.py +2 -11
- qiskit/transpiler/preset_passmanagers/plugin.py +5 -3
- qiskit/transpiler/target.py +78 -524
- qiskit/user_config.py +8 -4
- qiskit/utils/__init__.py +13 -12
- qiskit/utils/deprecation.py +4 -112
- qiskit/utils/optionals.py +11 -4
- qiskit/utils/parallel.py +214 -87
- qiskit/utils/units.py +4 -1
- qiskit/visualization/__init__.py +3 -7
- qiskit/visualization/array.py +4 -1
- qiskit/visualization/bloch.py +1 -1
- qiskit/visualization/circuit/_utils.py +19 -19
- qiskit/visualization/circuit/circuit_visualization.py +11 -4
- qiskit/visualization/circuit/matplotlib.py +13 -23
- qiskit/visualization/circuit/text.py +7 -3
- qiskit/visualization/counts_visualization.py +4 -0
- qiskit/visualization/dag_visualization.py +2 -1
- qiskit/visualization/gate_map.py +39 -154
- qiskit/visualization/library.py +4 -1
- qiskit/visualization/pass_manager_visualization.py +6 -2
- qiskit/visualization/state_visualization.py +19 -2
- qiskit/visualization/timeline/core.py +19 -13
- qiskit/visualization/timeline/interface.py +19 -18
- qiskit/visualization/timeline/plotters/matplotlib.py +4 -1
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/METADATA +4 -3
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/RECORD +303 -449
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/WHEEL +2 -1
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/entry_points.txt +8 -2
- qiskit/assembler/__init__.py +0 -42
- qiskit/assembler/assemble_circuits.py +0 -451
- qiskit/assembler/assemble_schedules.py +0 -367
- qiskit/assembler/disassemble.py +0 -310
- qiskit/assembler/run_config.py +0 -77
- qiskit/circuit/bit.py +0 -106
- qiskit/circuit/classicalfunction/__init__.py +0 -152
- qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
- qiskit/circuit/classicalfunction/classical_element.py +0 -54
- qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
- qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
- qiskit/circuit/classicalfunction/exceptions.py +0 -41
- qiskit/circuit/classicalfunction/types.py +0 -18
- qiskit/circuit/classicalfunction/utils.py +0 -91
- qiskit/circuit/classicalregister.py +0 -57
- qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
- qiskit/circuit/quantumregister.py +0 -75
- qiskit/circuit/register.py +0 -246
- qiskit/compiler/assembler.py +0 -689
- qiskit/compiler/scheduler.py +0 -109
- qiskit/compiler/sequencer.py +0 -71
- qiskit/primitives/backend_estimator.py +0 -486
- qiskit/primitives/backend_sampler.py +0 -222
- qiskit/primitives/estimator.py +0 -172
- qiskit/primitives/sampler.py +0 -162
- qiskit/providers/backend_compat.py +0 -507
- qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
- qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
- qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
- qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
- qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
- qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
- qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
- qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
- qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
- qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
- qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
- qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
- qiskit/providers/fake_provider/fake_1q.py +0 -91
- qiskit/providers/fake_provider/fake_backend.py +0 -165
- qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
- qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
- qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
- qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
- qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
- qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
- qiskit/providers/models/__init__.py +0 -89
- qiskit/providers/models/backendconfiguration.py +0 -1040
- qiskit/providers/models/backendproperties.py +0 -535
- qiskit/providers/models/backendstatus.py +0 -104
- qiskit/providers/models/jobstatus.py +0 -77
- qiskit/providers/models/pulsedefaults.py +0 -305
- qiskit/providers/provider.py +0 -95
- qiskit/pulse/__init__.py +0 -158
- qiskit/pulse/builder.py +0 -2262
- qiskit/pulse/calibration_entries.py +0 -381
- qiskit/pulse/channels.py +0 -227
- qiskit/pulse/configuration.py +0 -245
- qiskit/pulse/exceptions.py +0 -45
- qiskit/pulse/filters.py +0 -309
- qiskit/pulse/instruction_schedule_map.py +0 -424
- qiskit/pulse/instructions/__init__.py +0 -67
- qiskit/pulse/instructions/acquire.py +0 -150
- qiskit/pulse/instructions/delay.py +0 -71
- qiskit/pulse/instructions/directives.py +0 -154
- qiskit/pulse/instructions/frequency.py +0 -135
- qiskit/pulse/instructions/instruction.py +0 -270
- qiskit/pulse/instructions/phase.py +0 -152
- qiskit/pulse/instructions/play.py +0 -99
- qiskit/pulse/instructions/reference.py +0 -100
- qiskit/pulse/instructions/snapshot.py +0 -82
- qiskit/pulse/library/__init__.py +0 -97
- qiskit/pulse/library/continuous.py +0 -430
- qiskit/pulse/library/pulse.py +0 -148
- qiskit/pulse/library/samplers/__init__.py +0 -15
- qiskit/pulse/library/samplers/decorators.py +0 -295
- qiskit/pulse/library/samplers/strategies.py +0 -71
- qiskit/pulse/library/symbolic_pulses.py +0 -1989
- qiskit/pulse/library/waveform.py +0 -136
- qiskit/pulse/macros.py +0 -262
- qiskit/pulse/parameter_manager.py +0 -445
- qiskit/pulse/parser.py +0 -314
- qiskit/pulse/reference_manager.py +0 -58
- qiskit/pulse/schedule.py +0 -1854
- qiskit/pulse/transforms/__init__.py +0 -106
- qiskit/pulse/transforms/alignments.py +0 -406
- qiskit/pulse/transforms/base_transforms.py +0 -71
- qiskit/pulse/transforms/canonicalization.py +0 -498
- qiskit/pulse/transforms/dag.py +0 -122
- qiskit/pulse/utils.py +0 -149
- qiskit/qobj/__init__.py +0 -75
- qiskit/qobj/common.py +0 -81
- qiskit/qobj/converters/__init__.py +0 -18
- qiskit/qobj/converters/lo_config.py +0 -177
- qiskit/qobj/converters/pulse_instruction.py +0 -897
- qiskit/qobj/pulse_qobj.py +0 -709
- qiskit/qobj/qasm_qobj.py +0 -708
- qiskit/qobj/utils.py +0 -46
- qiskit/result/mitigation/base_readout_mitigator.py +0 -79
- qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
- qiskit/result/mitigation/local_readout_mitigator.py +0 -328
- qiskit/result/mitigation/utils.py +0 -217
- qiskit/scheduler/__init__.py +0 -40
- qiskit/scheduler/config.py +0 -37
- qiskit/scheduler/lowering.py +0 -187
- qiskit/scheduler/methods/__init__.py +0 -15
- qiskit/scheduler/methods/basic.py +0 -140
- qiskit/scheduler/schedule_circuit.py +0 -69
- qiskit/scheduler/sequence.py +0 -104
- qiskit/transpiler/passes/calibration/__init__.py +0 -17
- qiskit/transpiler/passes/calibration/base_builder.py +0 -79
- qiskit/transpiler/passes/calibration/builders.py +0 -20
- qiskit/transpiler/passes/calibration/exceptions.py +0 -22
- qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
- qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
- qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
- qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
- qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
- qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
- qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
- qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
- qiskit/transpiler/passes/scheduling/alap.py +0 -153
- qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
- qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
- qiskit/transpiler/passes/scheduling/asap.py +0 -175
- qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
- qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
- qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
- qiskit/utils/deprecate_pulse.py +0 -119
- qiskit/utils/multiprocessing.py +0 -56
- qiskit/visualization/pulse_v2/__init__.py +0 -21
- qiskit/visualization/pulse_v2/core.py +0 -901
- qiskit/visualization/pulse_v2/device_info.py +0 -173
- qiskit/visualization/pulse_v2/drawings.py +0 -253
- qiskit/visualization/pulse_v2/events.py +0 -254
- qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
- qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
- qiskit/visualization/pulse_v2/generators/chart.py +0 -208
- qiskit/visualization/pulse_v2/generators/frame.py +0 -436
- qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
- qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
- qiskit/visualization/pulse_v2/interface.py +0 -459
- qiskit/visualization/pulse_v2/layouts.py +0 -387
- qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
- qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
- qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
- qiskit/visualization/pulse_v2/stylesheet.py +0 -312
- qiskit/visualization/pulse_v2/types.py +0 -242
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info/licenses}/LICENSE.txt +0 -0
- {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/top_level.txt +0 -0
qiskit/circuit/instruction.py
CHANGED
@@ -34,21 +34,17 @@ The circuit itself keeps this context.
|
|
34
34
|
from __future__ import annotations
|
35
35
|
|
36
36
|
import copy
|
37
|
-
import warnings
|
38
37
|
from itertools import zip_longest
|
39
38
|
import math
|
40
|
-
from typing import
|
39
|
+
from typing import Type
|
41
40
|
|
42
41
|
import numpy
|
43
42
|
|
44
43
|
from qiskit.circuit.exceptions import CircuitError
|
45
|
-
from qiskit.circuit.classicalregister import ClassicalRegister, Clbit
|
46
|
-
from qiskit.qobj.qasm_qobj import QasmQobjInstruction
|
47
44
|
from qiskit.circuit.parameter import ParameterExpression
|
48
45
|
from qiskit.circuit.operation import Operation
|
49
46
|
|
50
47
|
from qiskit.circuit.annotated_operation import AnnotatedOperation, InverseModifier
|
51
|
-
from qiskit.utils import deprecate_func
|
52
48
|
|
53
49
|
_CUTOFF_PRECISION = 1e-10
|
54
50
|
|
@@ -61,7 +57,7 @@ class Instruction(Operation):
|
|
61
57
|
_directive = False
|
62
58
|
_standard_gate = None
|
63
59
|
|
64
|
-
def __init__(self, name, num_qubits, num_clbits, params,
|
60
|
+
def __init__(self, name, num_qubits, num_clbits, params, label=None):
|
65
61
|
"""Create a new instruction.
|
66
62
|
|
67
63
|
.. deprecated:: 1.3
|
@@ -75,9 +71,6 @@ class Instruction(Operation):
|
|
75
71
|
num_clbits (int): instruction's clbit width
|
76
72
|
params (list[int|float|complex|str|ndarray|list|ParameterExpression]):
|
77
73
|
list of parameters
|
78
|
-
duration (int|float): (DEPRECATED) instruction's duration. it must be
|
79
|
-
an integer if ``unit`` is ``'dt'``
|
80
|
-
unit (str): (DEPRECATED) time unit of duration
|
81
74
|
label (str or None): An optional label for identifying the instruction.
|
82
75
|
|
83
76
|
Raises:
|
@@ -103,30 +96,9 @@ class Instruction(Operation):
|
|
103
96
|
if label is not None and not isinstance(label, str):
|
104
97
|
raise TypeError("label expects a string or None")
|
105
98
|
self._label = label
|
106
|
-
# tuple (ClassicalRegister, int), tuple (Clbit, bool) or tuple (Clbit, int)
|
107
|
-
# when the instruction has a conditional ("if")
|
108
|
-
self._condition = None
|
109
99
|
# list of instructions (and their contexts) that this instruction is composed of
|
110
100
|
# empty definition means opaque or fundamental instruction
|
111
101
|
self._definition = None
|
112
|
-
if duration is not None:
|
113
|
-
warnings.warn(
|
114
|
-
"Setting a custom duration per instruction is deprecated as of Qiskit "
|
115
|
-
"1.3.0. It will be removed in Qiskit 2.0.0. An instruction's duration "
|
116
|
-
"is defined in a backend's Target object.",
|
117
|
-
DeprecationWarning,
|
118
|
-
stacklevel=2,
|
119
|
-
)
|
120
|
-
self._duration = duration
|
121
|
-
if unit is not None and unit != "dt":
|
122
|
-
warnings.warn(
|
123
|
-
"Setting a custom unit for duration per instruction is deprecated as of Qiskit "
|
124
|
-
"1.3.0. It will be removed in Qiskit 2.0.0. An instruction's duration "
|
125
|
-
"is defined in a backend's Target object which has a fixed unit in seconds.",
|
126
|
-
DeprecationWarning,
|
127
|
-
stacklevel=2,
|
128
|
-
)
|
129
|
-
self._unit = unit
|
130
102
|
|
131
103
|
self.params = params # must be at last (other properties may be required for validation)
|
132
104
|
|
@@ -181,16 +153,6 @@ class Instruction(Operation):
|
|
181
153
|
"""
|
182
154
|
return self.copy()
|
183
155
|
|
184
|
-
@property
|
185
|
-
@deprecate_func(since="1.3.0", removal_timeline="in 2.0.0", is_property=True)
|
186
|
-
def condition(self):
|
187
|
-
"""The classical condition on the instruction."""
|
188
|
-
return self._condition
|
189
|
-
|
190
|
-
@condition.setter
|
191
|
-
def condition(self, condition):
|
192
|
-
self._condition = condition
|
193
|
-
|
194
156
|
def __eq__(self, other):
|
195
157
|
"""Two instructions are the same if they have the same name,
|
196
158
|
same dimensions, and same params.
|
@@ -363,64 +325,6 @@ class Instruction(Operation):
|
|
363
325
|
|
364
326
|
sel.add_equivalence(self, decomposition)
|
365
327
|
|
366
|
-
@property
|
367
|
-
@deprecate_func(since="1.3.0", removal_timeline="in Qiskit 2.0.0", is_property=True)
|
368
|
-
def duration(self):
|
369
|
-
"""Get the duration."""
|
370
|
-
return self._duration
|
371
|
-
|
372
|
-
@duration.setter
|
373
|
-
def duration(self, value):
|
374
|
-
"""Set the duration."""
|
375
|
-
self._duration = value
|
376
|
-
|
377
|
-
@property
|
378
|
-
@deprecate_func(since="1.3.0", removal_timeline="in Qiskit 2.0.0", is_property=True)
|
379
|
-
def unit(self):
|
380
|
-
"""Get the time unit of duration."""
|
381
|
-
return self._unit
|
382
|
-
|
383
|
-
@unit.setter
|
384
|
-
def unit(self, value):
|
385
|
-
"""Set the time unit of duration."""
|
386
|
-
self._unit = value
|
387
|
-
|
388
|
-
@deprecate_func(
|
389
|
-
since="1.2",
|
390
|
-
removal_timeline="in the 2.0 release",
|
391
|
-
additional_msg="The `Qobj` class and related functionality are part of the deprecated "
|
392
|
-
"`BackendV1` workflow, and no longer necessary for `BackendV2`. If a user "
|
393
|
-
"workflow requires `Qobj` it likely relies on deprecated functionality and "
|
394
|
-
"should be updated to use `BackendV2`.",
|
395
|
-
)
|
396
|
-
def assemble(self):
|
397
|
-
"""Assemble a QasmQobjInstruction"""
|
398
|
-
return self._assemble()
|
399
|
-
|
400
|
-
def _assemble(self):
|
401
|
-
with warnings.catch_warnings():
|
402
|
-
# The class QasmQobjInstruction is deprecated
|
403
|
-
warnings.filterwarnings("ignore", category=DeprecationWarning, module="qiskit")
|
404
|
-
instruction = QasmQobjInstruction(name=self.name)
|
405
|
-
# Evaluate parameters
|
406
|
-
if self.params:
|
407
|
-
params = [x.evalf(x) if hasattr(x, "evalf") else x for x in self.params]
|
408
|
-
instruction.params = params
|
409
|
-
# Add placeholder for qarg and carg params
|
410
|
-
if self.num_qubits:
|
411
|
-
instruction.qubits = list(range(self.num_qubits))
|
412
|
-
if self.num_clbits:
|
413
|
-
instruction.memory = list(range(self.num_clbits))
|
414
|
-
# Add label if defined
|
415
|
-
if self.label:
|
416
|
-
instruction.label = self.label
|
417
|
-
# Add condition parameters for assembler. This is needed to convert
|
418
|
-
# to a qobj conditional instruction at assemble time and after
|
419
|
-
# conversion will be deleted by the assembler.
|
420
|
-
if self._condition:
|
421
|
-
instruction._condition = self._condition
|
422
|
-
return instruction
|
423
|
-
|
424
328
|
@property
|
425
329
|
def label(self) -> str:
|
426
330
|
"""Return instruction label"""
|
@@ -524,27 +428,6 @@ class Instruction(Operation):
|
|
524
428
|
inverse_gate.definition = inverse_definition
|
525
429
|
return inverse_gate
|
526
430
|
|
527
|
-
@deprecate_func(since="1.3.0", removal_timeline="in 2.0.0")
|
528
|
-
def c_if(self, classical, val):
|
529
|
-
"""Set a classical equality condition on this instruction between the register or cbit
|
530
|
-
``classical`` and value ``val``.
|
531
|
-
|
532
|
-
.. note::
|
533
|
-
|
534
|
-
This is a setter method, not an additive one. Calling this multiple times will silently
|
535
|
-
override any previously set condition; it does not stack.
|
536
|
-
"""
|
537
|
-
if not isinstance(classical, (ClassicalRegister, Clbit)):
|
538
|
-
raise CircuitError("c_if must be used with a classical register or classical bit")
|
539
|
-
if val < 0:
|
540
|
-
raise CircuitError("condition value should be non-negative")
|
541
|
-
if isinstance(classical, Clbit):
|
542
|
-
# Casting the conditional value as Boolean when
|
543
|
-
# the classical condition is on a classical bit.
|
544
|
-
val = bool(val)
|
545
|
-
self._condition = (classical, val)
|
546
|
-
return self
|
547
|
-
|
548
431
|
def copy(self, name=None):
|
549
432
|
"""
|
550
433
|
Copy of the instruction.
|
@@ -611,12 +494,6 @@ class Instruction(Operation):
|
|
611
494
|
def repeat(self, n):
|
612
495
|
"""Creates an instruction with ``self`` repeated :math`n` times.
|
613
496
|
|
614
|
-
If this operation has a conditional, the output instruction will have the same conditional
|
615
|
-
and the inner repeated operations will be unconditional; instructions within a compound
|
616
|
-
definition cannot be conditioned on registers within Qiskit's data model. This means that
|
617
|
-
it is not valid to apply a repeated instruction to a clbit that it both writes to and reads
|
618
|
-
from in its condition.
|
619
|
-
|
620
497
|
Args:
|
621
498
|
n (int): Number of times to repeat the instruction
|
622
499
|
|
@@ -640,28 +517,12 @@ class Instruction(Operation):
|
|
640
517
|
qargs = tuple(qc.qubits)
|
641
518
|
cargs = tuple(qc.clbits)
|
642
519
|
base = self.copy()
|
643
|
-
if self._condition:
|
644
|
-
# Condition is handled on the outer instruction.
|
645
|
-
base = base.to_mutable()
|
646
|
-
base.condition = None
|
647
520
|
for _ in [None] * n:
|
648
521
|
qc._append(CircuitInstruction(base, qargs, cargs))
|
649
522
|
|
650
523
|
instruction.definition = qc
|
651
|
-
if self._condition:
|
652
|
-
instruction = instruction.c_if(*self._condition)
|
653
524
|
return instruction
|
654
525
|
|
655
|
-
@property
|
656
|
-
@deprecate_func(since="1.3.0", removal_timeline="in 2.0.0", is_property=True)
|
657
|
-
def condition_bits(self) -> List[Clbit]:
|
658
|
-
"""Get Clbits in condition."""
|
659
|
-
from qiskit.circuit.controlflow import condition_resources # pylint: disable=cyclic-import
|
660
|
-
|
661
|
-
if self._condition is None:
|
662
|
-
return []
|
663
|
-
return list(condition_resources(self._condition).clbits)
|
664
|
-
|
665
526
|
@property
|
666
527
|
def name(self):
|
667
528
|
"""Return the name."""
|
qiskit/circuit/instructionset.py
CHANGED
@@ -17,14 +17,15 @@ Instruction collection.
|
|
17
17
|
from __future__ import annotations
|
18
18
|
|
19
19
|
from collections.abc import MutableSequence
|
20
|
-
from typing import Callable
|
20
|
+
from typing import Callable, TYPE_CHECKING
|
21
21
|
|
22
22
|
from qiskit.circuit.exceptions import CircuitError
|
23
|
-
from qiskit.utils import deprecate_func
|
24
|
-
from .classicalregister import Clbit, ClassicalRegister
|
25
23
|
from .operation import Operation
|
26
24
|
from .quantumcircuitdata import CircuitInstruction
|
27
25
|
|
26
|
+
if TYPE_CHECKING:
|
27
|
+
from qiskit.circuit import Clbit, ClassicalRegister
|
28
|
+
|
28
29
|
|
29
30
|
class InstructionSet:
|
30
31
|
"""Instruction collection, and their contexts."""
|
@@ -50,9 +51,9 @@ class InstructionSet:
|
|
50
51
|
|
51
52
|
.. note::
|
52
53
|
|
53
|
-
The callback ``resource_requester``
|
54
|
-
|
55
|
-
|
54
|
+
The callback ``resource_requester`` assumes that a call implies that the
|
55
|
+
resource will now be used. It may throw an error if the resource is not valid
|
56
|
+
for usage.
|
56
57
|
|
57
58
|
"""
|
58
59
|
self._instructions: list[
|
@@ -106,54 +107,6 @@ class InstructionSet:
|
|
106
107
|
)
|
107
108
|
return self
|
108
109
|
|
109
|
-
@deprecate_func(since="1.3.0", removal_timeline="in 2.0.0")
|
110
|
-
def c_if(self, classical: Clbit | ClassicalRegister | int, val: int) -> "InstructionSet":
|
111
|
-
"""Set a classical equality condition on all the instructions in this set between the
|
112
|
-
:obj:`.ClassicalRegister` or :obj:`.Clbit` ``classical`` and value ``val``.
|
113
|
-
|
114
|
-
.. note::
|
115
|
-
You should prefer to use the :meth:`.QuantumCircuit.if_test` builder interface, rather
|
116
|
-
than using this method.
|
117
|
-
|
118
|
-
.. note::
|
119
|
-
|
120
|
-
This is a setter method, not an additive one. Calling this multiple times will silently
|
121
|
-
override any previously set condition on any of the contained instructions; it does not
|
122
|
-
stack.
|
123
|
-
|
124
|
-
Args:
|
125
|
-
classical: the classical resource the equality condition should be on. If this is given
|
126
|
-
as an integer, it will be resolved into a :obj:`.Clbit` using the same conventions
|
127
|
-
as the circuit these instructions are attached to.
|
128
|
-
val: the value the classical resource should be equal to.
|
129
|
-
|
130
|
-
Returns:
|
131
|
-
This same instance of :obj:`.InstructionSet`, but now mutated to have the given equality
|
132
|
-
condition.
|
133
|
-
|
134
|
-
Raises:
|
135
|
-
CircuitError: if the passed classical resource is invalid, or otherwise not resolvable
|
136
|
-
to a concrete resource that these instructions are permitted to access.
|
137
|
-
"""
|
138
|
-
if self._requester is None and not isinstance(classical, (Clbit, ClassicalRegister)):
|
139
|
-
raise CircuitError(
|
140
|
-
"Cannot pass an index as a condition variable without specifying a requester"
|
141
|
-
" when creating this InstructionSet."
|
142
|
-
)
|
143
|
-
if self._requester is not None:
|
144
|
-
classical = self._requester(classical)
|
145
|
-
for idx, instruction in enumerate(self._instructions):
|
146
|
-
if isinstance(instruction, CircuitInstruction):
|
147
|
-
updated = instruction.operation.c_if(classical, val)
|
148
|
-
self._instructions[idx] = instruction.replace(operation=updated)
|
149
|
-
else:
|
150
|
-
data, idx = instruction
|
151
|
-
instruction = data[idx]
|
152
|
-
data[idx] = instruction.replace(
|
153
|
-
operation=instruction.operation.c_if(classical, val)
|
154
|
-
)
|
155
|
-
return self
|
156
|
-
|
157
110
|
# Legacy support for properties. Added in Terra 0.21 to support the internal switch in
|
158
111
|
# `QuantumCircuit.data` from the 3-tuple to `CircuitInstruction`.
|
159
112
|
|