cirq-core 1.5.0.dev20240907074237__py3-none-any.whl → 1.5.0.dev20240911234931__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.
Potentially problematic release.
This version of cirq-core might be problematic. Click here for more details.
- cirq/__init__.py +585 -568
- cirq/_version.py +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/__init__.py +15 -9
- cirq/contrib/__init__.py +2 -2
- cirq/contrib/acquaintance/__init__.py +44 -29
- cirq/contrib/acquaintance/strategies/__init__.py +9 -3
- cirq/contrib/bayesian_network/__init__.py +3 -1
- cirq/contrib/circuitdag/__init__.py +1 -1
- cirq/contrib/circuitdag/circuit_dag.py +6 -8
- cirq/contrib/graph_device/__init__.py +8 -8
- cirq/contrib/noise_models/__init__.py +5 -6
- cirq/contrib/paulistring/__init__.py +18 -10
- cirq/contrib/qasm_import/__init__.py +2 -2
- cirq/contrib/qcircuit/__init__.py +6 -4
- cirq/contrib/quantum_volume/__init__.py +7 -7
- cirq/contrib/quimb/__init__.py +16 -13
- cirq/contrib/quirk/__init__.py +1 -1
- cirq/contrib/routing/__init__.py +12 -9
- cirq/contrib/svg/__init__.py +1 -1
- cirq/devices/__init__.py +34 -25
- cirq/experiments/__init__.py +45 -34
- cirq/interop/__init__.py +4 -1
- cirq/interop/quirk/__init__.py +7 -4
- cirq/interop/quirk/cells/__init__.py +17 -6
- cirq/ion/__init__.py +4 -2
- cirq/linalg/__init__.py +61 -51
- cirq/neutral_atoms/__init__.py +2 -2
- cirq/ops/__init__.py +171 -130
- cirq/ops/boolean_hamiltonian.py +2 -1
- cirq/protocols/__init__.py +135 -83
- cirq/protocols/json_test_data/__init__.py +1 -1
- cirq/qis/__init__.py +48 -36
- cirq/sim/__init__.py +55 -37
- cirq/sim/clifford/__init__.py +17 -9
- cirq/study/__init__.py +26 -21
- cirq/testing/__init__.py +84 -58
- cirq/testing/_compat_test_data/module_a/__init__.py +2 -2
- cirq/testing/_compat_test_data/module_a/sub/subsub/__init__.py +1 -1
- cirq/testing/json.py +2 -1
- cirq/transformers/__init__.py +95 -83
- cirq/transformers/analytical_decompositions/__init__.py +27 -24
- cirq/transformers/gauge_compiling/__init__.py +22 -9
- cirq/transformers/heuristic_decompositions/__init__.py +3 -3
- cirq/transformers/routing/__init__.py +14 -5
- cirq/transformers/target_gatesets/__init__.py +7 -5
- cirq/value/__init__.py +50 -30
- cirq/vis/__init__.py +9 -6
- cirq/work/__init__.py +19 -13
- {cirq_core-1.5.0.dev20240907074237.dist-info → cirq_core-1.5.0.dev20240911234931.dist-info}/METADATA +1 -1
- {cirq_core-1.5.0.dev20240907074237.dist-info → cirq_core-1.5.0.dev20240911234931.dist-info}/RECORD +54 -54
- {cirq_core-1.5.0.dev20240907074237.dist-info → cirq_core-1.5.0.dev20240911234931.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20240907074237.dist-info → cirq_core-1.5.0.dev20240911234931.dist-info}/WHEEL +0 -0
- {cirq_core-1.5.0.dev20240907074237.dist-info → cirq_core-1.5.0.dev20240911234931.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
cirq/circuits/__init__.py
CHANGED
|
@@ -14,15 +14,21 @@
|
|
|
14
14
|
|
|
15
15
|
"""Circuit classes, mutators, and outputs."""
|
|
16
16
|
|
|
17
|
-
from cirq.circuits.text_diagram_drawer import TextDiagramDrawer
|
|
17
|
+
from cirq.circuits.text_diagram_drawer import TextDiagramDrawer as TextDiagramDrawer
|
|
18
|
+
from cirq.circuits.qasm_output import QasmOutput as QasmOutput
|
|
18
19
|
|
|
19
|
-
from cirq.circuits.
|
|
20
|
+
from cirq.circuits.circuit import (
|
|
21
|
+
AbstractCircuit as AbstractCircuit,
|
|
22
|
+
Alignment as Alignment,
|
|
23
|
+
Circuit as Circuit,
|
|
24
|
+
)
|
|
25
|
+
from cirq.circuits.circuit_operation import CircuitOperation as CircuitOperation
|
|
26
|
+
from cirq.circuits.frozen_circuit import FrozenCircuit as FrozenCircuit
|
|
27
|
+
from cirq.circuits.insert_strategy import InsertStrategy as InsertStrategy
|
|
20
28
|
|
|
21
|
-
from cirq.circuits.
|
|
22
|
-
from cirq.circuits.circuit_operation import CircuitOperation
|
|
23
|
-
from cirq.circuits.frozen_circuit import FrozenCircuit
|
|
24
|
-
from cirq.circuits.insert_strategy import InsertStrategy
|
|
29
|
+
from cirq.circuits.moment import Moment as Moment
|
|
25
30
|
|
|
26
|
-
from cirq.circuits.
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
from cirq.circuits.optimization_pass import (
|
|
32
|
+
PointOptimizer as PointOptimizer,
|
|
33
|
+
PointOptimizationSummary as PointOptimizationSummary,
|
|
34
|
+
)
|
cirq/contrib/__init__.py
CHANGED
|
@@ -21,6 +21,6 @@ this package.
|
|
|
21
21
|
from cirq.contrib import acquaintance
|
|
22
22
|
from cirq.contrib import graph_device
|
|
23
23
|
from cirq.contrib import quirk
|
|
24
|
-
from cirq.contrib.qcircuit import circuit_to_latex_using_qcircuit
|
|
24
|
+
from cirq.contrib.qcircuit import circuit_to_latex_using_qcircuit as circuit_to_latex_using_qcircuit
|
|
25
25
|
from cirq.contrib import json
|
|
26
|
-
from cirq.contrib.circuitdag import CircuitDag, Unique
|
|
26
|
+
from cirq.contrib.circuitdag import CircuitDag as CircuitDag, Unique as Unique
|
|
@@ -13,55 +13,70 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
"""Tools for creating and using acquaintance strategies."""
|
|
16
|
+
from cirq.contrib.acquaintance.bipartite import (
|
|
17
|
+
BipartiteGraphType as BipartiteGraphType,
|
|
18
|
+
BipartiteSwapNetworkGate as BipartiteSwapNetworkGate,
|
|
19
|
+
)
|
|
16
20
|
|
|
17
|
-
from cirq.contrib.acquaintance.
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
from cirq.contrib.acquaintance.devices import (
|
|
22
|
+
get_acquaintance_size as get_acquaintance_size,
|
|
23
|
+
UnconstrainedAcquaintanceDevice as UnconstrainedAcquaintanceDevice,
|
|
24
|
+
)
|
|
20
25
|
|
|
21
26
|
from cirq.contrib.acquaintance.executor import (
|
|
22
|
-
AcquaintanceOperation,
|
|
23
|
-
GreedyExecutionStrategy,
|
|
24
|
-
StrategyExecutorTransformer,
|
|
27
|
+
AcquaintanceOperation as AcquaintanceOperation,
|
|
28
|
+
GreedyExecutionStrategy as GreedyExecutionStrategy,
|
|
29
|
+
StrategyExecutorTransformer as StrategyExecutorTransformer,
|
|
25
30
|
)
|
|
26
31
|
|
|
27
|
-
from cirq.contrib.acquaintance.gates import
|
|
32
|
+
from cirq.contrib.acquaintance.gates import (
|
|
33
|
+
acquaint as acquaint,
|
|
34
|
+
AcquaintanceOpportunityGate as AcquaintanceOpportunityGate,
|
|
35
|
+
SwapNetworkGate as SwapNetworkGate,
|
|
36
|
+
)
|
|
28
37
|
|
|
29
|
-
from cirq.contrib.acquaintance.inspection_utils import
|
|
38
|
+
from cirq.contrib.acquaintance.inspection_utils import (
|
|
39
|
+
get_logical_acquaintance_opportunities as get_logical_acquaintance_opportunities,
|
|
40
|
+
)
|
|
30
41
|
|
|
31
42
|
from cirq.contrib.acquaintance.mutation_utils import (
|
|
32
|
-
expose_acquaintance_gates,
|
|
33
|
-
rectify_acquaintance_strategy,
|
|
34
|
-
replace_acquaintance_with_swap_network,
|
|
43
|
+
expose_acquaintance_gates as expose_acquaintance_gates,
|
|
44
|
+
rectify_acquaintance_strategy as rectify_acquaintance_strategy,
|
|
45
|
+
replace_acquaintance_with_swap_network as replace_acquaintance_with_swap_network,
|
|
35
46
|
)
|
|
36
47
|
|
|
37
|
-
from cirq.contrib.acquaintance.optimizers import
|
|
48
|
+
from cirq.contrib.acquaintance.optimizers import (
|
|
49
|
+
remove_redundant_acquaintance_opportunities as remove_redundant_acquaintance_opportunities,
|
|
50
|
+
)
|
|
38
51
|
|
|
39
52
|
from cirq.contrib.acquaintance.permutation import (
|
|
40
|
-
LinearPermutationGate,
|
|
41
|
-
PermutationGate,
|
|
42
|
-
SwapPermutationGate,
|
|
43
|
-
update_mapping,
|
|
44
|
-
get_logical_operations,
|
|
45
|
-
display_mapping,
|
|
46
|
-
return_to_initial_mapping,
|
|
47
|
-
uses_consistent_swap_gate,
|
|
48
|
-
EXPAND_PERMUTATION_GATES,
|
|
49
|
-
DECOMPOSE_PERMUTATION_GATES,
|
|
53
|
+
LinearPermutationGate as LinearPermutationGate,
|
|
54
|
+
PermutationGate as PermutationGate,
|
|
55
|
+
SwapPermutationGate as SwapPermutationGate,
|
|
56
|
+
update_mapping as update_mapping,
|
|
57
|
+
get_logical_operations as get_logical_operations,
|
|
58
|
+
display_mapping as display_mapping,
|
|
59
|
+
return_to_initial_mapping as return_to_initial_mapping,
|
|
60
|
+
uses_consistent_swap_gate as uses_consistent_swap_gate,
|
|
61
|
+
EXPAND_PERMUTATION_GATES as EXPAND_PERMUTATION_GATES,
|
|
62
|
+
DECOMPOSE_PERMUTATION_GATES as DECOMPOSE_PERMUTATION_GATES,
|
|
50
63
|
)
|
|
51
64
|
|
|
52
|
-
from cirq.contrib.acquaintance.shift import CircularShiftGate
|
|
65
|
+
from cirq.contrib.acquaintance.shift import CircularShiftGate as CircularShiftGate
|
|
53
66
|
|
|
54
|
-
from cirq.contrib.acquaintance.shift_swap_network import
|
|
67
|
+
from cirq.contrib.acquaintance.shift_swap_network import (
|
|
68
|
+
ShiftSwapNetworkGate as ShiftSwapNetworkGate,
|
|
69
|
+
)
|
|
55
70
|
|
|
56
71
|
from cirq.contrib.acquaintance.strategies import (
|
|
57
|
-
complete_acquaintance_strategy,
|
|
58
|
-
cubic_acquaintance_strategy,
|
|
59
|
-
quartic_paired_acquaintance_strategy,
|
|
72
|
+
complete_acquaintance_strategy as complete_acquaintance_strategy,
|
|
73
|
+
cubic_acquaintance_strategy as cubic_acquaintance_strategy,
|
|
74
|
+
quartic_paired_acquaintance_strategy as quartic_paired_acquaintance_strategy,
|
|
60
75
|
)
|
|
61
76
|
|
|
62
77
|
from cirq.contrib.acquaintance.topological_sort import (
|
|
63
|
-
is_topologically_sorted,
|
|
64
|
-
random_topological_sort,
|
|
78
|
+
is_topologically_sorted as is_topologically_sorted,
|
|
79
|
+
random_topological_sort as random_topological_sort,
|
|
65
80
|
)
|
|
66
81
|
|
|
67
82
|
from cirq.contrib.acquaintance import testing
|
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
|
|
15
15
|
"""Acquaintance strategies."""
|
|
16
16
|
|
|
17
|
-
from cirq.contrib.acquaintance.strategies.complete import
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
from cirq.contrib.acquaintance.strategies.complete import (
|
|
18
|
+
complete_acquaintance_strategy as complete_acquaintance_strategy,
|
|
19
|
+
)
|
|
20
|
+
from cirq.contrib.acquaintance.strategies.cubic import (
|
|
21
|
+
cubic_acquaintance_strategy as cubic_acquaintance_strategy,
|
|
22
|
+
)
|
|
23
|
+
from cirq.contrib.acquaintance.strategies.quartic_paired import (
|
|
24
|
+
quartic_paired_acquaintance_strategy as quartic_paired_acquaintance_strategy,
|
|
25
|
+
)
|
|
@@ -12,4 +12,6 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from cirq.contrib.bayesian_network.bayesian_network_gate import
|
|
15
|
+
from cirq.contrib.bayesian_network.bayesian_network_gate import (
|
|
16
|
+
BayesianNetworkGate as BayesianNetworkGate,
|
|
17
|
+
)
|
|
@@ -11,16 +11,14 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
from typing import Any, Callable, Dict, Generic, Iterator, TypeVar, cast
|
|
15
16
|
|
|
16
17
|
import functools
|
|
17
18
|
import networkx
|
|
18
19
|
|
|
20
|
+
import cirq
|
|
19
21
|
from cirq import ops
|
|
20
|
-
from cirq.circuits import circuit
|
|
21
|
-
|
|
22
|
-
if TYPE_CHECKING:
|
|
23
|
-
import cirq
|
|
24
22
|
|
|
25
23
|
T = TypeVar('T')
|
|
26
24
|
|
|
@@ -98,7 +96,7 @@ class CircuitDag(networkx.DiGraph):
|
|
|
98
96
|
|
|
99
97
|
@staticmethod
|
|
100
98
|
def from_circuit(
|
|
101
|
-
circuit:
|
|
99
|
+
circuit: cirq.Circuit,
|
|
102
100
|
can_reorder: Callable[['cirq.Operation', 'cirq.Operation'], bool] = _disjoint_qubits,
|
|
103
101
|
) -> 'CircuitDag':
|
|
104
102
|
return CircuitDag.from_ops(circuit.all_operations(), can_reorder=can_reorder)
|
|
@@ -179,8 +177,8 @@ class CircuitDag(networkx.DiGraph):
|
|
|
179
177
|
def all_qubits(self):
|
|
180
178
|
return frozenset(q for node in self.nodes for q in node.val.qubits)
|
|
181
179
|
|
|
182
|
-
def to_circuit(self) ->
|
|
183
|
-
return
|
|
180
|
+
def to_circuit(self) -> cirq.Circuit:
|
|
181
|
+
return cirq.Circuit(self.all_operations(), strategy=cirq.InsertStrategy.EARLIEST)
|
|
184
182
|
|
|
185
183
|
def findall_nodes_until_blocked(
|
|
186
184
|
self, is_blocker: Callable[['cirq.Operation'], bool]
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
|
|
15
15
|
"""Tools for representing a device as an edge-labelled graph."""
|
|
16
16
|
|
|
17
|
-
from cirq.contrib.graph_device.hypergraph import UndirectedHypergraph
|
|
17
|
+
from cirq.contrib.graph_device.hypergraph import UndirectedHypergraph as UndirectedHypergraph
|
|
18
18
|
|
|
19
19
|
from cirq.contrib.graph_device.graph_device import (
|
|
20
|
-
is_undirected_device_graph,
|
|
21
|
-
is_crosstalk_graph,
|
|
22
|
-
FixedDurationUndirectedGraphDeviceEdge,
|
|
23
|
-
UndirectedGraphDevice,
|
|
24
|
-
UnconstrainedUndirectedGraphDeviceEdge,
|
|
20
|
+
is_undirected_device_graph as is_undirected_device_graph,
|
|
21
|
+
is_crosstalk_graph as is_crosstalk_graph,
|
|
22
|
+
FixedDurationUndirectedGraphDeviceEdge as FixedDurationUndirectedGraphDeviceEdge,
|
|
23
|
+
UndirectedGraphDevice as UndirectedGraphDevice,
|
|
24
|
+
UnconstrainedUndirectedGraphDeviceEdge as UnconstrainedUndirectedGraphDeviceEdge,
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
from cirq.contrib.graph_device.uniform_graph_device import (
|
|
28
|
-
uniform_undirected_graph_device,
|
|
29
|
-
uniform_undirected_linear_device,
|
|
28
|
+
uniform_undirected_graph_device as uniform_undirected_graph_device,
|
|
29
|
+
uniform_undirected_linear_device as uniform_undirected_linear_device,
|
|
30
30
|
)
|
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
15
14
|
from cirq.contrib.noise_models.noise_models import (
|
|
16
|
-
DepolarizingNoiseModel,
|
|
17
|
-
ReadoutNoiseModel,
|
|
18
|
-
DampedReadoutNoiseModel,
|
|
19
|
-
DepolarizingWithReadoutNoiseModel,
|
|
20
|
-
DepolarizingWithDampedReadoutNoiseModel,
|
|
15
|
+
DepolarizingNoiseModel as DepolarizingNoiseModel,
|
|
16
|
+
ReadoutNoiseModel as ReadoutNoiseModel,
|
|
17
|
+
DampedReadoutNoiseModel as DampedReadoutNoiseModel,
|
|
18
|
+
DepolarizingWithReadoutNoiseModel as DepolarizingWithReadoutNoiseModel,
|
|
19
|
+
DepolarizingWithDampedReadoutNoiseModel as DepolarizingWithDampedReadoutNoiseModel,
|
|
21
20
|
)
|
|
@@ -14,23 +14,31 @@
|
|
|
14
14
|
|
|
15
15
|
"""Methods related to optimizing and transforming PauliStrings."""
|
|
16
16
|
|
|
17
|
-
from cirq.contrib.paulistring.clifford_target_gateset import
|
|
17
|
+
from cirq.contrib.paulistring.clifford_target_gateset import (
|
|
18
|
+
CliffordTargetGateset as CliffordTargetGateset,
|
|
19
|
+
)
|
|
18
20
|
|
|
19
21
|
from cirq.contrib.paulistring.separate import (
|
|
20
|
-
convert_and_separate_circuit,
|
|
21
|
-
pauli_string_half,
|
|
22
|
-
regular_half,
|
|
22
|
+
convert_and_separate_circuit as convert_and_separate_circuit,
|
|
23
|
+
pauli_string_half as pauli_string_half,
|
|
24
|
+
regular_half as regular_half,
|
|
23
25
|
)
|
|
24
26
|
|
|
25
27
|
from cirq.contrib.paulistring.pauli_string_dag import (
|
|
26
|
-
pauli_string_dag_from_circuit,
|
|
27
|
-
pauli_string_reorder_pred,
|
|
28
|
+
pauli_string_dag_from_circuit as pauli_string_dag_from_circuit,
|
|
29
|
+
pauli_string_reorder_pred as pauli_string_reorder_pred,
|
|
28
30
|
)
|
|
29
31
|
|
|
30
|
-
from cirq.contrib.paulistring.recombine import
|
|
32
|
+
from cirq.contrib.paulistring.recombine import (
|
|
33
|
+
move_pauli_strings_into_circuit as move_pauli_strings_into_circuit,
|
|
34
|
+
)
|
|
31
35
|
|
|
32
|
-
from cirq.contrib.paulistring.pauli_string_optimize import
|
|
36
|
+
from cirq.contrib.paulistring.pauli_string_optimize import (
|
|
37
|
+
pauli_string_optimized_circuit as pauli_string_optimized_circuit,
|
|
38
|
+
)
|
|
33
39
|
|
|
34
|
-
from cirq.contrib.paulistring.clifford_optimize import
|
|
40
|
+
from cirq.contrib.paulistring.clifford_optimize import (
|
|
41
|
+
clifford_optimized_circuit as clifford_optimized_circuit,
|
|
42
|
+
)
|
|
35
43
|
|
|
36
|
-
from cirq.contrib.paulistring.optimize import optimized_circuit
|
|
44
|
+
from cirq.contrib.paulistring.optimize import optimized_circuit as optimized_circuit
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from cirq.contrib.qasm_import.exception import QasmException
|
|
16
|
-
from cirq.contrib.qasm_import.qasm import circuit_from_qasm
|
|
15
|
+
from cirq.contrib.qasm_import.exception import QasmException as QasmException
|
|
16
|
+
from cirq.contrib.qasm_import.qasm import circuit_from_qasm as circuit_from_qasm
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
|
|
15
15
|
"""Converts cirq circuits into latex using qcircuit."""
|
|
16
16
|
|
|
17
|
-
from cirq.contrib.qcircuit.qcircuit_diagram import
|
|
17
|
+
from cirq.contrib.qcircuit.qcircuit_diagram import (
|
|
18
|
+
circuit_to_latex_using_qcircuit as circuit_to_latex_using_qcircuit,
|
|
19
|
+
)
|
|
18
20
|
|
|
19
21
|
from cirq.contrib.qcircuit.qcircuit_diagram_info import (
|
|
20
|
-
escape_text_for_latex,
|
|
21
|
-
get_multigate_parameters,
|
|
22
|
-
get_qcircuit_diagram_info,
|
|
22
|
+
escape_text_for_latex as escape_text_for_latex,
|
|
23
|
+
get_multigate_parameters as get_multigate_parameters,
|
|
24
|
+
get_qcircuit_diagram_info as get_qcircuit_diagram_info,
|
|
23
25
|
)
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"""Utilities running the Quantum Volume benchmark on devices"""
|
|
15
15
|
|
|
16
16
|
from cirq.contrib.quantum_volume.quantum_volume import (
|
|
17
|
-
generate_model_circuit,
|
|
18
|
-
compute_heavy_set,
|
|
19
|
-
sample_heavy_set,
|
|
20
|
-
compile_circuit,
|
|
21
|
-
calculate_quantum_volume,
|
|
22
|
-
QuantumVolumeResult,
|
|
23
|
-
CompilationResult,
|
|
17
|
+
generate_model_circuit as generate_model_circuit,
|
|
18
|
+
compute_heavy_set as compute_heavy_set,
|
|
19
|
+
sample_heavy_set as sample_heavy_set,
|
|
20
|
+
compile_circuit as compile_circuit,
|
|
21
|
+
calculate_quantum_volume as calculate_quantum_volume,
|
|
22
|
+
QuantumVolumeResult as QuantumVolumeResult,
|
|
23
|
+
CompilationResult as CompilationResult,
|
|
24
24
|
)
|
cirq/contrib/quimb/__init__.py
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
# pylint: disable=wrong-or-nonexistent-copyright-notice
|
|
2
2
|
from cirq.contrib.quimb.state_vector import (
|
|
3
|
-
circuit_for_expectation_value,
|
|
4
|
-
tensor_expectation_value,
|
|
5
|
-
circuit_to_tensors,
|
|
6
|
-
tensor_state_vector,
|
|
7
|
-
tensor_unitary,
|
|
3
|
+
circuit_for_expectation_value as circuit_for_expectation_value,
|
|
4
|
+
tensor_expectation_value as tensor_expectation_value,
|
|
5
|
+
circuit_to_tensors as circuit_to_tensors,
|
|
6
|
+
tensor_state_vector as tensor_state_vector,
|
|
7
|
+
tensor_unitary as tensor_unitary,
|
|
8
8
|
)
|
|
9
9
|
|
|
10
10
|
from cirq.contrib.quimb.density_matrix import (
|
|
11
|
-
tensor_density_matrix,
|
|
12
|
-
circuit_to_density_matrix_tensors,
|
|
11
|
+
tensor_density_matrix as tensor_density_matrix,
|
|
12
|
+
circuit_to_density_matrix_tensors as circuit_to_density_matrix_tensors,
|
|
13
13
|
)
|
|
14
14
|
|
|
15
|
-
from cirq.contrib.quimb.grid_circuits import
|
|
15
|
+
from cirq.contrib.quimb.grid_circuits import (
|
|
16
|
+
simplify_expectation_value_circuit as simplify_expectation_value_circuit,
|
|
17
|
+
get_grid_moments as get_grid_moments,
|
|
18
|
+
)
|
|
16
19
|
|
|
17
20
|
from cirq.contrib.quimb.mps_simulator import (
|
|
18
|
-
MPSOptions,
|
|
19
|
-
MPSSimulator,
|
|
20
|
-
MPSSimulatorStepResult,
|
|
21
|
-
MPSState,
|
|
22
|
-
MPSTrialResult,
|
|
21
|
+
MPSOptions as MPSOptions,
|
|
22
|
+
MPSSimulator as MPSSimulator,
|
|
23
|
+
MPSSimulatorStepResult as MPSSimulatorStepResult,
|
|
24
|
+
MPSState as MPSState,
|
|
25
|
+
MPSTrialResult as MPSTrialResult,
|
|
23
26
|
)
|
cirq/contrib/quirk/__init__.py
CHANGED
cirq/contrib/routing/__init__.py
CHANGED
|
@@ -14,15 +14,18 @@
|
|
|
14
14
|
"""Utilities for routing circuits on devices"""
|
|
15
15
|
|
|
16
16
|
from cirq.contrib.routing.device import (
|
|
17
|
-
get_linear_device_graph,
|
|
18
|
-
get_grid_device_graph,
|
|
19
|
-
gridqubits_to_graph_device,
|
|
20
|
-
nx_qubit_layout,
|
|
17
|
+
get_linear_device_graph as get_linear_device_graph,
|
|
18
|
+
get_grid_device_graph as get_grid_device_graph,
|
|
19
|
+
gridqubits_to_graph_device as gridqubits_to_graph_device,
|
|
20
|
+
nx_qubit_layout as nx_qubit_layout,
|
|
21
21
|
)
|
|
22
|
-
|
|
23
|
-
from cirq.contrib.routing.
|
|
22
|
+
|
|
23
|
+
from cirq.contrib.routing.router import route_circuit as route_circuit, ROUTERS as ROUTERS
|
|
24
|
+
|
|
25
|
+
from cirq.contrib.routing.swap_network import SwapNetwork as SwapNetwork
|
|
26
|
+
|
|
24
27
|
from cirq.contrib.routing.utils import (
|
|
25
|
-
get_circuit_connectivity,
|
|
26
|
-
is_valid_routing,
|
|
27
|
-
ops_are_consistent_with_device_graph,
|
|
28
|
+
get_circuit_connectivity as get_circuit_connectivity,
|
|
29
|
+
is_valid_routing as is_valid_routing,
|
|
30
|
+
ops_are_consistent_with_device_graph as ops_are_consistent_with_device_graph,
|
|
28
31
|
)
|
cirq/contrib/svg/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# pylint: disable=wrong-or-nonexistent-copyright-notice
|
|
2
|
-
from cirq.contrib.svg.svg import SVGCircuit, circuit_to_svg
|
|
2
|
+
from cirq.contrib.svg.svg import SVGCircuit as SVGCircuit, circuit_to_svg as circuit_to_svg
|
cirq/devices/__init__.py
CHANGED
|
@@ -14,45 +14,54 @@
|
|
|
14
14
|
|
|
15
15
|
"""Device classes, qubits, and topologies, as well as noise models."""
|
|
16
16
|
|
|
17
|
-
from cirq.devices.device import Device, DeviceMetadata
|
|
18
17
|
|
|
19
|
-
from cirq.devices.
|
|
18
|
+
from cirq.devices.device import Device as Device, DeviceMetadata as DeviceMetadata
|
|
20
19
|
|
|
21
|
-
from cirq.devices.
|
|
20
|
+
from cirq.devices.grid_device_metadata import GridDeviceMetadata as GridDeviceMetadata
|
|
22
21
|
|
|
23
|
-
from cirq.devices.
|
|
22
|
+
from cirq.devices.grid_qubit import GridQid as GridQid, GridQubit as GridQubit
|
|
24
23
|
|
|
25
|
-
from cirq.devices.
|
|
24
|
+
from cirq.devices.line_qubit import LineQubit as LineQubit, LineQid as LineQid
|
|
26
25
|
|
|
27
|
-
from cirq.devices.
|
|
26
|
+
from cirq.devices.unconstrained_device import UNCONSTRAINED_DEVICE as UNCONSTRAINED_DEVICE
|
|
27
|
+
|
|
28
|
+
from cirq.devices.noise_model import (
|
|
29
|
+
NO_NOISE as NO_NOISE,
|
|
30
|
+
NOISE_MODEL_LIKE as NOISE_MODEL_LIKE,
|
|
31
|
+
NoiseModel as NoiseModel,
|
|
32
|
+
ConstantQubitNoiseModel as ConstantQubitNoiseModel,
|
|
33
|
+
)
|
|
28
34
|
|
|
29
35
|
from cirq.devices.named_topologies import (
|
|
30
|
-
NamedTopology,
|
|
31
|
-
draw_gridlike,
|
|
32
|
-
LineTopology,
|
|
33
|
-
TiltedSquareLattice,
|
|
34
|
-
get_placements,
|
|
35
|
-
is_valid_placement,
|
|
36
|
-
draw_placements,
|
|
36
|
+
NamedTopology as NamedTopology,
|
|
37
|
+
draw_gridlike as draw_gridlike,
|
|
38
|
+
LineTopology as LineTopology,
|
|
39
|
+
TiltedSquareLattice as TiltedSquareLattice,
|
|
40
|
+
get_placements as get_placements,
|
|
41
|
+
is_valid_placement as is_valid_placement,
|
|
42
|
+
draw_placements as draw_placements,
|
|
37
43
|
)
|
|
38
44
|
|
|
39
|
-
from cirq.devices.insertion_noise_model import InsertionNoiseModel
|
|
45
|
+
from cirq.devices.insertion_noise_model import InsertionNoiseModel as InsertionNoiseModel
|
|
40
46
|
|
|
41
|
-
from cirq.devices.thermal_noise_model import ThermalNoiseModel
|
|
47
|
+
from cirq.devices.thermal_noise_model import ThermalNoiseModel as ThermalNoiseModel
|
|
42
48
|
|
|
43
|
-
from cirq.devices.noise_properties import
|
|
49
|
+
from cirq.devices.noise_properties import (
|
|
50
|
+
NoiseModelFromNoiseProperties as NoiseModelFromNoiseProperties,
|
|
51
|
+
NoiseProperties as NoiseProperties,
|
|
52
|
+
)
|
|
44
53
|
|
|
45
54
|
from cirq.devices.superconducting_qubits_noise_properties import (
|
|
46
|
-
SuperconductingQubitsNoiseProperties,
|
|
55
|
+
SuperconductingQubitsNoiseProperties as SuperconductingQubitsNoiseProperties,
|
|
47
56
|
)
|
|
48
57
|
|
|
49
58
|
from cirq.devices.noise_utils import (
|
|
50
|
-
OpIdentifier,
|
|
51
|
-
decay_constant_to_xeb_fidelity,
|
|
52
|
-
decay_constant_to_pauli_error,
|
|
53
|
-
pauli_error_to_decay_constant,
|
|
54
|
-
xeb_fidelity_to_decay_constant,
|
|
55
|
-
pauli_error_from_t1,
|
|
56
|
-
average_error,
|
|
57
|
-
decoherence_pauli_error,
|
|
59
|
+
OpIdentifier as OpIdentifier,
|
|
60
|
+
decay_constant_to_xeb_fidelity as decay_constant_to_xeb_fidelity,
|
|
61
|
+
decay_constant_to_pauli_error as decay_constant_to_pauli_error,
|
|
62
|
+
pauli_error_to_decay_constant as pauli_error_to_decay_constant,
|
|
63
|
+
xeb_fidelity_to_decay_constant as xeb_fidelity_to_decay_constant,
|
|
64
|
+
pauli_error_from_t1 as pauli_error_from_t1,
|
|
65
|
+
average_error as average_error,
|
|
66
|
+
decoherence_pauli_error as decoherence_pauli_error,
|
|
58
67
|
)
|
cirq/experiments/__init__.py
CHANGED
|
@@ -14,60 +14,71 @@
|
|
|
14
14
|
"""Experiments and tools for characterizing quantum operations."""
|
|
15
15
|
|
|
16
16
|
from cirq.experiments.qubit_characterizations import (
|
|
17
|
-
RandomizedBenchMarkResult,
|
|
18
|
-
single_qubit_randomized_benchmarking,
|
|
19
|
-
single_qubit_state_tomography,
|
|
20
|
-
TomographyResult,
|
|
21
|
-
two_qubit_randomized_benchmarking,
|
|
22
|
-
two_qubit_state_tomography,
|
|
23
|
-
parallel_single_qubit_randomized_benchmarking,
|
|
17
|
+
RandomizedBenchMarkResult as RandomizedBenchMarkResult,
|
|
18
|
+
single_qubit_randomized_benchmarking as single_qubit_randomized_benchmarking,
|
|
19
|
+
single_qubit_state_tomography as single_qubit_state_tomography,
|
|
20
|
+
TomographyResult as TomographyResult,
|
|
21
|
+
two_qubit_randomized_benchmarking as two_qubit_randomized_benchmarking,
|
|
22
|
+
two_qubit_state_tomography as two_qubit_state_tomography,
|
|
23
|
+
parallel_single_qubit_randomized_benchmarking as parallel_single_qubit_randomized_benchmarking,
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
from cirq.experiments.fidelity_estimation import (
|
|
27
|
-
hog_score_xeb_fidelity_from_probabilities,
|
|
28
|
-
linear_xeb_fidelity_from_probabilities,
|
|
29
|
-
linear_xeb_fidelity,
|
|
30
|
-
log_xeb_fidelity,
|
|
31
|
-
log_xeb_fidelity_from_probabilities,
|
|
32
|
-
xeb_fidelity,
|
|
27
|
+
hog_score_xeb_fidelity_from_probabilities as hog_score_xeb_fidelity_from_probabilities,
|
|
28
|
+
linear_xeb_fidelity_from_probabilities as linear_xeb_fidelity_from_probabilities,
|
|
29
|
+
linear_xeb_fidelity as linear_xeb_fidelity,
|
|
30
|
+
log_xeb_fidelity as log_xeb_fidelity,
|
|
31
|
+
log_xeb_fidelity_from_probabilities as log_xeb_fidelity_from_probabilities,
|
|
32
|
+
xeb_fidelity as xeb_fidelity,
|
|
33
33
|
)
|
|
34
34
|
|
|
35
|
-
from cirq.experiments.purity_estimation import
|
|
35
|
+
from cirq.experiments.purity_estimation import (
|
|
36
|
+
purity_from_probabilities as purity_from_probabilities,
|
|
37
|
+
)
|
|
36
38
|
|
|
37
39
|
from cirq.experiments.random_quantum_circuit_generation import (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
# pylint: disable=line-too-long
|
|
41
|
+
GRID_ALIGNED_PATTERN as GRID_ALIGNED_PATTERN,
|
|
42
|
+
GRID_STAGGERED_PATTERN as GRID_STAGGERED_PATTERN,
|
|
43
|
+
HALF_GRID_STAGGERED_PATTERN as HALF_GRID_STAGGERED_PATTERN,
|
|
44
|
+
GridInteractionLayer as GridInteractionLayer,
|
|
45
|
+
random_rotations_between_grid_interaction_layers_circuit as random_rotations_between_grid_interaction_layers_circuit,
|
|
43
46
|
)
|
|
44
47
|
|
|
45
48
|
from cirq.experiments.readout_confusion_matrix import (
|
|
46
|
-
TensoredConfusionMatrices,
|
|
47
|
-
measure_confusion_matrix,
|
|
49
|
+
TensoredConfusionMatrices as TensoredConfusionMatrices,
|
|
50
|
+
measure_confusion_matrix as measure_confusion_matrix,
|
|
48
51
|
)
|
|
49
52
|
|
|
50
53
|
from cirq.experiments.n_qubit_tomography import (
|
|
51
|
-
get_state_tomography_data,
|
|
52
|
-
state_tomography,
|
|
53
|
-
StateTomographyExperiment,
|
|
54
|
+
get_state_tomography_data as get_state_tomography_data,
|
|
55
|
+
state_tomography as state_tomography,
|
|
56
|
+
StateTomographyExperiment as StateTomographyExperiment,
|
|
54
57
|
)
|
|
55
58
|
|
|
56
59
|
from cirq.experiments.single_qubit_readout_calibration import (
|
|
57
|
-
estimate_parallel_single_qubit_readout_errors,
|
|
58
|
-
estimate_single_qubit_readout_errors,
|
|
59
|
-
SingleQubitReadoutCalibrationResult,
|
|
60
|
+
estimate_parallel_single_qubit_readout_errors as estimate_parallel_single_qubit_readout_errors,
|
|
61
|
+
estimate_single_qubit_readout_errors as estimate_single_qubit_readout_errors,
|
|
62
|
+
SingleQubitReadoutCalibrationResult as SingleQubitReadoutCalibrationResult,
|
|
60
63
|
)
|
|
61
64
|
|
|
62
|
-
from cirq.experiments.t1_decay_experiment import
|
|
65
|
+
from cirq.experiments.t1_decay_experiment import (
|
|
66
|
+
t1_decay as t1_decay,
|
|
67
|
+
T1DecayResult as T1DecayResult,
|
|
68
|
+
)
|
|
63
69
|
|
|
64
|
-
from cirq.experiments.t2_decay_experiment import
|
|
70
|
+
from cirq.experiments.t2_decay_experiment import (
|
|
71
|
+
t2_decay as t2_decay,
|
|
72
|
+
T2DecayResult as T2DecayResult,
|
|
73
|
+
)
|
|
65
74
|
|
|
66
|
-
from cirq.experiments.xeb_fitting import
|
|
75
|
+
from cirq.experiments.xeb_fitting import (
|
|
76
|
+
XEBPhasedFSimCharacterizationOptions as XEBPhasedFSimCharacterizationOptions,
|
|
77
|
+
)
|
|
67
78
|
|
|
68
79
|
from cirq.experiments.two_qubit_xeb import (
|
|
69
|
-
InferredXEBResult,
|
|
70
|
-
TwoQubitXEBResult,
|
|
71
|
-
parallel_two_qubit_xeb,
|
|
72
|
-
run_rb_and_xeb,
|
|
80
|
+
InferredXEBResult as InferredXEBResult,
|
|
81
|
+
TwoQubitXEBResult as TwoQubitXEBResult,
|
|
82
|
+
parallel_two_qubit_xeb as parallel_two_qubit_xeb,
|
|
83
|
+
run_rb_and_xeb as run_rb_and_xeb,
|
|
73
84
|
)
|
cirq/interop/__init__.py
CHANGED
|
@@ -13,4 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
"""Methods for interoperating with other quantum software."""
|
|
15
15
|
|
|
16
|
-
from cirq.interop.quirk import
|
|
16
|
+
from cirq.interop.quirk import (
|
|
17
|
+
quirk_json_to_circuit as quirk_json_to_circuit,
|
|
18
|
+
quirk_url_to_circuit as quirk_url_to_circuit,
|
|
19
|
+
)
|