qiskit 1.4.1__cp39-abi3-win_amd64.whl → 2.0.0__cp39-abi3-win_amd64.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.pyd +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 +1 -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
@@ -21,7 +21,6 @@ import numpy
|
|
21
21
|
from qiskit.circuit.controlledgate import ControlledGate
|
22
22
|
from qiskit.circuit.gate import Gate
|
23
23
|
from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
|
24
|
-
from qiskit.circuit.quantumregister import QuantumRegister
|
25
24
|
from qiskit._accelerate.circuit import StandardGate
|
26
25
|
|
27
26
|
|
@@ -92,12 +91,9 @@ class U3Gate(Gate):
|
|
92
91
|
phi: ParameterValueType,
|
93
92
|
lam: ParameterValueType,
|
94
93
|
label: Optional[str] = None,
|
95
|
-
*,
|
96
|
-
duration=None,
|
97
|
-
unit="dt",
|
98
94
|
):
|
99
95
|
"""Create new U3 gate."""
|
100
|
-
super().__init__("u3", 1, [theta, phi, lam], label=label
|
96
|
+
super().__init__("u3", 1, [theta, phi, lam], label=label)
|
101
97
|
|
102
98
|
def inverse(self, annotated: bool = False):
|
103
99
|
r"""Return inverted U3 gate.
|
@@ -155,7 +151,7 @@ class U3Gate(Gate):
|
|
155
151
|
return gate
|
156
152
|
|
157
153
|
def _define(self):
|
158
|
-
from qiskit.circuit
|
154
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
159
155
|
|
160
156
|
q = QuantumRegister(1, "q")
|
161
157
|
qc = QuantumCircuit(q, name=self.name)
|
@@ -271,8 +267,6 @@ class CU3Gate(ControlledGate):
|
|
271
267
|
label: Optional[str] = None,
|
272
268
|
ctrl_state: Optional[Union[str, int]] = None,
|
273
269
|
*,
|
274
|
-
duration=None,
|
275
|
-
unit="dt",
|
276
270
|
_base_label=None,
|
277
271
|
):
|
278
272
|
"""Create new CU3 gate."""
|
@@ -284,8 +278,6 @@ class CU3Gate(ControlledGate):
|
|
284
278
|
label=label,
|
285
279
|
ctrl_state=ctrl_state,
|
286
280
|
base_gate=U3Gate(theta, phi, lam, label=_base_label),
|
287
|
-
duration=duration,
|
288
|
-
unit=unit,
|
289
281
|
)
|
290
282
|
|
291
283
|
def _define(self):
|
@@ -300,7 +292,7 @@ class CU3Gate(ControlledGate):
|
|
300
292
|
}
|
301
293
|
"""
|
302
294
|
# pylint: disable=cyclic-import
|
303
|
-
from qiskit.circuit
|
295
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
304
296
|
from .u1 import U1Gate
|
305
297
|
from .x import CXGate # pylint: disable=cyclic-import
|
306
298
|
|
@@ -17,7 +17,6 @@ from math import pi
|
|
17
17
|
import numpy
|
18
18
|
from qiskit.circuit.controlledgate import ControlledGate
|
19
19
|
from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
|
20
|
-
from qiskit.circuit.quantumregister import QuantumRegister
|
21
20
|
from qiskit.circuit._utils import _ctrl_state_to_int, with_gate_array, with_controlled_gate_array
|
22
21
|
from qiskit._accelerate.circuit import StandardGate
|
23
22
|
from qiskit.utils.deprecation import deprecate_func
|
@@ -75,9 +74,9 @@ class XGate(SingletonGate):
|
|
75
74
|
|
76
75
|
_standard_gate = StandardGate.XGate
|
77
76
|
|
78
|
-
def __init__(self, label: Optional[str] = None
|
77
|
+
def __init__(self, label: Optional[str] = None):
|
79
78
|
"""Create new X gate."""
|
80
|
-
super().__init__("x", 1, [], label=label
|
79
|
+
super().__init__("x", 1, [], label=label)
|
81
80
|
|
82
81
|
_singleton_lookup_key = stdlib_singleton_key()
|
83
82
|
|
@@ -86,7 +85,7 @@ class XGate(SingletonGate):
|
|
86
85
|
gate x a { u3(pi,0,pi) a; }
|
87
86
|
"""
|
88
87
|
# pylint: disable=cyclic-import
|
89
|
-
from qiskit.circuit
|
88
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
90
89
|
from .u3 import U3Gate
|
91
90
|
|
92
91
|
q = QuantumRegister(1, "q")
|
@@ -225,8 +224,6 @@ class CXGate(SingletonControlledGate):
|
|
225
224
|
label: Optional[str] = None,
|
226
225
|
ctrl_state: Optional[Union[str, int]] = None,
|
227
226
|
*,
|
228
|
-
duration=None,
|
229
|
-
unit="dt",
|
230
227
|
_base_label=None,
|
231
228
|
):
|
232
229
|
"""Create new CX gate."""
|
@@ -239,8 +236,6 @@ class CXGate(SingletonControlledGate):
|
|
239
236
|
ctrl_state=ctrl_state,
|
240
237
|
base_gate=XGate(label=_base_label),
|
241
238
|
_base_label=_base_label,
|
242
|
-
duration=duration,
|
243
|
-
unit=unit,
|
244
239
|
)
|
245
240
|
|
246
241
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
|
@@ -306,8 +301,7 @@ class CCXGate(SingletonControlledGate):
|
|
306
301
|
r"""CCX gate, also known as Toffoli gate.
|
307
302
|
|
308
303
|
Can be applied to a :class:`~qiskit.circuit.QuantumCircuit`
|
309
|
-
with the :meth:`~qiskit.circuit.QuantumCircuit.ccx`
|
310
|
-
:meth:`~qiskit.circuit.QuantumCircuit.toffoli` methods.
|
304
|
+
with the :meth:`~qiskit.circuit.QuantumCircuit.ccx` method.
|
311
305
|
|
312
306
|
**Circuit symbol:**
|
313
307
|
|
@@ -378,8 +372,6 @@ class CCXGate(SingletonControlledGate):
|
|
378
372
|
label: Optional[str] = None,
|
379
373
|
ctrl_state: Optional[Union[str, int]] = None,
|
380
374
|
*,
|
381
|
-
duration=None,
|
382
|
-
unit="dt",
|
383
375
|
_base_label=None,
|
384
376
|
):
|
385
377
|
"""Create new CCX gate."""
|
@@ -391,8 +383,6 @@ class CCXGate(SingletonControlledGate):
|
|
391
383
|
label=label,
|
392
384
|
ctrl_state=ctrl_state,
|
393
385
|
base_gate=XGate(label=_base_label),
|
394
|
-
duration=duration,
|
395
|
-
unit=unit,
|
396
386
|
)
|
397
387
|
|
398
388
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=2)
|
@@ -407,7 +397,7 @@ class CCXGate(SingletonControlledGate):
|
|
407
397
|
t a; tdg b; cx a,b;}
|
408
398
|
"""
|
409
399
|
# pylint: disable=cyclic-import
|
410
|
-
from qiskit.circuit
|
400
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
411
401
|
from .h import HGate
|
412
402
|
from .t import TGate, TdgGate
|
413
403
|
|
@@ -528,9 +518,9 @@ class RCCXGate(SingletonGate):
|
|
528
518
|
|
529
519
|
_standard_gate = StandardGate.RCCXGate
|
530
520
|
|
531
|
-
def __init__(self, label: Optional[str] = None
|
521
|
+
def __init__(self, label: Optional[str] = None):
|
532
522
|
"""Create a new simplified CCX gate."""
|
533
|
-
super().__init__("rccx", 3, [], label=label
|
523
|
+
super().__init__("rccx", 3, [], label=label)
|
534
524
|
|
535
525
|
_singleton_lookup_key = stdlib_singleton_key()
|
536
526
|
|
@@ -549,7 +539,7 @@ class RCCXGate(SingletonGate):
|
|
549
539
|
}
|
550
540
|
"""
|
551
541
|
# pylint: disable=cyclic-import
|
552
|
-
from qiskit.circuit
|
542
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
553
543
|
from .u1 import U1Gate
|
554
544
|
from .u2 import U2Gate
|
555
545
|
|
@@ -592,8 +582,6 @@ class C3SXGate(SingletonControlledGate):
|
|
592
582
|
label: Optional[str] = None,
|
593
583
|
ctrl_state: Optional[Union[str, int]] = None,
|
594
584
|
*,
|
595
|
-
duration=None,
|
596
|
-
unit="dt",
|
597
585
|
_base_label=None,
|
598
586
|
):
|
599
587
|
"""Create a new 3-qubit controlled sqrt-X gate.
|
@@ -613,8 +601,6 @@ class C3SXGate(SingletonControlledGate):
|
|
613
601
|
label=label,
|
614
602
|
ctrl_state=ctrl_state,
|
615
603
|
base_gate=SXGate(label=_base_label),
|
616
|
-
duration=duration,
|
617
|
-
unit=unit,
|
618
604
|
)
|
619
605
|
|
620
606
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=3)
|
@@ -639,7 +625,7 @@ class C3SXGate(SingletonControlledGate):
|
|
639
625
|
}
|
640
626
|
"""
|
641
627
|
# pylint: disable=cyclic-import
|
642
|
-
from qiskit.circuit
|
628
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
643
629
|
from .u1 import CU1Gate
|
644
630
|
from .h import HGate
|
645
631
|
|
@@ -699,8 +685,6 @@ class C3XGate(SingletonControlledGate):
|
|
699
685
|
ctrl_state: Optional[Union[str, int]] = None,
|
700
686
|
*,
|
701
687
|
_base_label=None,
|
702
|
-
duration=None,
|
703
|
-
unit="dt",
|
704
688
|
):
|
705
689
|
"""Create a new 3-qubit controlled X gate."""
|
706
690
|
super().__init__(
|
@@ -711,8 +695,6 @@ class C3XGate(SingletonControlledGate):
|
|
711
695
|
label=label,
|
712
696
|
ctrl_state=ctrl_state,
|
713
697
|
base_gate=XGate(label=_base_label),
|
714
|
-
duration=duration,
|
715
|
-
unit=unit,
|
716
698
|
)
|
717
699
|
|
718
700
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=3)
|
@@ -755,7 +737,7 @@ class C3XGate(SingletonControlledGate):
|
|
755
737
|
h d;
|
756
738
|
}
|
757
739
|
"""
|
758
|
-
from qiskit.circuit
|
740
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
759
741
|
|
760
742
|
q = QuantumRegister(4, name="q")
|
761
743
|
qc = QuantumCircuit(q, name=self.name)
|
@@ -882,9 +864,9 @@ class RC3XGate(SingletonGate):
|
|
882
864
|
|
883
865
|
_standard_gate = StandardGate.RC3XGate
|
884
866
|
|
885
|
-
def __init__(self, label: Optional[str] = None
|
867
|
+
def __init__(self, label: Optional[str] = None):
|
886
868
|
"""Create a new RC3X gate."""
|
887
|
-
super().__init__("rcccx", 4, [], label=label
|
869
|
+
super().__init__("rcccx", 4, [], label=label)
|
888
870
|
|
889
871
|
_singleton_lookup_key = stdlib_singleton_key()
|
890
872
|
|
@@ -912,7 +894,7 @@ class RC3XGate(SingletonGate):
|
|
912
894
|
}
|
913
895
|
"""
|
914
896
|
# pylint: disable=cyclic-import
|
915
|
-
from qiskit.circuit
|
897
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
916
898
|
from .u1 import U1Gate
|
917
899
|
from .u2 import U2Gate
|
918
900
|
|
@@ -964,13 +946,9 @@ class C4XGate(SingletonControlledGate):
|
|
964
946
|
label: Optional[str] = None,
|
965
947
|
ctrl_state: Optional[Union[str, int]] = None,
|
966
948
|
*,
|
967
|
-
duration=None,
|
968
|
-
unit="dt",
|
969
949
|
_base_label=None,
|
970
950
|
):
|
971
951
|
"""Create a new 4-qubit controlled X gate."""
|
972
|
-
if unit is None:
|
973
|
-
unit = "dt"
|
974
952
|
super().__init__(
|
975
953
|
"mcx",
|
976
954
|
5,
|
@@ -979,8 +957,6 @@ class C4XGate(SingletonControlledGate):
|
|
979
957
|
label=label,
|
980
958
|
ctrl_state=ctrl_state,
|
981
959
|
base_gate=XGate(label=_base_label),
|
982
|
-
duration=duration,
|
983
|
-
unit=unit,
|
984
960
|
)
|
985
961
|
|
986
962
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=4)
|
@@ -1014,7 +990,7 @@ class C4XGate(SingletonControlledGate):
|
|
1014
990
|
}
|
1015
991
|
"""
|
1016
992
|
# pylint: disable=cyclic-import
|
1017
|
-
from qiskit.circuit
|
993
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
1018
994
|
from .u1 import CU1Gate
|
1019
995
|
from .h import HGate
|
1020
996
|
|
@@ -1105,8 +1081,6 @@ class MCXGate(ControlledGate):
|
|
1105
1081
|
label: Optional[str] = None,
|
1106
1082
|
ctrl_state: Optional[Union[str, int]] = None,
|
1107
1083
|
*,
|
1108
|
-
duration=None,
|
1109
|
-
unit="dt",
|
1110
1084
|
_base_label=None,
|
1111
1085
|
):
|
1112
1086
|
"""Create a new MCX instance.
|
@@ -1127,8 +1101,6 @@ class MCXGate(ControlledGate):
|
|
1127
1101
|
label=label,
|
1128
1102
|
ctrl_state=ctrl_state,
|
1129
1103
|
_base_label=_base_label,
|
1130
|
-
duration=duration,
|
1131
|
-
unit=unit,
|
1132
1104
|
)
|
1133
1105
|
return gate
|
1134
1106
|
return super().__new__(cls)
|
@@ -1139,8 +1111,6 @@ class MCXGate(ControlledGate):
|
|
1139
1111
|
label: Optional[str] = None,
|
1140
1112
|
ctrl_state: Optional[Union[str, int]] = None,
|
1141
1113
|
*,
|
1142
|
-
duration=None,
|
1143
|
-
unit="dt",
|
1144
1114
|
_name="mcx",
|
1145
1115
|
_base_label=None,
|
1146
1116
|
):
|
@@ -1256,8 +1226,6 @@ class MCXGrayCode(MCXGate):
|
|
1256
1226
|
label: Optional[str] = None,
|
1257
1227
|
ctrl_state: Optional[Union[str, int]] = None,
|
1258
1228
|
*,
|
1259
|
-
duration=None,
|
1260
|
-
unit="dt",
|
1261
1229
|
_base_label=None,
|
1262
1230
|
):
|
1263
1231
|
"""Create a new MCXGrayCode instance"""
|
@@ -1270,15 +1238,11 @@ class MCXGrayCode(MCXGate):
|
|
1270
1238
|
label=label,
|
1271
1239
|
ctrl_state=ctrl_state,
|
1272
1240
|
_base_label=_base_label,
|
1273
|
-
duration=duration,
|
1274
|
-
unit=unit,
|
1275
1241
|
)
|
1276
1242
|
# if __new__ does not return the same type as cls, init is not called
|
1277
1243
|
gate.__init__(
|
1278
1244
|
label=label,
|
1279
1245
|
ctrl_state=ctrl_state,
|
1280
|
-
duration=duration,
|
1281
|
-
unit=unit,
|
1282
1246
|
)
|
1283
1247
|
return gate
|
1284
1248
|
return super().__new__(cls)
|
@@ -1355,8 +1319,6 @@ class MCXRecursive(MCXGate):
|
|
1355
1319
|
label: Optional[str] = None,
|
1356
1320
|
ctrl_state: Optional[Union[str, int]] = None,
|
1357
1321
|
*,
|
1358
|
-
duration=None,
|
1359
|
-
unit="dt",
|
1360
1322
|
_base_label=None,
|
1361
1323
|
):
|
1362
1324
|
super().__init__(
|
@@ -1364,8 +1326,6 @@ class MCXRecursive(MCXGate):
|
|
1364
1326
|
label=label,
|
1365
1327
|
ctrl_state=ctrl_state,
|
1366
1328
|
_name="mcx_recursive",
|
1367
|
-
duration=duration,
|
1368
|
-
unit=unit,
|
1369
1329
|
_base_label=None,
|
1370
1330
|
)
|
1371
1331
|
|
@@ -1408,8 +1368,6 @@ class MCXVChain(MCXGate):
|
|
1408
1368
|
label: Optional[str] = None,
|
1409
1369
|
ctrl_state: Optional[Union[str, int]] = None,
|
1410
1370
|
*,
|
1411
|
-
duration=None,
|
1412
|
-
unit="dt",
|
1413
1371
|
_base_label=None,
|
1414
1372
|
relative_phase: bool = False, # pylint: disable=unused-argument
|
1415
1373
|
action_only: bool = False, # pylint: disable=unused-argument
|
@@ -1424,8 +1382,6 @@ class MCXVChain(MCXGate):
|
|
1424
1382
|
label=label,
|
1425
1383
|
ctrl_state=ctrl_state,
|
1426
1384
|
_base_label=_base_label,
|
1427
|
-
duration=duration,
|
1428
|
-
unit=unit,
|
1429
1385
|
)
|
1430
1386
|
|
1431
1387
|
@deprecate_func(
|
@@ -1447,8 +1403,6 @@ class MCXVChain(MCXGate):
|
|
1447
1403
|
label: Optional[str] = None,
|
1448
1404
|
ctrl_state: Optional[Union[str, int]] = None,
|
1449
1405
|
*,
|
1450
|
-
duration=None,
|
1451
|
-
unit="dt",
|
1452
1406
|
_base_label=None,
|
1453
1407
|
relative_phase: bool = False,
|
1454
1408
|
action_only: bool = False,
|
@@ -1474,8 +1428,6 @@ class MCXVChain(MCXGate):
|
|
1474
1428
|
ctrl_state=ctrl_state,
|
1475
1429
|
_name="mcx_vchain",
|
1476
1430
|
_base_label=_base_label,
|
1477
|
-
duration=duration,
|
1478
|
-
unit=unit,
|
1479
1431
|
)
|
1480
1432
|
self._dirty_ancillas = dirty_ancillas
|
1481
1433
|
self._relative_phase = relative_phase
|
@@ -29,7 +29,7 @@ from qiskit.circuit.library.standard_gates.sx import SXdgGate, SXGate
|
|
29
29
|
from qiskit.circuit.library.standard_gates.x import CXGate
|
30
30
|
from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
|
31
31
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
32
|
-
from qiskit.circuit
|
32
|
+
from qiskit.circuit import QuantumRegister
|
33
33
|
from qiskit._accelerate.circuit import StandardGate
|
34
34
|
|
35
35
|
|
@@ -72,9 +72,6 @@ class XXMinusYYGate(Gate):
|
|
72
72
|
theta: ParameterValueType,
|
73
73
|
beta: ParameterValueType = 0,
|
74
74
|
label: Optional[str] = "(XX-YY)",
|
75
|
-
*,
|
76
|
-
duration=None,
|
77
|
-
unit="dt",
|
78
75
|
):
|
79
76
|
"""Create new XX-YY gate.
|
80
77
|
|
@@ -83,7 +80,7 @@ class XXMinusYYGate(Gate):
|
|
83
80
|
beta: The phase angle.
|
84
81
|
label: The label of the gate.
|
85
82
|
"""
|
86
|
-
super().__init__("xx_minus_yy", 2, [theta, beta], label=label
|
83
|
+
super().__init__("xx_minus_yy", 2, [theta, beta], label=label)
|
87
84
|
|
88
85
|
def _define(self):
|
89
86
|
"""
|
@@ -22,7 +22,7 @@ from typing import Optional
|
|
22
22
|
import numpy
|
23
23
|
|
24
24
|
from qiskit.circuit.gate import Gate
|
25
|
-
from qiskit.circuit
|
25
|
+
from qiskit.circuit import QuantumRegister
|
26
26
|
from qiskit.circuit.parameterexpression import ParameterValueType, ParameterExpression
|
27
27
|
from qiskit._accelerate.circuit import StandardGate
|
28
28
|
|
@@ -98,9 +98,6 @@ class XXPlusYYGate(Gate):
|
|
98
98
|
theta: ParameterValueType,
|
99
99
|
beta: ParameterValueType = 0,
|
100
100
|
label: Optional[str] = "(XX+YY)",
|
101
|
-
*,
|
102
|
-
duration=None,
|
103
|
-
unit="dt",
|
104
101
|
):
|
105
102
|
"""Create new XX+YY gate.
|
106
103
|
|
@@ -109,7 +106,7 @@ class XXPlusYYGate(Gate):
|
|
109
106
|
beta: The phase angle.
|
110
107
|
label: The label of the gate.
|
111
108
|
"""
|
112
|
-
super().__init__("xx_plus_yy", 2, [theta, beta], label=label
|
109
|
+
super().__init__("xx_plus_yy", 2, [theta, beta], label=label)
|
113
110
|
|
114
111
|
def _define(self):
|
115
112
|
"""
|
@@ -17,7 +17,6 @@ from typing import Optional, Union
|
|
17
17
|
|
18
18
|
# pylint: disable=cyclic-import
|
19
19
|
from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
|
20
|
-
from qiskit.circuit.quantumregister import QuantumRegister
|
21
20
|
from qiskit.circuit._utils import with_gate_array, with_controlled_gate_array
|
22
21
|
from qiskit._accelerate.circuit import StandardGate
|
23
22
|
|
@@ -73,15 +72,15 @@ class YGate(SingletonGate):
|
|
73
72
|
|
74
73
|
_standard_gate = StandardGate.YGate
|
75
74
|
|
76
|
-
def __init__(self, label: Optional[str] = None
|
75
|
+
def __init__(self, label: Optional[str] = None):
|
77
76
|
"""Create new Y gate."""
|
78
|
-
super().__init__("y", 1, [], label=label
|
77
|
+
super().__init__("y", 1, [], label=label)
|
79
78
|
|
80
79
|
_singleton_lookup_key = stdlib_singleton_key()
|
81
80
|
|
82
81
|
def _define(self):
|
83
82
|
# pylint: disable=cyclic-import
|
84
|
-
from qiskit.circuit
|
83
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
85
84
|
from .u3 import U3Gate
|
86
85
|
|
87
86
|
q = QuantumRegister(1, "q")
|
@@ -208,8 +207,6 @@ class CYGate(SingletonControlledGate):
|
|
208
207
|
label: Optional[str] = None,
|
209
208
|
ctrl_state: Optional[Union[str, int]] = None,
|
210
209
|
*,
|
211
|
-
duration=None,
|
212
|
-
unit="dt",
|
213
210
|
_base_label=None,
|
214
211
|
):
|
215
212
|
"""Create new CY gate."""
|
@@ -221,8 +218,6 @@ class CYGate(SingletonControlledGate):
|
|
221
218
|
label=label,
|
222
219
|
ctrl_state=ctrl_state,
|
223
220
|
base_gate=YGate(label=_base_label),
|
224
|
-
duration=duration,
|
225
|
-
unit=unit,
|
226
221
|
)
|
227
222
|
|
228
223
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
|
@@ -232,7 +227,7 @@ class CYGate(SingletonControlledGate):
|
|
232
227
|
gate cy a,b { sdg b; cx a,b; s b; }
|
233
228
|
"""
|
234
229
|
# pylint: disable=cyclic-import
|
235
|
-
from qiskit.circuit
|
230
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
236
231
|
from .s import SGate, SdgGate
|
237
232
|
from .x import CXGate
|
238
233
|
|
@@ -19,7 +19,6 @@ import numpy
|
|
19
19
|
|
20
20
|
from qiskit.circuit._utils import with_gate_array, with_controlled_gate_array
|
21
21
|
from qiskit.circuit.singleton import SingletonGate, SingletonControlledGate, stdlib_singleton_key
|
22
|
-
from qiskit.circuit.quantumregister import QuantumRegister
|
23
22
|
from qiskit._accelerate.circuit import StandardGate
|
24
23
|
|
25
24
|
from .p import PhaseGate
|
@@ -76,16 +75,15 @@ class ZGate(SingletonGate):
|
|
76
75
|
|
77
76
|
_standard_gate = StandardGate.ZGate
|
78
77
|
|
79
|
-
def __init__(self, label: Optional[str] = None
|
78
|
+
def __init__(self, label: Optional[str] = None):
|
80
79
|
"""Create new Z gate."""
|
81
|
-
super().__init__("z", 1, [], label=label
|
80
|
+
super().__init__("z", 1, [], label=label)
|
82
81
|
|
83
82
|
_singleton_lookup_key = stdlib_singleton_key()
|
84
83
|
|
85
84
|
def _define(self):
|
86
85
|
# pylint: disable=cyclic-import
|
87
|
-
from qiskit.circuit
|
88
|
-
|
86
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
89
87
|
from .u1 import U1Gate
|
90
88
|
|
91
89
|
q = QuantumRegister(1, "q")
|
@@ -191,8 +189,6 @@ class CZGate(SingletonControlledGate):
|
|
191
189
|
label: Optional[str] = None,
|
192
190
|
ctrl_state: Optional[Union[str, int]] = None,
|
193
191
|
*,
|
194
|
-
duration=None,
|
195
|
-
unit="dt",
|
196
192
|
_base_label=None,
|
197
193
|
):
|
198
194
|
"""Create new CZ gate."""
|
@@ -204,8 +200,6 @@ class CZGate(SingletonControlledGate):
|
|
204
200
|
num_ctrl_qubits=1,
|
205
201
|
ctrl_state=ctrl_state,
|
206
202
|
base_gate=ZGate(label=_base_label),
|
207
|
-
duration=duration,
|
208
|
-
unit=unit,
|
209
203
|
)
|
210
204
|
|
211
205
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=1)
|
@@ -215,7 +209,7 @@ class CZGate(SingletonControlledGate):
|
|
215
209
|
gate cz a,b { h b; cx a,b; h b; }
|
216
210
|
"""
|
217
211
|
# pylint: disable=cyclic-import
|
218
|
-
from qiskit.circuit
|
212
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
219
213
|
|
220
214
|
from .h import HGate
|
221
215
|
from .x import CXGate
|
@@ -293,8 +287,6 @@ class CCZGate(SingletonControlledGate):
|
|
293
287
|
label: Optional[str] = None,
|
294
288
|
ctrl_state: Optional[Union[str, int]] = None,
|
295
289
|
*,
|
296
|
-
duration=None,
|
297
|
-
unit="dt",
|
298
290
|
_base_label=None,
|
299
291
|
):
|
300
292
|
"""Create new CCZ gate."""
|
@@ -306,8 +298,6 @@ class CCZGate(SingletonControlledGate):
|
|
306
298
|
num_ctrl_qubits=2,
|
307
299
|
ctrl_state=ctrl_state,
|
308
300
|
base_gate=ZGate(label=_base_label),
|
309
|
-
duration=duration,
|
310
|
-
unit=unit,
|
311
301
|
)
|
312
302
|
|
313
303
|
_singleton_lookup_key = stdlib_singleton_key(num_ctrl_qubits=2)
|
@@ -317,7 +307,7 @@ class CCZGate(SingletonControlledGate):
|
|
317
307
|
gate ccz a,b,c { h c; ccx a,b,c; h c; }
|
318
308
|
"""
|
319
309
|
# pylint: disable=cyclic-import
|
320
|
-
from qiskit.circuit
|
310
|
+
from qiskit.circuit import QuantumCircuit, QuantumRegister
|
321
311
|
|
322
312
|
from .h import HGate
|
323
313
|
from .x import CCXGate
|
qiskit/circuit/measure.py
CHANGED
@@ -16,17 +16,26 @@ Quantum measurement in the computational basis.
|
|
16
16
|
|
17
17
|
from qiskit.circuit.singleton import SingletonInstruction, stdlib_singleton_key
|
18
18
|
from qiskit.circuit.exceptions import CircuitError
|
19
|
+
from qiskit._accelerate.circuit import StandardInstructionType
|
19
20
|
|
20
21
|
|
21
22
|
class Measure(SingletonInstruction):
|
22
23
|
"""Quantum measurement in the computational basis."""
|
23
24
|
|
24
|
-
|
25
|
+
_standard_instruction_type = StandardInstructionType.Measure
|
26
|
+
|
27
|
+
def __init__(self, label=None):
|
25
28
|
"""
|
26
29
|
Args:
|
27
30
|
label: optional string label for this instruction.
|
28
31
|
"""
|
29
|
-
super().__init__("measure", 1, 1, [], label=label
|
32
|
+
super().__init__("measure", 1, 1, [], label=label)
|
33
|
+
|
34
|
+
def __init_subclass__(cls, **kwargs):
|
35
|
+
super().__init_subclass__(**kwargs)
|
36
|
+
# Subclasses of Measure are not "standard", so we set this to None to
|
37
|
+
# prevent the Rust code from treating them as such.
|
38
|
+
cls._standard_instruction_type = None
|
30
39
|
|
31
40
|
_singleton_lookup_key = stdlib_singleton_key()
|
32
41
|
|
@@ -26,6 +26,8 @@ import numpy
|
|
26
26
|
import symengine
|
27
27
|
|
28
28
|
from qiskit.circuit.exceptions import CircuitError
|
29
|
+
from qiskit.exceptions import QiskitError
|
30
|
+
from qiskit.utils.optionals import HAS_SYMPY
|
29
31
|
|
30
32
|
# This type is redefined at the bottom to insert the full reference to "ParameterExpression", so it
|
31
33
|
# can safely be used by runtime type-checkers like Sphinx. Mypy does not need this because it
|
@@ -117,6 +119,8 @@ class ParameterExpression:
|
|
117
119
|
|
118
120
|
Not intended to be called directly, but to be instantiated via operations
|
119
121
|
on other :class:`Parameter` or :class:`ParameterExpression` objects.
|
122
|
+
The constructor of this object is **not** a public interface and should not
|
123
|
+
ever be used directly.
|
120
124
|
|
121
125
|
Args:
|
122
126
|
symbol_map (Dict[Parameter, [ParameterExpression, float, or int]]):
|
@@ -528,6 +532,9 @@ class ParameterExpression:
|
|
528
532
|
def __str__(self):
|
529
533
|
from sympy import sympify, sstr
|
530
534
|
|
535
|
+
if not isinstance(self._symbol_expr, symengine.Basic):
|
536
|
+
raise QiskitError("Invalid ParameterExpression")
|
537
|
+
|
531
538
|
return sstr(sympify(self._symbol_expr), full_prec=False)
|
532
539
|
|
533
540
|
def __complex__(self):
|
@@ -608,6 +615,9 @@ class ParameterExpression:
|
|
608
615
|
return False
|
609
616
|
from sympy import sympify
|
610
617
|
|
618
|
+
if not isinstance(self._symbol_expr, symengine.Basic):
|
619
|
+
raise QiskitError("Invalid ParameterExpression")
|
620
|
+
|
611
621
|
return sympify(self._symbol_expr).equals(sympify(other._symbol_expr))
|
612
622
|
elif isinstance(other, numbers.Number):
|
613
623
|
return len(self.parameters) == 0 and complex(self._symbol_expr) == other
|
@@ -672,6 +682,7 @@ class ParameterExpression:
|
|
672
682
|
return out.real if out.imag == 0.0 else out
|
673
683
|
return float(real_expr)
|
674
684
|
|
685
|
+
@HAS_SYMPY.require_in_call
|
675
686
|
def sympify(self):
|
676
687
|
"""Return symbolic expression as a raw Sympy or Symengine object.
|
677
688
|
|