qiskit 1.3.0__cp39-abi3-win32.whl → 1.3.0b1__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 +1 -20
- qiskit/_accelerate.pyd +0 -0
- qiskit/assembler/assemble_schedules.py +0 -2
- qiskit/circuit/__init__.py +1 -44
- qiskit/circuit/_standard_gates_commutations.py +0 -585
- qiskit/circuit/barrier.py +0 -2
- qiskit/circuit/controlflow/builder.py +3 -3
- qiskit/circuit/controlflow/if_else.py +5 -13
- qiskit/circuit/controlflow/while_loop.py +2 -10
- qiskit/circuit/delay.py +3 -20
- qiskit/circuit/equivalence.py +214 -13
- qiskit/circuit/gate.py +1 -3
- qiskit/circuit/instruction.py +11 -32
- qiskit/circuit/instructionset.py +0 -2
- qiskit/circuit/library/__init__.py +14 -110
- qiskit/circuit/library/arithmetic/__init__.py +2 -9
- qiskit/circuit/library/arithmetic/adders/__init__.py +0 -1
- qiskit/circuit/library/arithmetic/adders/adder.py +2 -154
- qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +56 -20
- qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +1 -14
- qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +91 -21
- qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
- qiskit/circuit/library/arithmetic/multipliers/__init__.py +0 -1
- qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -8
- qiskit/circuit/library/arithmetic/multipliers/multiplier.py +3 -94
- qiskit/circuit/library/arithmetic/multipliers/rg_qft_multiplier.py +1 -8
- qiskit/circuit/library/arithmetic/weighted_adder.py +1 -1
- qiskit/circuit/library/basis_change/qft.py +38 -20
- qiskit/circuit/library/blueprintcircuit.py +0 -64
- qiskit/circuit/library/boolean_logic/__init__.py +4 -4
- qiskit/circuit/library/boolean_logic/inner_product.py +4 -81
- qiskit/circuit/library/boolean_logic/quantum_and.py +4 -107
- qiskit/circuit/library/boolean_logic/quantum_or.py +3 -107
- qiskit/circuit/library/boolean_logic/quantum_xor.py +3 -97
- qiskit/circuit/library/data_preparation/__init__.py +3 -6
- qiskit/circuit/library/data_preparation/pauli_feature_map.py +29 -342
- qiskit/circuit/library/data_preparation/{_z_feature_map.py → z_feature_map.py} +34 -45
- qiskit/circuit/library/data_preparation/zz_feature_map.py +118 -0
- qiskit/circuit/library/fourier_checking.py +11 -72
- qiskit/circuit/library/generalized_gates/__init__.py +1 -1
- qiskit/circuit/library/generalized_gates/diagonal.py +51 -45
- qiskit/circuit/library/generalized_gates/gms.py +14 -67
- 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 +6 -12
- qiskit/circuit/library/generalized_gates/mcmt.py +107 -167
- qiskit/circuit/library/generalized_gates/permutation.py +6 -8
- qiskit/circuit/library/generalized_gates/rv.py +9 -8
- qiskit/circuit/library/graph_state.py +10 -93
- qiskit/circuit/library/grover_operator.py +2 -270
- qiskit/circuit/library/hidden_linear_function.py +20 -83
- qiskit/circuit/library/iqp.py +20 -99
- qiskit/circuit/library/n_local/__init__.py +7 -19
- qiskit/circuit/library/n_local/efficient_su2.py +5 -118
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +0 -259
- qiskit/circuit/library/n_local/excitation_preserving.py +6 -130
- qiskit/circuit/library/n_local/n_local.py +5 -406
- qiskit/circuit/library/n_local/pauli_two_design.py +4 -106
- qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -80
- qiskit/circuit/library/n_local/real_amplitudes.py +7 -127
- qiskit/circuit/library/n_local/two_local.py +7 -14
- qiskit/circuit/library/overlap.py +26 -91
- qiskit/circuit/library/pauli_evolution.py +15 -17
- qiskit/circuit/library/phase_estimation.py +4 -80
- qiskit/circuit/library/quantum_volume.py +20 -72
- qiskit/circuit/library/standard_gates/__init__.py +1 -20
- qiskit/circuit/library/standard_gates/dcx.py +1 -2
- qiskit/circuit/library/standard_gates/ecr.py +2 -2
- qiskit/circuit/library/standard_gates/h.py +3 -4
- qiskit/circuit/library/standard_gates/i.py +1 -2
- qiskit/circuit/library/standard_gates/iswap.py +2 -2
- qiskit/circuit/library/standard_gates/p.py +12 -20
- qiskit/circuit/library/standard_gates/r.py +1 -1
- qiskit/circuit/library/standard_gates/rx.py +3 -4
- qiskit/circuit/library/standard_gates/rxx.py +2 -2
- qiskit/circuit/library/standard_gates/ry.py +3 -4
- qiskit/circuit/library/standard_gates/ryy.py +2 -2
- qiskit/circuit/library/standard_gates/rz.py +12 -13
- 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 +3 -4
- qiskit/circuit/library/standard_gates/t.py +2 -2
- qiskit/circuit/library/standard_gates/u.py +3 -11
- qiskit/circuit/library/standard_gates/u1.py +15 -65
- qiskit/circuit/library/standard_gates/u2.py +1 -4
- qiskit/circuit/library/standard_gates/u3.py +3 -31
- qiskit/circuit/library/standard_gates/x.py +5 -7
- 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 +3 -4
- qiskit/circuit/library/standard_gates/z.py +3 -3
- qiskit/circuit/library/templates/clifford/clifford_2_1.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_2_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_2_3.py +7 -9
- qiskit/circuit/library/templates/clifford/clifford_2_4.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_3_1.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_4_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_3.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_4.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_5_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_3.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_4.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_6_5.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_3.py +9 -10
- qiskit/circuit/library/templates/nct/template_nct_2a_1.py +7 -9
- qiskit/circuit/library/templates/nct/template_nct_2a_2.py +8 -10
- qiskit/circuit/library/templates/nct/template_nct_2a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_4a_1.py +14 -16
- qiskit/circuit/library/templates/nct/template_nct_4a_2.py +12 -14
- qiskit/circuit/library/templates/nct/template_nct_4a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_4b_1.py +12 -14
- qiskit/circuit/library/templates/nct/template_nct_4b_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_4.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_6a_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_6a_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6a_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6b_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6b_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6c_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_7a_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7b_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7c_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7d_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7e_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_9a_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_9c_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_9c_10.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_11.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_12.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_5.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_6.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_7.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_8.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_9.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_9d_10.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_5.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_6.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_7.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_8.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_9.py +10 -12
- qiskit/circuit/library/templates/rzx/rzx_cy.py +10 -11
- qiskit/circuit/library/templates/rzx/rzx_xz.py +15 -16
- qiskit/circuit/library/templates/rzx/rzx_yz.py +10 -12
- qiskit/circuit/library/templates/rzx/rzx_zz1.py +20 -22
- qiskit/circuit/library/templates/rzx/rzx_zz2.py +15 -16
- qiskit/circuit/library/templates/rzx/rzx_zz3.py +15 -17
- qiskit/circuit/parameter.py +0 -4
- qiskit/circuit/parameterexpression.py +34 -167
- qiskit/circuit/quantumcircuit.py +126 -162
- qiskit/circuit/singleton.py +0 -2
- qiskit/circuit/store.py +0 -2
- qiskit/compiler/assembler.py +4 -17
- qiskit/compiler/scheduler.py +0 -2
- qiskit/compiler/sequencer.py +0 -2
- qiskit/compiler/transpiler.py +26 -81
- 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 +5 -7
- qiskit/converters/dag_to_dagdependency.py +1 -1
- qiskit/converters/dag_to_dagdependency_v2.py +1 -1
- qiskit/converters/dagdependency_to_circuit.py +1 -5
- qiskit/converters/dagdependency_to_dag.py +1 -6
- qiskit/dagcircuit/collect_blocks.py +3 -3
- qiskit/dagcircuit/dagdependency.py +5 -18
- qiskit/dagcircuit/dagdependency_v2.py +1 -1
- qiskit/dagcircuit/dagnode.py +2 -2
- qiskit/passmanager/__init__.py +2 -2
- qiskit/primitives/backend_estimator.py +2 -5
- qiskit/primitives/backend_sampler_v2.py +18 -61
- qiskit/primitives/base/base_estimator.py +2 -2
- qiskit/primitives/containers/data_bin.py +1 -9
- qiskit/primitives/statevector_sampler.py +1 -1
- qiskit/primitives/utils.py +1 -1
- qiskit/providers/__init__.py +3 -3
- qiskit/providers/backend.py +1 -12
- qiskit/providers/backend_compat.py +3 -23
- qiskit/providers/basic_provider/basic_simulator.py +2 -12
- qiskit/providers/fake_provider/fake_pulse_backend.py +1 -6
- qiskit/providers/fake_provider/generic_backend_v2.py +30 -46
- qiskit/providers/models/pulsedefaults.py +0 -2
- qiskit/pulse/builder.py +18 -59
- qiskit/pulse/calibration_entries.py +1 -4
- qiskit/pulse/channels.py +0 -2
- qiskit/pulse/exceptions.py +0 -2
- qiskit/pulse/instruction_schedule_map.py +6 -21
- qiskit/pulse/instructions/acquire.py +0 -2
- qiskit/pulse/instructions/delay.py +0 -2
- qiskit/pulse/instructions/directives.py +0 -8
- qiskit/pulse/instructions/frequency.py +0 -3
- qiskit/pulse/instructions/instruction.py +0 -2
- qiskit/pulse/instructions/phase.py +0 -3
- qiskit/pulse/instructions/play.py +0 -2
- qiskit/pulse/instructions/reference.py +0 -2
- qiskit/pulse/instructions/snapshot.py +0 -2
- qiskit/pulse/library/pulse.py +0 -2
- qiskit/pulse/library/symbolic_pulses.py +0 -28
- qiskit/pulse/library/waveform.py +0 -2
- qiskit/pulse/macros.py +1 -1
- qiskit/pulse/schedule.py +13 -12
- qiskit/pulse/transforms/alignments.py +3 -5
- qiskit/pulse/transforms/dag.py +0 -7
- qiskit/qasm2/export.py +3 -5
- qiskit/qasm2/parse.py +2 -46
- qiskit/qasm3/__init__.py +0 -1
- qiskit/qasm3/ast.py +15 -123
- qiskit/qasm3/exporter.py +77 -103
- qiskit/qobj/converters/pulse_instruction.py +4 -6
- qiskit/qpy/__init__.py +0 -181
- qiskit/qpy/binary_io/circuits.py +5 -20
- qiskit/qpy/binary_io/schedules.py +4 -3
- qiskit/qpy/binary_io/value.py +13 -310
- qiskit/qpy/common.py +2 -46
- qiskit/qpy/formats.py +0 -7
- qiskit/qpy/interface.py +4 -40
- qiskit/quantum_info/__init__.py +0 -4
- qiskit/quantum_info/operators/channel/transformations.py +21 -28
- qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
- qiskit/quantum_info/operators/operator.py +8 -54
- qiskit/quantum_info/operators/symplectic/base_pauli.py +19 -11
- 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 +0 -2
- qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +2 -23
- 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 +1 -9
- qiskit/result/mitigation/local_readout_mitigator.py +1 -9
- qiskit/result/mitigation/utils.py +0 -57
- qiskit/scheduler/config.py +0 -2
- qiskit/scheduler/methods/basic.py +0 -3
- qiskit/scheduler/schedule_circuit.py +0 -2
- qiskit/scheduler/sequence.py +0 -2
- qiskit/synthesis/__init__.py +0 -25
- qiskit/synthesis/clifford/clifford_decompose_bm.py +2 -1
- qiskit/synthesis/clifford/clifford_decompose_greedy.py +2 -3
- qiskit/synthesis/clifford/clifford_decompose_layers.py +1 -2
- qiskit/synthesis/evolution/__init__.py +0 -1
- qiskit/synthesis/evolution/lie_trotter.py +42 -16
- qiskit/synthesis/evolution/product_formula.py +238 -165
- qiskit/synthesis/evolution/qdrift.py +29 -36
- qiskit/synthesis/evolution/suzuki_trotter.py +27 -87
- qiskit/synthesis/multi_controlled/__init__.py +0 -1
- qiskit/synthesis/qft/qft_decompose_full.py +1 -19
- qiskit/synthesis/qft/qft_decompose_lnn.py +1 -2
- qiskit/synthesis/stabilizer/stabilizer_decompose.py +1 -2
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +63 -4
- qiskit/synthesis/two_qubit/weyl.py +97 -0
- qiskit/synthesis/unitary/qsd.py +5 -5
- qiskit/transpiler/__init__.py +14 -21
- qiskit/transpiler/basepasses.py +1 -1
- qiskit/transpiler/passes/__init__.py +0 -2
- qiskit/transpiler/passes/basis/basis_translator.py +565 -9
- qiskit/transpiler/passes/basis/decompose.py +12 -45
- 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 +2 -4
- qiskit/transpiler/passes/calibration/rx_builder.py +7 -11
- qiskit/transpiler/passes/calibration/rzx_builder.py +30 -46
- qiskit/transpiler/passes/layout/disjoint_utils.py +13 -15
- qiskit/transpiler/passes/layout/sabre_layout.py +2 -7
- qiskit/transpiler/passes/layout/sabre_pre_layout.py +0 -5
- qiskit/transpiler/passes/optimization/__init__.py +0 -1
- qiskit/transpiler/passes/optimization/collect_cliffords.py +3 -19
- 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 +131 -48
- qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +2 -4
- qiskit/transpiler/passes/optimization/elide_permutations.py +32 -9
- qiskit/transpiler/passes/optimization/inverse_cancellation.py +0 -2
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +11 -5
- 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/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 +3 -7
- 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 +0 -2
- qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
- qiskit/transpiler/passes/scheduling/asap.py +1 -1
- qiskit/transpiler/passes/scheduling/base_scheduler.py +12 -14
- qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +4 -9
- qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +5 -16
- qiskit/transpiler/passes/scheduling/padding/pad_delay.py +1 -4
- qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +2 -6
- qiskit/transpiler/passes/scheduling/time_unit_conversion.py +4 -9
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +99 -262
- qiskit/transpiler/passes/synthesis/hls_plugins.py +7 -638
- qiskit/transpiler/passes/synthesis/qubit_tracker.py +132 -0
- qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -55
- qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +56 -2
- qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -5
- qiskit/transpiler/passes/utils/gate_direction.py +275 -12
- qiskit/transpiler/passes/utils/gates_basis.py +30 -7
- qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +1 -2
- qiskit/transpiler/passmanager_config.py +4 -22
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +14 -40
- qiskit/transpiler/preset_passmanagers/common.py +3 -5
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +42 -125
- qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
- qiskit/transpiler/target.py +16 -74
- qiskit/visualization/circuit/_utils.py +2 -2
- qiskit/visualization/circuit/circuit_visualization.py +2 -3
- qiskit/visualization/circuit/matplotlib.py +1 -1
- qiskit/visualization/dag_visualization.py +1 -1
- qiskit/visualization/pass_manager_visualization.py +14 -3
- qiskit/visualization/pulse_v2/interface.py +1 -3
- qiskit/visualization/timeline/core.py +2 -25
- qiskit/visualization/timeline/interface.py +0 -12
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/METADATA +19 -20
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/RECORD +347 -358
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/WHEEL +1 -1
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/entry_points.txt +0 -19
- qiskit/circuit/library/data_preparation/_zz_feature_map.py +0 -150
- qiskit/circuit/twirling.py +0 -145
- qiskit/synthesis/arithmetic/__init__.py +0 -16
- qiskit/synthesis/arithmetic/adders/__init__.py +0 -17
- qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +0 -154
- qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +0 -103
- qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +0 -161
- qiskit/synthesis/arithmetic/multipliers/__init__.py +0 -16
- qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +0 -102
- qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +0 -99
- qiskit/synthesis/evolution/pauli_network.py +0 -80
- qiskit/synthesis/multi_controlled/mcmt_vchain.py +0 -52
- qiskit/transpiler/passes/optimization/remove_identity_equiv.py +0 -69
- qiskit/utils/deprecate_pulse.py +0 -119
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/top_level.txt +0 -0
@@ -14,9 +14,6 @@ ParameterExpression Class to enable creating simple expressions of Parameters.
|
|
14
14
|
"""
|
15
15
|
|
16
16
|
from __future__ import annotations
|
17
|
-
|
18
|
-
from dataclasses import dataclass
|
19
|
-
from enum import IntEnum
|
20
17
|
from typing import Callable, Union
|
21
18
|
|
22
19
|
import numbers
|
@@ -33,86 +30,12 @@ from qiskit.circuit.exceptions import CircuitError
|
|
33
30
|
ParameterValueType = Union["ParameterExpression", float]
|
34
31
|
|
35
32
|
|
36
|
-
class _OPCode(IntEnum):
|
37
|
-
ADD = 0
|
38
|
-
SUB = 1
|
39
|
-
MUL = 2
|
40
|
-
DIV = 3
|
41
|
-
POW = 4
|
42
|
-
SIN = 5
|
43
|
-
COS = 6
|
44
|
-
TAN = 7
|
45
|
-
ASIN = 8
|
46
|
-
ACOS = 9
|
47
|
-
EXP = 10
|
48
|
-
LOG = 11
|
49
|
-
SIGN = 12
|
50
|
-
GRAD = 13
|
51
|
-
CONJ = 14
|
52
|
-
SUBSTITUTE = 15
|
53
|
-
ABS = 16
|
54
|
-
ATAN = 17
|
55
|
-
RSUB = 18
|
56
|
-
RDIV = 19
|
57
|
-
RPOW = 20
|
58
|
-
|
59
|
-
|
60
|
-
_OP_CODE_MAP = (
|
61
|
-
"__add__",
|
62
|
-
"__sub__",
|
63
|
-
"__mul__",
|
64
|
-
"__truediv__",
|
65
|
-
"__pow__",
|
66
|
-
"sin",
|
67
|
-
"cos",
|
68
|
-
"tan",
|
69
|
-
"arcsin",
|
70
|
-
"arccos",
|
71
|
-
"exp",
|
72
|
-
"log",
|
73
|
-
"sign",
|
74
|
-
"gradient",
|
75
|
-
"conjugate",
|
76
|
-
"subs",
|
77
|
-
"abs",
|
78
|
-
"arctan",
|
79
|
-
"__rsub__",
|
80
|
-
"__rtruediv__",
|
81
|
-
"__rpow__",
|
82
|
-
)
|
83
|
-
|
84
|
-
|
85
|
-
def op_code_to_method(op_code: _OPCode):
|
86
|
-
"""Return the method name for a given op_code."""
|
87
|
-
return _OP_CODE_MAP[op_code]
|
88
|
-
|
89
|
-
|
90
|
-
@dataclass
|
91
|
-
class _INSTRUCTION:
|
92
|
-
op: _OPCode
|
93
|
-
lhs: ParameterValueType | None
|
94
|
-
rhs: ParameterValueType | None = None
|
95
|
-
|
96
|
-
|
97
|
-
@dataclass
|
98
|
-
class _SUBS:
|
99
|
-
binds: dict
|
100
|
-
op: _OPCode = _OPCode.SUBSTITUTE
|
101
|
-
|
102
|
-
|
103
33
|
class ParameterExpression:
|
104
34
|
"""ParameterExpression class to enable creating expressions of Parameters."""
|
105
35
|
|
106
|
-
__slots__ = [
|
107
|
-
"_parameter_symbols",
|
108
|
-
"_parameter_keys",
|
109
|
-
"_symbol_expr",
|
110
|
-
"_name_map",
|
111
|
-
"_qpy_replay",
|
112
|
-
"_standalone_param",
|
113
|
-
]
|
36
|
+
__slots__ = ["_parameter_symbols", "_parameter_keys", "_symbol_expr", "_name_map"]
|
114
37
|
|
115
|
-
def __init__(self, symbol_map: dict, expr
|
38
|
+
def __init__(self, symbol_map: dict, expr):
|
116
39
|
"""Create a new :class:`ParameterExpression`.
|
117
40
|
|
118
41
|
Not intended to be called directly, but to be instantiated via operations
|
@@ -131,11 +54,6 @@ class ParameterExpression:
|
|
131
54
|
self._parameter_keys = frozenset(p._hash_key() for p in self._parameter_symbols)
|
132
55
|
self._symbol_expr = expr
|
133
56
|
self._name_map: dict | None = None
|
134
|
-
self._standalone_param = False
|
135
|
-
if _qpy_replay is not None:
|
136
|
-
self._qpy_replay = _qpy_replay
|
137
|
-
else:
|
138
|
-
self._qpy_replay = []
|
139
57
|
|
140
58
|
@property
|
141
59
|
def parameters(self) -> set:
|
@@ -151,14 +69,8 @@ class ParameterExpression:
|
|
151
69
|
|
152
70
|
def conjugate(self) -> "ParameterExpression":
|
153
71
|
"""Return the conjugate."""
|
154
|
-
if self._standalone_param:
|
155
|
-
new_op = _INSTRUCTION(_OPCode.CONJ, self)
|
156
|
-
else:
|
157
|
-
new_op = _INSTRUCTION(_OPCode.CONJ, None)
|
158
|
-
new_replay = self._qpy_replay.copy()
|
159
|
-
new_replay.append(new_op)
|
160
72
|
conjugated = ParameterExpression(
|
161
|
-
self._parameter_symbols, symengine.conjugate(self._symbol_expr)
|
73
|
+
self._parameter_symbols, symengine.conjugate(self._symbol_expr)
|
162
74
|
)
|
163
75
|
return conjugated
|
164
76
|
|
@@ -205,7 +117,6 @@ class ParameterExpression:
|
|
205
117
|
self._raise_if_passed_unknown_parameters(parameter_values.keys())
|
206
118
|
self._raise_if_passed_nan(parameter_values)
|
207
119
|
|
208
|
-
new_op = _SUBS(parameter_values)
|
209
120
|
symbol_values = {}
|
210
121
|
for parameter, value in parameter_values.items():
|
211
122
|
if (param_expr := self._parameter_symbols.get(parameter)) is not None:
|
@@ -232,12 +143,7 @@ class ParameterExpression:
|
|
232
143
|
f"(Expression: {self}, Bindings: {parameter_values})."
|
233
144
|
)
|
234
145
|
|
235
|
-
|
236
|
-
new_replay.append(new_op)
|
237
|
-
|
238
|
-
return ParameterExpression(
|
239
|
-
free_parameter_symbols, bound_symbol_expr, _qpy_replay=new_replay
|
240
|
-
)
|
146
|
+
return ParameterExpression(free_parameter_symbols, bound_symbol_expr)
|
241
147
|
|
242
148
|
def subs(
|
243
149
|
self, parameter_map: dict, allow_unknown_parameters: bool = False
|
@@ -269,7 +175,6 @@ class ParameterExpression:
|
|
269
175
|
for p in replacement_expr.parameters
|
270
176
|
}
|
271
177
|
self._raise_if_parameter_names_conflict(inbound_names, parameter_map.keys())
|
272
|
-
new_op = _SUBS(parameter_map)
|
273
178
|
|
274
179
|
# Include existing parameters in self not set to be replaced.
|
275
180
|
new_parameter_symbols = {
|
@@ -287,12 +192,8 @@ class ParameterExpression:
|
|
287
192
|
new_parameter_symbols[p] = symbol_type(p.name)
|
288
193
|
|
289
194
|
substituted_symbol_expr = self._symbol_expr.subs(symbol_map)
|
290
|
-
new_replay = self._qpy_replay.copy()
|
291
|
-
new_replay.append(new_op)
|
292
195
|
|
293
|
-
return ParameterExpression(
|
294
|
-
new_parameter_symbols, substituted_symbol_expr, _qpy_replay=new_replay
|
295
|
-
)
|
196
|
+
return ParameterExpression(new_parameter_symbols, substituted_symbol_expr)
|
296
197
|
|
297
198
|
def _raise_if_passed_unknown_parameters(self, parameters):
|
298
199
|
unknown_parameters = parameters - self.parameters
|
@@ -330,11 +231,7 @@ class ParameterExpression:
|
|
330
231
|
)
|
331
232
|
|
332
233
|
def _apply_operation(
|
333
|
-
self,
|
334
|
-
operation: Callable,
|
335
|
-
other: ParameterValueType,
|
336
|
-
reflected: bool = False,
|
337
|
-
op_code: _OPCode = None,
|
234
|
+
self, operation: Callable, other: ParameterValueType, reflected: bool = False
|
338
235
|
) -> "ParameterExpression":
|
339
236
|
"""Base method implementing math operations between Parameters and
|
340
237
|
either a constant or a second ParameterExpression.
|
@@ -356,6 +253,7 @@ class ParameterExpression:
|
|
356
253
|
A new expression describing the result of the operation.
|
357
254
|
"""
|
358
255
|
self_expr = self._symbol_expr
|
256
|
+
|
359
257
|
if isinstance(other, ParameterExpression):
|
360
258
|
self._raise_if_parameter_names_conflict(other._names)
|
361
259
|
parameter_symbols = {**self._parameter_symbols, **other._parameter_symbols}
|
@@ -368,26 +266,10 @@ class ParameterExpression:
|
|
368
266
|
|
369
267
|
if reflected:
|
370
268
|
expr = operation(other_expr, self_expr)
|
371
|
-
if op_code in {_OPCode.RSUB, _OPCode.RDIV, _OPCode.RPOW}:
|
372
|
-
if self._standalone_param:
|
373
|
-
new_op = _INSTRUCTION(op_code, self, other)
|
374
|
-
else:
|
375
|
-
new_op = _INSTRUCTION(op_code, None, other)
|
376
|
-
else:
|
377
|
-
if self._standalone_param:
|
378
|
-
new_op = _INSTRUCTION(op_code, other, self)
|
379
|
-
else:
|
380
|
-
new_op = _INSTRUCTION(op_code, other, None)
|
381
269
|
else:
|
382
270
|
expr = operation(self_expr, other_expr)
|
383
|
-
|
384
|
-
|
385
|
-
else:
|
386
|
-
new_op = _INSTRUCTION(op_code, None, other)
|
387
|
-
new_replay = self._qpy_replay.copy()
|
388
|
-
new_replay.append(new_op)
|
389
|
-
|
390
|
-
out_expr = ParameterExpression(parameter_symbols, expr, _qpy_replay=new_replay)
|
271
|
+
|
272
|
+
out_expr = ParameterExpression(parameter_symbols, expr)
|
391
273
|
out_expr._name_map = self._names.copy()
|
392
274
|
if isinstance(other, ParameterExpression):
|
393
275
|
out_expr._names.update(other._names.copy())
|
@@ -409,13 +291,6 @@ class ParameterExpression:
|
|
409
291
|
# If it is not contained then return 0
|
410
292
|
return 0.0
|
411
293
|
|
412
|
-
if self._standalone_param:
|
413
|
-
new_op = _INSTRUCTION(_OPCode.GRAD, self, param)
|
414
|
-
else:
|
415
|
-
new_op = _INSTRUCTION(_OPCode.GRAD, None, param)
|
416
|
-
qpy_replay = self._qpy_replay.copy()
|
417
|
-
qpy_replay.append(new_op)
|
418
|
-
|
419
294
|
# Compute the gradient of the parameter expression w.r.t. param
|
420
295
|
key = self._parameter_symbols[param]
|
421
296
|
expr_grad = symengine.Derivative(self._symbol_expr, key)
|
@@ -429,7 +304,7 @@ class ParameterExpression:
|
|
429
304
|
parameter_symbols[parameter] = symbol
|
430
305
|
# If the gradient corresponds to a parameter expression then return the new expression.
|
431
306
|
if len(parameter_symbols) > 0:
|
432
|
-
return ParameterExpression(parameter_symbols, expr=expr_grad
|
307
|
+
return ParameterExpression(parameter_symbols, expr=expr_grad)
|
433
308
|
# If no free symbols left, return a complex or float gradient
|
434
309
|
expr_grad_cplx = complex(expr_grad)
|
435
310
|
if expr_grad_cplx.imag != 0:
|
@@ -438,89 +313,81 @@ class ParameterExpression:
|
|
438
313
|
return float(expr_grad)
|
439
314
|
|
440
315
|
def __add__(self, other):
|
441
|
-
return self._apply_operation(operator.add, other
|
316
|
+
return self._apply_operation(operator.add, other)
|
442
317
|
|
443
318
|
def __radd__(self, other):
|
444
|
-
return self._apply_operation(operator.add, other, reflected=True
|
319
|
+
return self._apply_operation(operator.add, other, reflected=True)
|
445
320
|
|
446
321
|
def __sub__(self, other):
|
447
|
-
return self._apply_operation(operator.sub, other
|
322
|
+
return self._apply_operation(operator.sub, other)
|
448
323
|
|
449
324
|
def __rsub__(self, other):
|
450
|
-
return self._apply_operation(operator.sub, other, reflected=True
|
325
|
+
return self._apply_operation(operator.sub, other, reflected=True)
|
451
326
|
|
452
327
|
def __mul__(self, other):
|
453
|
-
return self._apply_operation(operator.mul, other
|
328
|
+
return self._apply_operation(operator.mul, other)
|
454
329
|
|
455
330
|
def __pos__(self):
|
456
|
-
return self._apply_operation(operator.mul, 1
|
331
|
+
return self._apply_operation(operator.mul, 1)
|
457
332
|
|
458
333
|
def __neg__(self):
|
459
|
-
return self._apply_operation(operator.mul, -1
|
334
|
+
return self._apply_operation(operator.mul, -1)
|
460
335
|
|
461
336
|
def __rmul__(self, other):
|
462
|
-
return self._apply_operation(operator.mul, other, reflected=True
|
337
|
+
return self._apply_operation(operator.mul, other, reflected=True)
|
463
338
|
|
464
339
|
def __truediv__(self, other):
|
465
340
|
if other == 0:
|
466
341
|
raise ZeroDivisionError("Division of a ParameterExpression by zero.")
|
467
|
-
return self._apply_operation(operator.truediv, other
|
342
|
+
return self._apply_operation(operator.truediv, other)
|
468
343
|
|
469
344
|
def __rtruediv__(self, other):
|
470
|
-
return self._apply_operation(operator.truediv, other, reflected=True
|
345
|
+
return self._apply_operation(operator.truediv, other, reflected=True)
|
471
346
|
|
472
347
|
def __pow__(self, other):
|
473
|
-
return self._apply_operation(pow, other
|
348
|
+
return self._apply_operation(pow, other)
|
474
349
|
|
475
350
|
def __rpow__(self, other):
|
476
|
-
return self._apply_operation(pow, other, reflected=True
|
351
|
+
return self._apply_operation(pow, other, reflected=True)
|
477
352
|
|
478
|
-
def _call(self, ufunc
|
479
|
-
|
480
|
-
new_op = _INSTRUCTION(op_code, self)
|
481
|
-
else:
|
482
|
-
new_op = _INSTRUCTION(op_code, None)
|
483
|
-
new_replay = self._qpy_replay.copy()
|
484
|
-
new_replay.append(new_op)
|
485
|
-
return ParameterExpression(
|
486
|
-
self._parameter_symbols, ufunc(self._symbol_expr), _qpy_replay=new_replay
|
487
|
-
)
|
353
|
+
def _call(self, ufunc):
|
354
|
+
return ParameterExpression(self._parameter_symbols, ufunc(self._symbol_expr))
|
488
355
|
|
489
356
|
def sin(self):
|
490
357
|
"""Sine of a ParameterExpression"""
|
491
|
-
return self._call(symengine.sin
|
358
|
+
return self._call(symengine.sin)
|
492
359
|
|
493
360
|
def cos(self):
|
494
361
|
"""Cosine of a ParameterExpression"""
|
495
|
-
return self._call(symengine.cos
|
362
|
+
return self._call(symengine.cos)
|
496
363
|
|
497
364
|
def tan(self):
|
498
365
|
"""Tangent of a ParameterExpression"""
|
499
|
-
return self._call(symengine.tan
|
366
|
+
return self._call(symengine.tan)
|
500
367
|
|
501
368
|
def arcsin(self):
|
502
369
|
"""Arcsin of a ParameterExpression"""
|
503
|
-
return self._call(symengine.asin
|
370
|
+
return self._call(symengine.asin)
|
504
371
|
|
505
372
|
def arccos(self):
|
506
373
|
"""Arccos of a ParameterExpression"""
|
507
|
-
return self._call(symengine.acos
|
374
|
+
return self._call(symengine.acos)
|
508
375
|
|
509
376
|
def arctan(self):
|
510
377
|
"""Arctan of a ParameterExpression"""
|
511
|
-
return self._call(symengine.atan
|
378
|
+
return self._call(symengine.atan)
|
512
379
|
|
513
380
|
def exp(self):
|
514
381
|
"""Exponential of a ParameterExpression"""
|
515
|
-
return self._call(symengine.exp
|
382
|
+
return self._call(symengine.exp)
|
516
383
|
|
517
384
|
def log(self):
|
518
385
|
"""Logarithm of a ParameterExpression"""
|
519
|
-
return self._call(symengine.log
|
386
|
+
return self._call(symengine.log)
|
520
387
|
|
521
388
|
def sign(self):
|
522
389
|
"""Sign of a ParameterExpression"""
|
523
|
-
return self._call(symengine.sign
|
390
|
+
return self._call(symengine.sign)
|
524
391
|
|
525
392
|
def __repr__(self):
|
526
393
|
return f"{self.__class__.__name__}({str(self)})"
|
@@ -588,7 +455,7 @@ class ParameterExpression:
|
|
588
455
|
|
589
456
|
def __abs__(self):
|
590
457
|
"""Absolute of a ParameterExpression"""
|
591
|
-
return self._call(symengine.Abs
|
458
|
+
return self._call(symengine.Abs)
|
592
459
|
|
593
460
|
def abs(self):
|
594
461
|
"""Absolute of a ParameterExpression"""
|