cirq-core 1.7.0.dev20250924231107__py3-none-any.whl → 1.7.0.dev20251203004401__py3-none-any.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.
- cirq/__init__.py +1 -0
- cirq/_compat.py +3 -2
- cirq/_compat_test.py +16 -15
- cirq/_doc.py +4 -3
- cirq/_import.py +2 -1
- cirq/_version.py +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/_bucket_priority_queue.py +2 -1
- cirq/circuits/circuit.py +7 -13
- cirq/circuits/circuit_operation.py +2 -1
- cirq/circuits/circuit_test.py +13 -12
- cirq/circuits/frozen_circuit.py +3 -2
- cirq/circuits/moment.py +3 -15
- cirq/circuits/optimization_pass.py +2 -1
- cirq/circuits/qasm_output.py +39 -10
- cirq/circuits/qasm_output_test.py +51 -2
- cirq/circuits/text_diagram_drawer.py +2 -1
- cirq/contrib/acquaintance/bipartite.py +2 -1
- cirq/contrib/acquaintance/devices.py +1 -1
- cirq/contrib/acquaintance/executor.py +4 -5
- cirq/contrib/acquaintance/executor_test.py +2 -1
- cirq/contrib/acquaintance/gates.py +2 -1
- cirq/contrib/acquaintance/gates_test.py +1 -1
- cirq/contrib/acquaintance/inspection_utils.py +2 -1
- cirq/contrib/acquaintance/mutation_utils.py +2 -1
- cirq/contrib/acquaintance/optimizers.py +2 -1
- cirq/contrib/acquaintance/permutation.py +2 -1
- cirq/contrib/acquaintance/permutation_test.py +1 -1
- cirq/contrib/acquaintance/shift.py +2 -1
- cirq/contrib/acquaintance/shift_swap_network.py +2 -1
- cirq/contrib/acquaintance/strategies/complete.py +3 -2
- cirq/contrib/acquaintance/strategies/cubic.py +2 -1
- cirq/contrib/acquaintance/strategies/quartic_paired.py +2 -1
- cirq/contrib/acquaintance/strategies/quartic_paired_test.py +1 -1
- cirq/contrib/acquaintance/testing.py +2 -1
- cirq/contrib/acquaintance/topological_sort.py +2 -1
- cirq/contrib/bayesian_network/bayesian_network_gate.py +3 -2
- cirq/contrib/circuitdag/circuit_dag.py +4 -2
- cirq/contrib/custom_simulators/custom_state_simulator.py +2 -1
- cirq/contrib/custom_simulators/custom_state_simulator_test.py +1 -1
- cirq/contrib/graph_device/graph_device.py +2 -1
- cirq/contrib/graph_device/graph_device_test.py +2 -1
- cirq/contrib/graph_device/hypergraph.py +2 -1
- cirq/contrib/graph_device/uniform_graph_device.py +2 -1
- cirq/contrib/json.py +14 -2
- cirq/contrib/json_test_data/BayesianNetworkGate.json +10 -0
- cirq/contrib/json_test_data/BayesianNetworkGate.repr +3 -0
- cirq/contrib/json_test_data/QuantumVolumeResult.json +169 -0
- cirq/contrib/json_test_data/QuantumVolumeResult.repr +22 -0
- cirq/contrib/json_test_data/SwapPermutationGate.json +3 -0
- cirq/contrib/json_test_data/SwapPermutationGate.repr +1 -0
- cirq/contrib/json_test_data/spec.py +0 -2
- cirq/contrib/noise_models/noise_models.py +2 -1
- cirq/contrib/paulistring/clifford_optimize.py +20 -2
- cirq/contrib/paulistring/optimize.py +1 -1
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py +146 -35
- cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py +74 -171
- cirq/contrib/paulistring/recombine.py +5 -2
- cirq/contrib/paulistring/separate.py +1 -1
- cirq/contrib/qasm_import/_parser.py +2 -1
- cirq/contrib/qasm_import/_parser_test.py +3 -3
- cirq/contrib/quantikz/__init__.py +21 -0
- cirq/contrib/quantikz/circuit_to_latex_quantikz.py +680 -0
- cirq/contrib/quantikz/circuit_to_latex_quantikz_test.py +253 -0
- cirq/contrib/quantikz/circuit_to_latex_render.py +424 -0
- cirq/contrib/quantikz/circuit_to_latex_render_test.py +44 -0
- cirq/contrib/quantum_volume/quantum_volume.py +2 -1
- cirq/contrib/quimb/density_matrix.py +1 -1
- cirq/contrib/quimb/grid_circuits.py +2 -1
- cirq/contrib/quimb/grid_circuits_test.py +1 -1
- cirq/contrib/quimb/mps_simulator.py +4 -3
- cirq/contrib/quimb/state_vector.py +2 -1
- cirq/contrib/quirk/export_to_quirk.py +2 -1
- cirq/contrib/quirk/linearize_circuit.py +1 -1
- cirq/contrib/quirk/quirk_gate.py +2 -1
- cirq/contrib/routing/device.py +1 -1
- cirq/contrib/routing/greedy.py +2 -1
- cirq/contrib/routing/initialization.py +2 -1
- cirq/contrib/routing/router.py +2 -1
- cirq/contrib/routing/swap_network.py +2 -1
- cirq/contrib/routing/utils.py +2 -1
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py +7 -5
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py +6 -6
- cirq/devices/device.py +2 -1
- cirq/devices/grid_device_metadata.py +2 -1
- cirq/devices/grid_qubit.py +7 -6
- cirq/devices/insertion_noise_model.py +2 -1
- cirq/devices/line_qubit.py +2 -1
- cirq/devices/named_topologies.py +2 -1
- cirq/devices/noise_model.py +2 -1
- cirq/devices/noise_model_test.py +1 -1
- cirq/devices/noise_properties.py +2 -1
- cirq/devices/superconducting_qubits_noise_properties_test.py +2 -1
- cirq/devices/thermal_noise_model.py +2 -1
- cirq/experiments/__init__.py +2 -0
- cirq/experiments/benchmarking/parallel_xeb.py +2 -1
- cirq/experiments/benchmarking/parallel_xeb_test.py +1 -1
- cirq/experiments/fidelity_estimation.py +2 -1
- cirq/experiments/fidelity_estimation_test.py +1 -1
- cirq/experiments/ghz_2d.py +150 -0
- cirq/experiments/ghz_2d_test.py +155 -0
- cirq/experiments/n_qubit_tomography.py +2 -1
- cirq/experiments/n_qubit_tomography_test.py +1 -1
- cirq/experiments/purity_estimation.py +1 -1
- cirq/experiments/qubit_characterizations.py +2 -1
- cirq/experiments/random_quantum_circuit_generation.py +2 -1
- cirq/experiments/random_quantum_circuit_generation_test.py +2 -1
- cirq/experiments/readout_confusion_matrix.py +2 -1
- cirq/experiments/readout_confusion_matrix_test.py +1 -1
- cirq/experiments/single_qubit_readout_calibration.py +2 -1
- cirq/experiments/single_qubit_readout_calibration_test.py +1 -1
- cirq/experiments/t1_decay_experiment.py +2 -1
- cirq/experiments/two_qubit_xeb.py +2 -1
- cirq/experiments/two_qubit_xeb_test.py +1 -1
- cirq/experiments/xeb_fitting.py +2 -1
- cirq/experiments/xeb_fitting_test.py +1 -1
- cirq/experiments/xeb_sampling.py +5 -3
- cirq/experiments/xeb_sampling_test.py +1 -1
- cirq/experiments/xeb_simulation.py +2 -1
- cirq/experiments/xeb_simulation_test.py +2 -1
- cirq/experiments/z_phase_calibration.py +2 -1
- cirq/experiments/z_phase_calibration_test.py +18 -3
- cirq/interop/quirk/cells/__init__.py +1 -2
- cirq/interop/quirk/cells/all_cells.py +2 -1
- cirq/interop/quirk/cells/arithmetic_cells.py +2 -1
- cirq/interop/quirk/cells/cell.py +2 -1
- cirq/interop/quirk/cells/composite_cell.py +2 -1
- cirq/interop/quirk/cells/composite_cell_test.py +1 -1
- cirq/interop/quirk/cells/control_cells.py +2 -1
- cirq/interop/quirk/cells/frequency_space_cells.py +1 -1
- cirq/interop/quirk/cells/ignored_cells.py +1 -1
- cirq/interop/quirk/cells/input_cells.py +2 -1
- cirq/interop/quirk/cells/input_rotation_cells.py +2 -1
- cirq/interop/quirk/cells/measurement_cells.py +2 -1
- cirq/interop/quirk/cells/parse.py +2 -11
- cirq/interop/quirk/cells/qubit_permutation_cells.py +2 -1
- cirq/interop/quirk/cells/scalar_cells.py +2 -1
- cirq/interop/quirk/cells/single_qubit_rotation_cells.py +2 -1
- cirq/interop/quirk/cells/swap_cell.py +2 -1
- cirq/interop/quirk/cells/unsupported_cells.py +1 -1
- cirq/interop/quirk/url_to_circuit.py +2 -1
- cirq/json_resolver_cache.py +0 -2
- cirq/linalg/decompositions.py +6 -2
- cirq/linalg/decompositions_test.py +1 -0
- cirq/linalg/diagonalize.py +1 -1
- cirq/linalg/predicates.py +2 -1
- cirq/linalg/tolerance.py +2 -1
- cirq/linalg/transformations.py +2 -1
- cirq/ops/arithmetic_operation.py +2 -1
- cirq/ops/arithmetic_operation_test.py +1 -1
- cirq/ops/boolean_hamiltonian.py +4 -3
- cirq/ops/classically_controlled_operation.py +3 -2
- cirq/ops/clifford_gate.py +2 -1
- cirq/ops/clifford_gate_test.py +1 -2
- cirq/ops/common_channels.py +2 -1
- cirq/ops/common_gates.py +2 -1
- cirq/ops/control_values.py +2 -1
- cirq/ops/controlled_gate.py +3 -2
- cirq/ops/controlled_gate_test.py +2 -1
- cirq/ops/controlled_operation.py +3 -2
- cirq/ops/controlled_operation_test.py +2 -1
- cirq/ops/dense_pauli_string.py +3 -13
- cirq/ops/diagonal_gate.py +3 -2
- cirq/ops/eigen_gate.py +9 -7
- cirq/ops/fourier_transform.py +3 -2
- cirq/ops/fourier_transform_test.py +2 -4
- cirq/ops/fsim_gate.py +3 -2
- cirq/ops/gate_operation.py +8 -12
- cirq/ops/gateset.py +22 -2
- cirq/ops/global_phase_op.py +3 -2
- cirq/ops/greedy_qubit_manager.py +2 -1
- cirq/ops/identity.py +2 -1
- cirq/ops/kraus_channel.py +2 -1
- cirq/ops/linear_combinations.py +8 -3
- cirq/ops/linear_combinations_test.py +23 -1
- cirq/ops/matrix_gates.py +2 -1
- cirq/ops/measure_util.py +2 -1
- cirq/ops/measurement_gate.py +2 -1
- cirq/ops/mixed_unitary_channel.py +2 -1
- cirq/ops/named_qubit.py +2 -2
- cirq/ops/op_tree.py +2 -1
- cirq/ops/parallel_gate.py +3 -2
- cirq/ops/parity_gates.py +2 -1
- cirq/ops/pauli_interaction_gate.py +2 -1
- cirq/ops/pauli_measurement_gate.py +2 -1
- cirq/ops/pauli_string.py +6 -12
- cirq/ops/pauli_string_phasor.py +3 -2
- cirq/ops/pauli_string_raw_types.py +2 -1
- cirq/ops/pauli_string_test.py +2 -2
- cirq/ops/pauli_sum_exponential.py +2 -1
- cirq/ops/permutation_gate.py +2 -1
- cirq/ops/phased_iswap_gate.py +3 -2
- cirq/ops/phased_x_gate.py +5 -4
- cirq/ops/phased_x_z_gate.py +12 -5
- cirq/ops/projector.py +2 -1
- cirq/ops/qubit_manager.py +2 -1
- cirq/ops/qubit_order.py +2 -1
- cirq/ops/qubit_order_or_list.py +1 -1
- cirq/ops/random_gate_channel.py +3 -2
- cirq/ops/raw_types.py +7 -15
- cirq/ops/raw_types_test.py +4 -3
- cirq/ops/state_preparation_channel.py +2 -1
- cirq/ops/three_qubit_gates.py +3 -2
- cirq/ops/two_qubit_diagonal_gate.py +3 -2
- cirq/ops/uniform_superposition_gate.py +2 -1
- cirq/ops/wait_gate.py +10 -4
- cirq/protocols/act_on_protocol.py +2 -1
- cirq/protocols/act_on_protocol_test.py +2 -1
- cirq/protocols/apply_channel_protocol.py +2 -1
- cirq/protocols/apply_mixture_protocol.py +2 -1
- cirq/protocols/apply_mixture_protocol_test.py +2 -1
- cirq/protocols/apply_unitary_protocol.py +2 -1
- cirq/protocols/apply_unitary_protocol_test.py +2 -0
- cirq/protocols/approximate_equality_protocol.py +2 -1
- cirq/protocols/circuit_diagram_info_protocol.py +2 -1
- cirq/protocols/decompose_protocol.py +2 -12
- cirq/protocols/has_stabilizer_effect_protocol.py +1 -1
- cirq/protocols/hash_from_pickle_test.py +2 -2
- cirq/protocols/inverse_protocol.py +2 -1
- cirq/protocols/json_serialization.py +2 -1
- cirq/protocols/kraus_protocol.py +4 -3
- cirq/protocols/kraus_protocol_test.py +2 -2
- cirq/protocols/measurement_key_protocol.py +2 -1
- cirq/protocols/mixture_protocol.py +2 -1
- cirq/protocols/pow_protocol.py +2 -1
- cirq/protocols/qasm.py +2 -1
- cirq/protocols/qid_shape_protocol.py +2 -1
- cirq/protocols/resolve_parameters.py +16 -14
- cirq/protocols/trace_distance_bound.py +2 -1
- cirq/protocols/unitary_protocol.py +21 -21
- cirq/qis/channels.py +1 -1
- cirq/qis/channels_test.py +1 -1
- cirq/qis/clifford_tableau.py +2 -1
- cirq/qis/entropy.py +2 -2
- cirq/qis/quantum_state_representation.py +2 -1
- cirq/qis/states.py +7 -2
- cirq/sim/classical_simulator.py +2 -1
- cirq/sim/clifford/clifford_simulator.py +2 -1
- cirq/sim/clifford/clifford_simulator_test.py +1 -1
- cirq/sim/clifford/clifford_tableau_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_ch_form_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_sampler.py +1 -1
- cirq/sim/clifford/stabilizer_simulation_state.py +2 -1
- cirq/sim/clifford/stabilizer_state_ch_form.py +3 -2
- cirq/sim/clifford/stabilizer_state_ch_form_test.py +0 -1
- cirq/sim/density_matrix_simulation_state.py +2 -1
- cirq/sim/density_matrix_simulator.py +2 -1
- cirq/sim/density_matrix_utils.py +2 -1
- cirq/sim/mux.py +2 -1
- cirq/sim/mux_test.py +0 -1
- cirq/sim/simulation_product_state.py +2 -1
- cirq/sim/simulation_product_state_test.py +2 -1
- cirq/sim/simulation_state.py +2 -1
- cirq/sim/simulation_state_base.py +2 -1
- cirq/sim/simulation_state_test.py +2 -1
- cirq/sim/simulation_utils.py +2 -1
- cirq/sim/simulator.py +2 -1
- cirq/sim/simulator_base.py +2 -1
- cirq/sim/simulator_base_test.py +2 -1
- cirq/sim/simulator_test.py +2 -1
- cirq/sim/sparse_simulator.py +2 -1
- cirq/sim/state_vector.py +2 -1
- cirq/sim/state_vector_simulation_state.py +2 -1
- cirq/sim/state_vector_simulator.py +2 -1
- cirq/sim/state_vector_test.py +1 -2
- cirq/study/__init__.py +1 -0
- cirq/study/flatten_expressions.py +2 -1
- cirq/study/resolver.py +31 -18
- cirq/study/resolver_test.py +1 -1
- cirq/study/result.py +2 -1
- cirq/study/sweepable.py +2 -1
- cirq/study/sweeps.py +26 -1
- cirq/study/sweeps_test.py +24 -0
- cirq/testing/_compat_test_data/__init__.py +3 -3
- cirq/testing/circuit_compare.py +2 -1
- cirq/testing/consistent_act_on_test.py +1 -1
- cirq/testing/consistent_controlled_gate_op.py +1 -1
- cirq/testing/consistent_controlled_gate_op_test.py +2 -1
- cirq/testing/consistent_protocols.py +2 -1
- cirq/testing/consistent_protocols_test.py +3 -3
- cirq/testing/consistent_qasm.py +2 -1
- cirq/testing/consistent_resolve_parameters.py +1 -1
- cirq/testing/consistent_unitary.py +1 -1
- cirq/testing/consistent_unitary_test.py +1 -1
- cirq/testing/deprecation.py +1 -1
- cirq/testing/devices.py +3 -2
- cirq/testing/equals_tester.py +4 -3
- cirq/testing/equivalent_basis_map.py +4 -2
- cirq/testing/json.py +3 -2
- cirq/testing/logs.py +1 -1
- cirq/testing/op_tree.py +1 -1
- cirq/testing/order_tester.py +2 -2
- cirq/testing/pytest_utils.py +2 -1
- cirq/testing/random_circuit.py +2 -1
- cirq/testing/random_circuit_test.py +2 -1
- cirq/testing/repr_pretty_tester.py +3 -3
- cirq/transformers/__init__.py +1 -0
- cirq/transformers/_connected_component.py +231 -0
- cirq/transformers/_connected_component_test.py +200 -0
- cirq/transformers/align_test.py +13 -13
- cirq/transformers/analytical_decompositions/clifford_decomposition.py +8 -7
- cirq/transformers/analytical_decompositions/clifford_decomposition_test.py +5 -5
- cirq/transformers/analytical_decompositions/controlled_gate_decomposition.py +11 -10
- cirq/transformers/analytical_decompositions/controlled_gate_decomposition_test.py +6 -6
- cirq/transformers/analytical_decompositions/cphase_to_fsim.py +3 -2
- cirq/transformers/analytical_decompositions/cphase_to_fsim_test.py +11 -10
- cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py +8 -7
- cirq/transformers/analytical_decompositions/quantum_shannon_decomposition_test.py +17 -20
- cirq/transformers/analytical_decompositions/single_qubit_decompositions_test.py +33 -27
- cirq/transformers/analytical_decompositions/single_to_two_qubit_isometry_test.py +1 -1
- cirq/transformers/analytical_decompositions/three_qubit_decomposition.py +1 -1
- cirq/transformers/analytical_decompositions/two_qubit_state_preparation_test.py +12 -11
- cirq/transformers/analytical_decompositions/two_qubit_to_cz.py +5 -2
- cirq/transformers/analytical_decompositions/two_qubit_to_cz_test.py +3 -3
- cirq/transformers/analytical_decompositions/two_qubit_to_fsim.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_ms.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_ms_test.py +2 -2
- cirq/transformers/analytical_decompositions/two_qubit_to_sqrt_iswap.py +2 -1
- cirq/transformers/analytical_decompositions/two_qubit_to_sqrt_iswap_test.py +32 -30
- cirq/transformers/drop_negligible_operations_test.py +7 -7
- cirq/transformers/dynamical_decoupling.py +185 -112
- cirq/transformers/dynamical_decoupling_test.py +195 -201
- cirq/transformers/eject_phased_paulis.py +2 -1
- cirq/transformers/eject_phased_paulis_test.py +3 -2
- cirq/transformers/eject_z.py +4 -3
- cirq/transformers/eject_z_test.py +23 -25
- cirq/transformers/expand_composite.py +3 -2
- cirq/transformers/expand_composite_test.py +14 -14
- cirq/transformers/gauge_compiling/__init__.py +8 -0
- cirq/transformers/gauge_compiling/gauge_compiling.py +3 -2
- cirq/transformers/gauge_compiling/gauge_compiling_test.py +14 -12
- cirq/transformers/gauge_compiling/gauge_compiling_test_utils.py +3 -3
- cirq/transformers/gauge_compiling/idle_moments_gauge.py +5 -2
- cirq/transformers/gauge_compiling/multi_moment_cphase_gauge.py +242 -0
- cirq/transformers/gauge_compiling/multi_moment_cphase_gauge_test.py +243 -0
- cirq/transformers/gauge_compiling/multi_moment_gauge_compiling.py +151 -0
- cirq/transformers/gauge_compiling/sqrt_cz_gauge.py +2 -1
- cirq/transformers/heuristic_decompositions/gate_tabulation_math_utils.py +1 -1
- cirq/transformers/heuristic_decompositions/gate_tabulation_math_utils_test.py +6 -6
- cirq/transformers/heuristic_decompositions/two_qubit_gate_tabulation.py +2 -1
- cirq/transformers/measurement_transformers.py +2 -1
- cirq/transformers/measurement_transformers_test.py +45 -39
- cirq/transformers/merge_k_qubit_gates.py +2 -1
- cirq/transformers/merge_k_qubit_gates_test.py +1 -1
- cirq/transformers/merge_single_qubit_gates.py +2 -1
- cirq/transformers/merge_single_qubit_gates_test.py +22 -22
- cirq/transformers/noise_adding_test.py +2 -2
- cirq/transformers/optimize_for_target_gateset.py +2 -1
- cirq/transformers/optimize_for_target_gateset_test.py +11 -9
- cirq/transformers/qubit_management_transformers_test.py +6 -2
- cirq/transformers/routing/mapping_manager.py +2 -1
- cirq/transformers/routing/route_circuit_cqc.py +2 -1
- cirq/transformers/stratify.py +2 -1
- cirq/transformers/symbolize.py +2 -1
- cirq/transformers/tag_transformers.py +2 -1
- cirq/transformers/target_gatesets/compilation_target_gateset.py +2 -1
- cirq/transformers/target_gatesets/cz_gateset.py +2 -1
- cirq/transformers/target_gatesets/cz_gateset_test.py +1 -1
- cirq/transformers/target_gatesets/sqrt_iswap_gateset.py +2 -1
- cirq/transformers/transformer_api.py +2 -1
- cirq/transformers/transformer_primitives.py +271 -145
- cirq/transformers/transformer_primitives_test.py +185 -1
- cirq/value/abc_alt.py +2 -1
- cirq/value/classical_data.py +2 -1
- cirq/value/condition.py +2 -1
- cirq/value/digits.py +9 -2
- cirq/value/duration.py +6 -5
- cirq/value/linear_dict.py +4 -9
- cirq/value/measurement_key.py +2 -1
- cirq/value/periodic_value.py +3 -2
- cirq/value/product_state.py +2 -1
- cirq/value/value_equality_attr.py +2 -1
- cirq/vis/density_matrix.py +1 -1
- cirq/vis/heatmap.py +2 -1
- cirq/vis/histogram.py +2 -1
- cirq/vis/state_histogram.py +2 -1
- cirq/work/collector.py +2 -1
- cirq/work/observable_grouping.py +2 -1
- cirq/work/observable_measurement.py +2 -1
- cirq/work/observable_measurement_data.py +2 -1
- cirq/work/observable_measurement_test.py +1 -1
- cirq/work/observable_readout_calibration.py +2 -1
- cirq/work/observable_readout_calibration_test.py +1 -1
- cirq/work/observable_settings.py +2 -1
- cirq/work/sampler.py +2 -1
- cirq/work/sampler_test.py +1 -1
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/METADATA +4 -4
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/RECORD +391 -374
- cirq/contrib/json_test.py +0 -33
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/WHEEL +0 -0
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.7.0.dev20250924231107.dist-info → cirq_core-1.7.0.dev20251203004401.dist-info}/top_level.txt +0 -0
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterable, Iterator
|
|
18
|
+
from typing import Any, TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
from cirq import ops, value
|
|
20
21
|
from cirq.interop.quirk.cells.cell import Cell, CellMaker
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Callable, Iterable, Iterator
|
|
18
|
+
from typing import TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
from cirq.interop.quirk.cells.cell import Cell, CELL_SIZES, CellMaker
|
|
20
21
|
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterable, Iterator
|
|
18
|
+
from typing import cast, TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
from cirq import ops
|
|
20
21
|
from cirq.interop.quirk.cells.cell import CellMaker, ExplicitOperationsCell
|
|
@@ -16,17 +16,8 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import cmath
|
|
18
18
|
import re
|
|
19
|
-
from
|
|
20
|
-
|
|
21
|
-
Callable,
|
|
22
|
-
cast,
|
|
23
|
-
Iterable,
|
|
24
|
-
Iterator,
|
|
25
|
-
Mapping,
|
|
26
|
-
SupportsFloat,
|
|
27
|
-
TypeAlias,
|
|
28
|
-
TypeVar,
|
|
29
|
-
)
|
|
19
|
+
from collections.abc import Callable, Iterable, Iterator, Mapping
|
|
20
|
+
from typing import Any, cast, SupportsFloat, TypeAlias, TypeVar
|
|
30
21
|
|
|
31
22
|
import numpy as np
|
|
32
23
|
import sympy
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Callable, Iterator, Sequence
|
|
18
|
+
from typing import TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
from cirq import ops, value
|
|
20
21
|
from cirq.interop.quirk.cells.cell import CELL_SIZES, CellMaker
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Iterable, Iterator
|
|
18
|
+
from typing import Any, TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
from cirq import ops, value
|
|
20
21
|
from cirq.interop.quirk.cells.cell import Cell, CellMaker
|
|
@@ -16,7 +16,8 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import json
|
|
18
18
|
import urllib.parse
|
|
19
|
-
from
|
|
19
|
+
from collections.abc import Iterable, Mapping, Sequence
|
|
20
|
+
from typing import Any, cast, TYPE_CHECKING
|
|
20
21
|
|
|
21
22
|
import numpy as np
|
|
22
23
|
|
cirq/json_resolver_cache.py
CHANGED
cirq/linalg/decompositions.py
CHANGED
|
@@ -18,7 +18,8 @@ from __future__ import annotations
|
|
|
18
18
|
|
|
19
19
|
import cmath
|
|
20
20
|
import math
|
|
21
|
-
from
|
|
21
|
+
from collections.abc import Callable, Iterable
|
|
22
|
+
from typing import Any, cast, TYPE_CHECKING, TypeVar
|
|
22
23
|
|
|
23
24
|
import matplotlib.pyplot as plt
|
|
24
25
|
import numpy as np
|
|
@@ -243,7 +244,7 @@ def so4_to_magic_su2s(
|
|
|
243
244
|
|
|
244
245
|
@value.value_equality(approximate=True)
|
|
245
246
|
class AxisAngleDecomposition:
|
|
246
|
-
"""Represents a unitary operation as an axis, angle, and global phase.
|
|
247
|
+
r"""Represents a unitary operation as an axis, angle, and global phase.
|
|
247
248
|
|
|
248
249
|
The unitary $U$ is decomposed as follows:
|
|
249
250
|
|
|
@@ -472,6 +473,9 @@ class KakDecomposition:
|
|
|
472
473
|
f' global_phase={self.global_phase!r})'
|
|
473
474
|
)
|
|
474
475
|
|
|
476
|
+
def _has_unitary_(self) -> bool:
|
|
477
|
+
return True
|
|
478
|
+
|
|
475
479
|
def _unitary_(self) -> np.ndarray:
|
|
476
480
|
"""Returns the decomposition's two-qubit unitary matrix.
|
|
477
481
|
|
cirq/linalg/diagonalize.py
CHANGED
cirq/linalg/predicates.py
CHANGED
cirq/linalg/tolerance.py
CHANGED
cirq/linalg/transformations.py
CHANGED
cirq/ops/arithmetic_operation.py
CHANGED
|
@@ -17,7 +17,8 @@ from __future__ import annotations
|
|
|
17
17
|
|
|
18
18
|
import abc
|
|
19
19
|
import itertools
|
|
20
|
-
from
|
|
20
|
+
from collections.abc import Iterable, Sequence
|
|
21
|
+
from typing import cast, Self, TYPE_CHECKING
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
|
cirq/ops/boolean_hamiltonian.py
CHANGED
|
@@ -27,7 +27,8 @@ from __future__ import annotations
|
|
|
27
27
|
|
|
28
28
|
import functools
|
|
29
29
|
import itertools
|
|
30
|
-
from
|
|
30
|
+
from collections.abc import Generator, Sequence
|
|
31
|
+
from typing import Any
|
|
31
32
|
|
|
32
33
|
import sympy.parsing.sympy_parser as sympy_parser
|
|
33
34
|
|
|
@@ -334,8 +335,8 @@ def _get_gates_from_hamiltonians(
|
|
|
334
335
|
|
|
335
336
|
cnots = _simplify_cnots(cnots)
|
|
336
337
|
|
|
337
|
-
for
|
|
338
|
-
yield
|
|
338
|
+
for c, t in cnots:
|
|
339
|
+
yield cirq.CNOT(qubits[c], qubits[t])
|
|
339
340
|
|
|
340
341
|
sorted_hamiltonian_keys = sorted(
|
|
341
342
|
hamiltonians.keys(), key=functools.cmp_to_key(_gray_code_comparator)
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Mapping, Sequence, Set
|
|
18
|
+
from typing import Any, TYPE_CHECKING
|
|
18
19
|
|
|
19
20
|
import sympy
|
|
20
21
|
|
|
@@ -150,7 +151,7 @@ class ClassicallyControlledOperation(raw_types.Operation):
|
|
|
150
151
|
def _is_parameterized_(self) -> bool:
|
|
151
152
|
return protocols.is_parameterized(self._sub_operation)
|
|
152
153
|
|
|
153
|
-
def _parameter_names_(self) ->
|
|
154
|
+
def _parameter_names_(self) -> Set[str]:
|
|
154
155
|
return protocols.parameter_names(self._sub_operation)
|
|
155
156
|
|
|
156
157
|
def _resolve_parameters_(
|
cirq/ops/clifford_gate.py
CHANGED
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
17
|
import functools
|
|
18
|
+
from collections.abc import Sequence
|
|
18
19
|
from dataclasses import dataclass
|
|
19
20
|
from types import NotImplementedType
|
|
20
|
-
from typing import Any,
|
|
21
|
+
from typing import Any, TYPE_CHECKING
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
|
cirq/ops/clifford_gate_test.py
CHANGED
cirq/ops/common_channels.py
CHANGED
cirq/ops/common_gates.py
CHANGED
|
@@ -27,8 +27,9 @@ raised to a power (i.e. cirq.H**0.5). See the definition in EigenGate.
|
|
|
27
27
|
|
|
28
28
|
from __future__ import annotations
|
|
29
29
|
|
|
30
|
+
from collections.abc import Collection, Sequence
|
|
30
31
|
from types import NotImplementedType
|
|
31
|
-
from typing import Any, cast
|
|
32
|
+
from typing import Any, cast
|
|
32
33
|
|
|
33
34
|
import numpy as np
|
|
34
35
|
import sympy
|
cirq/ops/control_values.py
CHANGED
|
@@ -16,8 +16,9 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import abc
|
|
18
18
|
import itertools
|
|
19
|
+
from collections.abc import Collection, Iterator, Sequence
|
|
19
20
|
from functools import cached_property
|
|
20
|
-
from typing import Any,
|
|
21
|
+
from typing import Any, TYPE_CHECKING
|
|
21
22
|
|
|
22
23
|
from cirq import protocols, value
|
|
23
24
|
|
cirq/ops/controlled_gate.py
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
+
from collections.abc import Collection, Sequence, Set
|
|
17
18
|
from types import NotImplementedType
|
|
18
|
-
from typing import
|
|
19
|
+
from typing import Any, TYPE_CHECKING
|
|
19
20
|
|
|
20
21
|
import numpy as np
|
|
21
22
|
|
|
@@ -244,7 +245,7 @@ class ControlledGate(raw_types.Gate):
|
|
|
244
245
|
def _is_parameterized_(self) -> bool:
|
|
245
246
|
return protocols.is_parameterized(self.sub_gate)
|
|
246
247
|
|
|
247
|
-
def _parameter_names_(self) ->
|
|
248
|
+
def _parameter_names_(self) -> Set[str]:
|
|
248
249
|
return protocols.parameter_names(self.sub_gate)
|
|
249
250
|
|
|
250
251
|
def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool) -> ControlledGate:
|
cirq/ops/controlled_gate_test.py
CHANGED
cirq/ops/controlled_operation.py
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
+
from collections.abc import Collection, Sequence, Set
|
|
17
18
|
from types import EllipsisType, NotImplementedType
|
|
18
|
-
from typing import
|
|
19
|
+
from typing import Any, TYPE_CHECKING
|
|
19
20
|
|
|
20
21
|
import numpy as np
|
|
21
22
|
|
|
@@ -261,7 +262,7 @@ class ControlledOperation(raw_types.Operation):
|
|
|
261
262
|
def _is_parameterized_(self) -> bool:
|
|
262
263
|
return protocols.is_parameterized(self.sub_operation)
|
|
263
264
|
|
|
264
|
-
def _parameter_names_(self) ->
|
|
265
|
+
def _parameter_names_(self) -> Set[str]:
|
|
265
266
|
return protocols.parameter_names(self.sub_operation)
|
|
266
267
|
|
|
267
268
|
def _resolve_parameters_(
|
|
@@ -16,8 +16,9 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import itertools
|
|
18
18
|
import re
|
|
19
|
+
from collections.abc import Sequence
|
|
19
20
|
from types import EllipsisType, NotImplementedType
|
|
20
|
-
from typing import cast
|
|
21
|
+
from typing import cast
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
23
24
|
import pytest
|
cirq/ops/dense_pauli_string.py
CHANGED
|
@@ -16,19 +16,9 @@ from __future__ import annotations
|
|
|
16
16
|
|
|
17
17
|
import abc
|
|
18
18
|
import numbers
|
|
19
|
+
from collections.abc import Callable, Iterable, Iterator, Sequence, Set
|
|
19
20
|
from types import NotImplementedType
|
|
20
|
-
from typing import
|
|
21
|
-
AbstractSet,
|
|
22
|
-
Any,
|
|
23
|
-
Callable,
|
|
24
|
-
cast,
|
|
25
|
-
Iterable,
|
|
26
|
-
Iterator,
|
|
27
|
-
overload,
|
|
28
|
-
Self,
|
|
29
|
-
Sequence,
|
|
30
|
-
TYPE_CHECKING,
|
|
31
|
-
)
|
|
21
|
+
from typing import Any, cast, overload, Self, TYPE_CHECKING
|
|
32
22
|
|
|
33
23
|
import numpy as np
|
|
34
24
|
import sympy
|
|
@@ -187,7 +177,7 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
|
|
|
187
177
|
def _is_parameterized_(self) -> bool:
|
|
188
178
|
return protocols.is_parameterized(self.coefficient)
|
|
189
179
|
|
|
190
|
-
def _parameter_names_(self) ->
|
|
180
|
+
def _parameter_names_(self) -> Set[str]:
|
|
191
181
|
return protocols.parameter_names(self.coefficient)
|
|
192
182
|
|
|
193
183
|
def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool) -> Self:
|
cirq/ops/diagonal_gate.py
CHANGED
|
@@ -20,7 +20,8 @@ passed as a list.
|
|
|
20
20
|
|
|
21
21
|
from __future__ import annotations
|
|
22
22
|
|
|
23
|
-
from
|
|
23
|
+
from collections.abc import Iterator, Sequence, Set
|
|
24
|
+
from typing import Any, TYPE_CHECKING
|
|
24
25
|
|
|
25
26
|
import numpy as np
|
|
26
27
|
import sympy
|
|
@@ -95,7 +96,7 @@ class DiagonalGate(raw_types.Gate):
|
|
|
95
96
|
def _is_parameterized_(self) -> bool:
|
|
96
97
|
return any(protocols.is_parameterized(angle) for angle in self._diag_angles_radians)
|
|
97
98
|
|
|
98
|
-
def _parameter_names_(self) ->
|
|
99
|
+
def _parameter_names_(self) -> Set[str]:
|
|
99
100
|
return {
|
|
100
101
|
name for angle in self._diag_angles_radians for name in protocols.parameter_names(angle)
|
|
101
102
|
}
|
cirq/ops/eigen_gate.py
CHANGED
|
@@ -18,8 +18,9 @@ import abc
|
|
|
18
18
|
import fractions
|
|
19
19
|
import math
|
|
20
20
|
import numbers
|
|
21
|
+
from collections.abc import Iterable, Set
|
|
21
22
|
from types import NotImplementedType
|
|
22
|
-
from typing import
|
|
23
|
+
from typing import Any, cast, NamedTuple, TYPE_CHECKING
|
|
23
24
|
|
|
24
25
|
import numpy as np
|
|
25
26
|
import sympy
|
|
@@ -341,16 +342,17 @@ class EigenGate(raw_types.Gate):
|
|
|
341
342
|
def _is_parameterized_(self) -> bool:
|
|
342
343
|
return protocols.is_parameterized(self._exponent)
|
|
343
344
|
|
|
344
|
-
def _parameter_names_(self) ->
|
|
345
|
+
def _parameter_names_(self) -> Set[str]:
|
|
345
346
|
return protocols.parameter_names(self._exponent)
|
|
346
347
|
|
|
347
348
|
def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool) -> EigenGate:
|
|
348
349
|
exponent = resolver.value_of(self._exponent, recursive)
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
350
|
+
# Note that int/float checking is purposely done first,
|
|
351
|
+
# since numbers instance checking is somewhat slow.
|
|
352
|
+
if isinstance(exponent, (int, float)) or isinstance(exponent, numbers.Real): # noqa: SIM101
|
|
353
|
+
exponent = float(exponent)
|
|
354
|
+
elif isinstance(exponent, numbers.Complex):
|
|
355
|
+
raise ValueError(f'Complex exponent {exponent} not supported for EigenGate')
|
|
354
356
|
return self._with_exponent(exponent=exponent)
|
|
355
357
|
|
|
356
358
|
def _equal_up_to_global_phase_(self, other, atol):
|
cirq/ops/fourier_transform.py
CHANGED
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
-
from
|
|
17
|
+
from collections.abc import Set
|
|
18
|
+
from typing import Any
|
|
18
19
|
|
|
19
20
|
import numpy as np
|
|
20
21
|
import sympy
|
|
@@ -163,7 +164,7 @@ class PhaseGradientGate(raw_types.Gate):
|
|
|
163
164
|
def _is_parameterized_(self) -> bool:
|
|
164
165
|
return cirq.is_parameterized(self.exponent)
|
|
165
166
|
|
|
166
|
-
def _parameter_names_(self) ->
|
|
167
|
+
def _parameter_names_(self) -> Set[str]:
|
|
167
168
|
return cirq.parameter_names(self.exponent)
|
|
168
169
|
|
|
169
170
|
def _resolve_parameters_(
|
|
@@ -107,9 +107,7 @@ def test_qft() -> None:
|
|
|
107
107
|
|
|
108
108
|
arr = np.array([[1, 1, 1, 1], [1, -1j, -1, 1j], [1, -1, 1, -1], [1, 1j, -1, -1j]]) / 2
|
|
109
109
|
np.testing.assert_allclose(
|
|
110
|
-
cirq.unitary(cirq.qft(*cirq.LineQubit.range(2)) ** -1),
|
|
111
|
-
arr, # type: ignore[arg-type]
|
|
112
|
-
atol=1e-8,
|
|
110
|
+
cirq.unitary(cirq.qft(*cirq.LineQubit.range(2)) ** -1), arr, atol=1e-8
|
|
113
111
|
)
|
|
114
112
|
|
|
115
113
|
for k in range(4):
|
|
@@ -121,7 +119,7 @@ def test_qft() -> None:
|
|
|
121
119
|
|
|
122
120
|
def test_inverse() -> None:
|
|
123
121
|
a, b, c = cirq.LineQubit.range(3)
|
|
124
|
-
assert cirq.qft(a, b, c, inverse=True) == cirq.qft(a, b, c) ** -1
|
|
122
|
+
assert cirq.qft(a, b, c, inverse=True) == cirq.qft(a, b, c) ** -1
|
|
125
123
|
assert cirq.qft(a, b, c, inverse=True, without_reverse=True) == cirq.inverse(
|
|
126
124
|
cirq.qft(a, b, c, without_reverse=True)
|
|
127
125
|
)
|
cirq/ops/fsim_gate.py
CHANGED
|
@@ -26,7 +26,8 @@ from __future__ import annotations
|
|
|
26
26
|
|
|
27
27
|
import cmath
|
|
28
28
|
import math
|
|
29
|
-
from
|
|
29
|
+
from collections.abc import Iterator, Set
|
|
30
|
+
from typing import Any
|
|
30
31
|
|
|
31
32
|
import numpy as np
|
|
32
33
|
import sympy
|
|
@@ -125,7 +126,7 @@ class FSimGate(gate_features.InterchangeableQubitsGate, raw_types.Gate):
|
|
|
125
126
|
def _is_parameterized_(self) -> bool:
|
|
126
127
|
return cirq.is_parameterized(self.theta) or cirq.is_parameterized(self.phi)
|
|
127
128
|
|
|
128
|
-
def _parameter_names_(self) ->
|
|
129
|
+
def _parameter_names_(self) -> Set[str]:
|
|
129
130
|
return cirq.parameter_names(self.theta) | cirq.parameter_names(self.phi)
|
|
130
131
|
|
|
131
132
|
def _has_unitary_(self):
|
cirq/ops/gate_operation.py
CHANGED
|
@@ -16,20 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
+
import numbers
|
|
19
20
|
import re
|
|
20
21
|
import warnings
|
|
22
|
+
from collections.abc import Collection, Mapping, Sequence, Set
|
|
21
23
|
from types import NotImplementedType
|
|
22
|
-
from typing import
|
|
23
|
-
AbstractSet,
|
|
24
|
-
Any,
|
|
25
|
-
cast,
|
|
26
|
-
Collection,
|
|
27
|
-
Mapping,
|
|
28
|
-
Self,
|
|
29
|
-
Sequence,
|
|
30
|
-
TYPE_CHECKING,
|
|
31
|
-
TypeVar,
|
|
32
|
-
)
|
|
24
|
+
from typing import Any, cast, Self, TYPE_CHECKING, TypeVar
|
|
33
25
|
|
|
34
26
|
from cirq import ops, protocols, value
|
|
35
27
|
from cirq.ops import control_values as cv, gate_features, raw_types
|
|
@@ -269,7 +261,7 @@ class GateOperation(raw_types.Operation):
|
|
|
269
261
|
return getter()
|
|
270
262
|
return NotImplemented
|
|
271
263
|
|
|
272
|
-
def _parameter_names_(self) ->
|
|
264
|
+
def _parameter_names_(self) -> Set[str]:
|
|
273
265
|
getter = getattr(self.gate, '_parameter_names_', None)
|
|
274
266
|
if getter is not None:
|
|
275
267
|
return getter()
|
|
@@ -332,12 +324,16 @@ class GateOperation(raw_types.Operation):
|
|
|
332
324
|
return self.gate._rmul_with_qubits(self._qubits, other)
|
|
333
325
|
|
|
334
326
|
def __add__(self, other):
|
|
327
|
+
if not isinstance(other, (ops.Operation, numbers.Number)):
|
|
328
|
+
return NotImplemented
|
|
335
329
|
return 1 * self + other
|
|
336
330
|
|
|
337
331
|
def __radd__(self, other):
|
|
338
332
|
return other + 1 * self
|
|
339
333
|
|
|
340
334
|
def __sub__(self, other):
|
|
335
|
+
if not isinstance(other, (ops.Operation, numbers.Number)):
|
|
336
|
+
return NotImplemented
|
|
341
337
|
return 1 * self - other
|
|
342
338
|
|
|
343
339
|
def __rsub__(self, other):
|