cirq-core 1.5.0.dev20250206210935__py3-none-any.whl → 1.5.0.dev20250207063657__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/_version.py CHANGED
@@ -28,4 +28,4 @@ if sys.version_info < (3, 10, 0): # pragma: no cover
28
28
  'of cirq (e.g. "python -m pip install cirq==1.1.*")'
29
29
  )
30
30
 
31
- __version__ = "1.5.0.dev20250206210935"
31
+ __version__ = "1.5.0.dev20250207063657"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version():
6
- assert cirq.__version__ == "1.5.0.dev20250206210935"
6
+ assert cirq.__version__ == "1.5.0.dev20250207063657"
@@ -86,7 +86,7 @@ def _tokenize(text: str) -> List[str]:
86
86
  return _merge_scientific_float_tokens(g for g in result if g.strip())
87
87
 
88
88
 
89
- _ResolvedToken = Union[sympy.Expr, int, float, complex]
89
+ _ResolvedToken = Union[sympy.Expr, complex]
90
90
 
91
91
 
92
92
  class _CustomQuirkOperationToken:
@@ -25,7 +25,7 @@ if TYPE_CHECKING:
25
25
  from numpy.typing import DTypeLike, ArrayLike
26
26
 
27
27
 
28
- def kron(*factors: Union[np.ndarray, complex, float], shape_len: int = 2) -> np.ndarray:
28
+ def kron(*factors: Union[np.ndarray, complex], shape_len: int = 2) -> np.ndarray:
29
29
  """Computes the kronecker product of a sequence of values.
30
30
 
31
31
  A *args version of lambda args: functools.reduce(np.kron, args).
@@ -56,7 +56,7 @@ document(
56
56
  )
57
57
 
58
58
 
59
- def kron_with_controls(*factors: Union[np.ndarray, complex, float]) -> np.ndarray:
59
+ def kron_with_controls(*factors: Union[np.ndarray, complex]) -> np.ndarray:
60
60
  """Computes the kronecker product of a sequence of values and control tags.
61
61
 
62
62
  Use `cirq.CONTROL_TAG` to represent controls. Any entry of the output
@@ -283,13 +283,7 @@ class AxisAngleDecomposition:
283
283
  rotation axis, and g is the global phase.
284
284
  """
285
285
 
286
- def __init__(
287
- self,
288
- *,
289
- angle: float,
290
- axis: Tuple[float, float, float],
291
- global_phase: Union[int, float, complex],
292
- ):
286
+ def __init__(self, *, angle: float, axis: Tuple[float, float, float], global_phase: complex):
293
287
  if not np.isclose(np.linalg.norm(axis, 2), 1, atol=1e-8):
294
288
  raise ValueError('Axis vector must be normalized.')
295
289
  self.global_phase = complex(global_phase)
@@ -634,7 +628,7 @@ def scatter_plot_normalized_kak_interaction_coefficients(
634
628
  ax = cast(mplot3d.axes3d.Axes3D, fig.add_subplot(1, 1, 1, projection='3d'))
635
629
 
636
630
  def coord_transform(
637
- pts: Union[List[Tuple[int, int, int]], np.ndarray]
631
+ pts: Union[List[Tuple[int, int, int]], np.ndarray],
638
632
  ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
639
633
  if len(pts) == 0:
640
634
  return np.array([]), np.array([]), np.array([])
cirq/linalg/tolerance.py CHANGED
@@ -33,7 +33,7 @@ def all_near_zero(a: 'ArrayLike', *, atol: float = 1e-8) -> bool:
33
33
 
34
34
 
35
35
  def all_near_zero_mod(
36
- a: Union[float, complex, Iterable[float], np.ndarray], period: float, *, atol: float = 1e-8
36
+ a: Union[float, Iterable[float], np.ndarray], period: float, *, atol: float = 1e-8
37
37
  ) -> bool:
38
38
  """Checks if the tensor's elements are all near multiples of the period.
39
39
 
@@ -116,7 +116,7 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
116
116
  return self._pauli_mask
117
117
 
118
118
  @property
119
- def coefficient(self) -> Union[sympy.Expr, complex]:
119
+ def coefficient(self) -> 'cirq.TParamValComplex':
120
120
  """A complex coefficient or symbol."""
121
121
  return self._coefficient
122
122
 
@@ -359,7 +359,7 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
359
359
  coef = '+'
360
360
  elif self.coefficient == -1:
361
361
  coef = '-'
362
- elif isinstance(self.coefficient, (complex, sympy.Symbol)):
362
+ elif isinstance(self.coefficient, (numbers.Complex, sympy.Symbol)):
363
363
  coef = f'{self.coefficient}*'
364
364
  else:
365
365
  coef = f'({self.coefficient})*'
@@ -403,7 +403,7 @@ class BaseDensePauliString(raw_types.Gate, metaclass=abc.ABCMeta):
403
403
  @abc.abstractmethod
404
404
  def copy(
405
405
  self,
406
- coefficient: Optional[Union[sympy.Expr, int, float, complex]] = None,
406
+ coefficient: Optional['cirq.TParamValComplex'] = None,
407
407
  pauli_mask: Union[None, str, Iterable[int], np.ndarray] = None,
408
408
  ) -> Self:
409
409
  """Returns a copy with possibly modified contents.
@@ -459,7 +459,7 @@ class DensePauliString(BaseDensePauliString):
459
459
 
460
460
  def copy(
461
461
  self,
462
- coefficient: Optional[Union[sympy.Expr, int, float, complex]] = None,
462
+ coefficient: Optional['cirq.TParamValComplex'] = None,
463
463
  pauli_mask: Union[None, str, Iterable[int], np.ndarray] = None,
464
464
  ) -> 'DensePauliString':
465
465
  if pauli_mask is None and (coefficient is None or coefficient == self.coefficient):
@@ -559,7 +559,7 @@ class MutableDensePauliString(BaseDensePauliString):
559
559
 
560
560
  def copy(
561
561
  self,
562
- coefficient: Optional[Union[sympy.Expr, int, float, complex]] = None,
562
+ coefficient: Optional['cirq.TParamValComplex'] = None,
563
563
  pauli_mask: Union[None, str, Iterable[int], np.ndarray] = None,
564
564
  ) -> 'MutableDensePauliString':
565
565
  return MutableDensePauliString(
cirq/ops/eigen_gate.py CHANGED
@@ -359,7 +359,7 @@ class EigenGate(raw_types.Gate):
359
359
 
360
360
  def _resolve_parameters_(self, resolver: 'cirq.ParamResolver', recursive: bool) -> 'EigenGate':
361
361
  exponent = resolver.value_of(self._exponent, recursive)
362
- if isinstance(exponent, (complex, numbers.Complex)):
362
+ if isinstance(exponent, numbers.Complex):
363
363
  if isinstance(exponent, numbers.Real):
364
364
  exponent = float(exponent)
365
365
  else:
cirq/ops/identity.py CHANGED
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
  """IdentityGate."""
15
15
 
16
+ import numbers
16
17
  from types import NotImplementedType
17
18
  from typing import Any, Dict, Optional, Tuple, TYPE_CHECKING, Sequence, Union
18
19
 
@@ -72,7 +73,7 @@ class IdentityGate(raw_types.Gate):
72
73
  return len(self._qid_shape)
73
74
 
74
75
  def __pow__(self, power: Any) -> Any:
75
- if isinstance(power, (int, float, complex, sympy.Basic)):
76
+ if isinstance(power, (numbers.Complex, sympy.Basic)):
76
77
  return self
77
78
  return NotImplemented
78
79
 
@@ -126,7 +127,7 @@ class IdentityGate(raw_types.Gate):
126
127
  def _mul_with_qubits(self, qubits: Tuple['cirq.Qid', ...], other):
127
128
  if isinstance(other, raw_types.Operation):
128
129
  return other
129
- if isinstance(other, (complex, float, int)):
130
+ if isinstance(other, numbers.Complex):
130
131
  from cirq.ops.pauli_string import PauliString
131
132
 
132
133
  return PauliString(coefficient=other)
@@ -48,7 +48,7 @@ if TYPE_CHECKING:
48
48
 
49
49
  UnitPauliStringT = FrozenSet[Tuple[raw_types.Qid, pauli_gates.Pauli]]
50
50
  PauliSumLike = Union[
51
- int, float, complex, PauliString, 'PauliSum', pauli_string.SingleQubitPauliStringGateOperation
51
+ complex, PauliString, 'PauliSum', pauli_string.SingleQubitPauliStringGateOperation
52
52
  ]
53
53
  document(
54
54
  PauliSumLike,
cirq/ops/pauli_string.py CHANGED
@@ -28,7 +28,6 @@ from typing import (
28
28
  Optional,
29
29
  overload,
30
30
  Sequence,
31
- SupportsComplex,
32
31
  Tuple,
33
32
  TYPE_CHECKING,
34
33
  TypeVar,
@@ -271,9 +270,7 @@ class PauliString(raw_types.Operation, Generic[TKey]):
271
270
  pass
272
271
 
273
272
  @overload
274
- def __mul__(
275
- self, other: Union[complex, int, float, numbers.Number]
276
- ) -> 'cirq.PauliString[TKey]':
273
+ def __mul__(self, other: complex) -> 'cirq.PauliString[TKey]':
277
274
  pass
278
275
 
279
276
  def __mul__(self, other):
@@ -308,10 +305,9 @@ class PauliString(raw_types.Operation, Generic[TKey]):
308
305
  )
309
306
 
310
307
  def __rmul__(self, other) -> 'PauliString':
311
- if isinstance(other, numbers.Number):
308
+ if isinstance(other, numbers.Complex):
312
309
  return PauliString(
313
- qubit_pauli_map=self._qubit_pauli_map,
314
- coefficient=self._coefficient * complex(cast(SupportsComplex, other)),
310
+ qubit_pauli_map=self._qubit_pauli_map, coefficient=self._coefficient * other
315
311
  )
316
312
 
317
313
  if isinstance(other, raw_types.Operation) and isinstance(other.gate, identity.IdentityGate):
@@ -321,10 +317,9 @@ class PauliString(raw_types.Operation, Generic[TKey]):
321
317
  return NotImplemented
322
318
 
323
319
  def __truediv__(self, other):
324
- if isinstance(other, numbers.Number):
320
+ if isinstance(other, numbers.Complex):
325
321
  return PauliString(
326
- qubit_pauli_map=self._qubit_pauli_map,
327
- coefficient=self._coefficient / complex(cast(SupportsComplex, other)),
322
+ qubit_pauli_map=self._qubit_pauli_map, coefficient=self._coefficient / other
328
323
  )
329
324
  return NotImplemented
330
325
 
@@ -518,7 +513,7 @@ class PauliString(raw_types.Operation, Generic[TKey]):
518
513
  def _apply_unitary_(self, args: 'protocols.ApplyUnitaryArgs'):
519
514
  if not self._has_unitary_():
520
515
  return None
521
- assert isinstance(self.coefficient, complex)
516
+ assert isinstance(self.coefficient, numbers.Complex)
522
517
  if self.coefficient != 1:
523
518
  args.target_tensor *= self.coefficient
524
519
  return protocols.apply_unitaries([self[q].on(q) for q in self.qubits], self.qubits, args)
@@ -792,9 +787,11 @@ class PauliString(raw_types.Operation, Generic[TKey]):
792
787
  return self
793
788
 
794
789
  def __array_ufunc__(self, ufunc, method, *inputs, **kwargs):
795
- """Override behavior of numpy's exp method."""
790
+ """Override numpy behavior."""
796
791
  if ufunc == np.exp and len(inputs) == 1 and inputs[0] is self:
797
792
  return math.e**self
793
+ if ufunc == np.multiply and len(inputs) == 2 and inputs[1] is self:
794
+ return self * inputs[0]
798
795
  return NotImplemented
799
796
 
800
797
  def __pow__(self, power):
@@ -1174,14 +1171,14 @@ class SingleQubitPauliStringGateOperation( # type: ignore
1174
1171
  def __mul__(self, other):
1175
1172
  if isinstance(other, SingleQubitPauliStringGateOperation):
1176
1173
  return self._as_pauli_string() * other._as_pauli_string()
1177
- if isinstance(other, (PauliString, complex, float, int)):
1174
+ if isinstance(other, (PauliString, numbers.Complex)):
1178
1175
  return self._as_pauli_string() * other
1179
1176
  if (as_pauli_string := _try_interpret_as_pauli_string(other)) is not None:
1180
1177
  return self * as_pauli_string
1181
1178
  return NotImplemented
1182
1179
 
1183
1180
  def __rmul__(self, other):
1184
- if isinstance(other, (PauliString, complex, float, int)):
1181
+ if isinstance(other, (PauliString, numbers.Complex)):
1185
1182
  return other * self._as_pauli_string()
1186
1183
  if (as_pauli_string := _try_interpret_as_pauli_string(other)) is not None:
1187
1184
  return as_pauli_string * self
@@ -1430,8 +1427,8 @@ class MutablePauliString(Generic[TKey]):
1430
1427
  pauli_int = _pauli_like_to_pauli_int(qubit, pauli_gate_like)
1431
1428
  phase_log_i += self._imul_atom_helper(cast(TKey, qubit), pauli_int, sign)
1432
1429
  self.coefficient *= 1j ** (phase_log_i & 3)
1433
- elif isinstance(other, numbers.Number):
1434
- self.coefficient *= complex(cast(SupportsComplex, other))
1430
+ elif isinstance(other, numbers.Complex):
1431
+ self.coefficient *= other
1435
1432
  elif isinstance(other, raw_types.Operation) and isinstance(
1436
1433
  other.gate, identity.IdentityGate
1437
1434
  ):
@@ -392,14 +392,14 @@ class PauliStringPhasorGate(raw_types.Gate):
392
392
  ) -> 'PauliStringPhasorGate':
393
393
  exponent_neg = resolver.value_of(self.exponent_neg, recursive)
394
394
  exponent_pos = resolver.value_of(self.exponent_pos, recursive)
395
- if isinstance(exponent_neg, (complex, numbers.Complex)):
395
+ if isinstance(exponent_neg, numbers.Complex):
396
396
  if isinstance(exponent_neg, numbers.Real):
397
397
  exponent_neg = float(exponent_neg)
398
398
  else:
399
399
  raise ValueError(
400
400
  f'PauliStringPhasorGate does not support complex exponent {exponent_neg}'
401
401
  )
402
- if isinstance(exponent_pos, (complex, numbers.Complex)):
402
+ if isinstance(exponent_pos, numbers.Complex):
403
403
  if isinstance(exponent_pos, numbers.Real):
404
404
  exponent_pos = float(exponent_pos)
405
405
  else:
@@ -597,6 +597,8 @@ def test_numpy_ufunc():
597
597
  _ = np.exp(cirq.PauliString())
598
598
  x = np.exp(1j * np.pi * cirq.PauliString())
599
599
  assert x is not None
600
+ x = np.int64(2) * cirq.PauliString()
601
+ assert x == 2 * cirq.PauliString()
600
602
 
601
603
 
602
604
  def test_map_qubits():
cirq/ops/phased_x_gate.py CHANGED
@@ -176,12 +176,12 @@ class PhasedXPowGate(raw_types.Gate):
176
176
  """See `cirq.SupportsParameterization`."""
177
177
  phase_exponent = resolver.value_of(self._phase_exponent, recursive)
178
178
  exponent = resolver.value_of(self._exponent, recursive)
179
- if isinstance(phase_exponent, (complex, numbers.Complex)):
179
+ if isinstance(phase_exponent, numbers.Complex):
180
180
  if isinstance(phase_exponent, numbers.Real):
181
181
  phase_exponent = float(phase_exponent)
182
182
  else:
183
183
  raise ValueError(f'PhasedXPowGate does not support complex value {phase_exponent}')
184
- if isinstance(exponent, (complex, numbers.Complex)):
184
+ if isinstance(exponent, numbers.Complex):
185
185
  if isinstance(exponent, numbers.Real):
186
186
  exponent = float(exponent)
187
187
  else:
@@ -229,17 +229,17 @@ class PhasedXZGate(raw_types.Gate):
229
229
  z_exponent = resolver.value_of(self._z_exponent, recursive)
230
230
  x_exponent = resolver.value_of(self._x_exponent, recursive)
231
231
  axis_phase_exponent = resolver.value_of(self._axis_phase_exponent, recursive)
232
- if isinstance(z_exponent, (complex, numbers.Complex)):
232
+ if isinstance(z_exponent, numbers.Complex):
233
233
  if isinstance(z_exponent, numbers.Real):
234
234
  z_exponent = float(z_exponent)
235
235
  else:
236
236
  raise ValueError(f'Complex exponent {z_exponent} not allowed in cirq.PhasedXZGate')
237
- if isinstance(x_exponent, (complex, numbers.Complex)):
237
+ if isinstance(x_exponent, numbers.Complex):
238
238
  if isinstance(x_exponent, numbers.Real):
239
239
  x_exponent = float(x_exponent)
240
240
  else:
241
241
  raise ValueError(f'Complex exponent {x_exponent} not allowed in cirq.PhasedXZGate')
242
- if isinstance(axis_phase_exponent, (complex, numbers.Complex)):
242
+ if isinstance(axis_phase_exponent, numbers.Complex):
243
243
  if isinstance(axis_phase_exponent, numbers.Real):
244
244
  axis_phase_exponent = float(axis_phase_exponent)
245
245
  else:
cirq/ops/projector.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # pylint: disable=wrong-or-nonexistent-copyright-notice
2
2
  import itertools
3
3
  import math
4
- from typing import Any, Dict, Iterable, List, Mapping, Optional, Union
4
+ from typing import Any, Dict, Iterable, List, Mapping, Optional
5
5
 
6
6
  import numpy as np
7
7
  from scipy.sparse import csr_matrix
@@ -21,9 +21,7 @@ def _check_qids_dimension(qids):
21
21
  class ProjectorString:
22
22
  """Mapping of `cirq.Qid` to measurement values (with a coefficient) representing a projector."""
23
23
 
24
- def __init__(
25
- self, projector_dict: Dict[raw_types.Qid, int], coefficient: Union[int, float, complex] = 1
26
- ):
24
+ def __init__(self, projector_dict: Dict[raw_types.Qid, int], coefficient: complex = 1):
27
25
  """Constructor for ProjectorString
28
26
 
29
27
  Args:
cirq/ops/raw_types.py CHANGED
@@ -337,13 +337,13 @@ class Gate(metaclass=value.ABCMetaImplementAnyOneOf):
337
337
  def __neg__(self) -> 'cirq.LinearCombinationOfGates':
338
338
  return self.wrap_in_linear_combination(coefficient=-1)
339
339
 
340
- def __mul__(self, other: Union[complex, float, int]) -> 'cirq.LinearCombinationOfGates':
340
+ def __mul__(self, other: complex) -> 'cirq.LinearCombinationOfGates':
341
341
  return self.wrap_in_linear_combination(coefficient=other)
342
342
 
343
- def __rmul__(self, other: Union[complex, float, int]) -> 'cirq.LinearCombinationOfGates':
343
+ def __rmul__(self, other: complex) -> 'cirq.LinearCombinationOfGates':
344
344
  return self.wrap_in_linear_combination(coefficient=other)
345
345
 
346
- def __truediv__(self, other: Union[complex, float, int]) -> 'cirq.LinearCombinationOfGates':
346
+ def __truediv__(self, other: complex) -> 'cirq.LinearCombinationOfGates':
347
347
  return self.wrap_in_linear_combination(coefficient=1 / other)
348
348
 
349
349
  def __pow__(self, power):
cirq/qis/states.py CHANGED
@@ -35,7 +35,7 @@ STATE_VECTOR_LIKE = Union[
35
35
  Sequence[int],
36
36
  # Explicit state vector or state tensor.
37
37
  np.ndarray,
38
- Sequence[Union[int, float, complex]],
38
+ Sequence[complex],
39
39
  # Product state object
40
40
  'cirq.ProductState',
41
41
  ]
@@ -341,7 +341,7 @@ _NON_INT_STATE_LIKE = Union[
341
341
  Sequence[int],
342
342
  # Explicit state vector or state tensor.
343
343
  np.ndarray,
344
- Sequence[Union[int, float, complex]],
344
+ Sequence[complex],
345
345
  # Product state object
346
346
  'cirq.ProductState',
347
347
  # Quantum state object
@@ -12,7 +12,7 @@
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, Dict, List, Sequence, Union
15
+ from typing import Any, Dict, List, Sequence
16
16
  import numpy as np
17
17
 
18
18
  import cirq
@@ -101,7 +101,7 @@ class StabilizerStateChForm(qis.StabilizerState):
101
101
  """Return the CH form representation of the state."""
102
102
  return f'StabilizerStateChForm(num_qubits={self.n!r})'
103
103
 
104
- def inner_product_of_state_and_x(self, x: int) -> Union[float, complex]:
104
+ def inner_product_of_state_and_x(self, x: int) -> complex:
105
105
  """Returns the amplitude of x'th element of
106
106
  the state vector, i.e. <x|psi>"""
107
107
  if type(x) == int:
@@ -269,7 +269,7 @@ class _ParamFlattener(resolver.ParamResolver):
269
269
  The unique symbol or value of the parameter as resolved by this
270
270
  resolver.
271
271
  """
272
- if isinstance(value, (int, float, complex, numbers.Complex)):
272
+ if isinstance(value, numbers.Complex):
273
273
  return value
274
274
  if isinstance(value, str):
275
275
  value = sympy.Symbol(value)
@@ -380,7 +380,7 @@ class ExpressionMap(dict):
380
380
 
381
381
 
382
382
  def _ensure_not_str(
383
- param: Union[sympy.Expr, 'cirq.TParamValComplex', str]
383
+ param: Union[sympy.Expr, 'cirq.TParamValComplex', str],
384
384
  ) -> Union[sympy.Expr, 'cirq.TParamValComplex']:
385
385
  if isinstance(param, str):
386
386
  return sympy.Symbol(param)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cirq-core
3
- Version: 1.5.0.dev20250206210935
3
+ Version: 1.5.0.dev20250207063657
4
4
  Summary: A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
5
5
  Home-page: http://github.com/quantumlib/cirq
6
6
  Author: The Cirq Developers
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=Qq3ZcfgD-Nb81cEppQdJqhAyrVqXKtfXZYGXT0p-Wh0,34718
4
4
  cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
5
5
  cirq/_import.py,sha256=p9gMHJscbtDDkfHOaulvd3Aer0pwUF5AXpL89XR8dNw,8402
6
6
  cirq/_import_test.py,sha256=6K_v0riZJXOXUphHNkGA8MY-JcmGlezFaGmvrNhm3OQ,1015
7
- cirq/_version.py,sha256=4diffB_nrD2lhFcYMsUIvLzA3rvAsMPSzW1_JHHeT5A,1206
8
- cirq/_version_test.py,sha256=ffZvSNjDiQPFOsvJnY6QkXmS0qeWb2iSCmvpyLDxvuk,147
7
+ cirq/_version.py,sha256=NwjwW-Jelx2vuigtJ6vLt9NrNxrfjJBJQ_eUa3plglU,1206
8
+ cirq/_version_test.py,sha256=u9qKu659VRmWCTxP9EjT2nBPjDSBUuaKeU9xO5ltIDc,147
9
9
  cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
10
10
  cirq/json_resolver_cache.py,sha256=p-vEOa-8GQ2cFIAdze-kd6C1un1uRvtujVPljVKaHBg,13557
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -230,7 +230,7 @@ cirq/interop/quirk/cells/input_rotation_cells.py,sha256=mo75TGkbtD_phNPM-ZPFs2VJ
230
230
  cirq/interop/quirk/cells/input_rotation_cells_test.py,sha256=1jmEBHbHpmSSB3grPbn8LFzMEwkc6Or3kAULxVofTEg,6318
231
231
  cirq/interop/quirk/cells/measurement_cells.py,sha256=1jLtGMHCbxfNN9r5E_GWPIqz7fLdNKJK0WgrcjXsS3I,1504
232
232
  cirq/interop/quirk/cells/measurement_cells_test.py,sha256=AYYzjn3BrQbk-Rg1L3WjCOQN9eGLRQzqwYr6i8UH0Fk,1574
233
- cirq/interop/quirk/cells/parse.py,sha256=BtLxG7utfS-G4xpr5N-ZpZNyJePiFfkNS9ebt2T3gWQ,11886
233
+ cirq/interop/quirk/cells/parse.py,sha256=lvh6rqSrBr8-CYQuq4qGdHcZipnZ9XAIQGCwYshjCUY,11874
234
234
  cirq/interop/quirk/cells/parse_test.py,sha256=xCTS6lKv4i8HAuTSivH2Tjwun1yMQbnl7HLfB-nEKY4,7473
235
235
  cirq/interop/quirk/cells/qubit_permutation_cells.py,sha256=F9Br_SFB1ys4pP-hYlpPRMXH_4Cd8LePtOl4aTE_p8g,3390
236
236
  cirq/interop/quirk/cells/qubit_permutation_cells_test.py,sha256=n0veQKx0EdFzu_gdY_AVjwqyoHae7JGkDFX6qhLeGrQ,4460
@@ -246,9 +246,9 @@ cirq/interop/quirk/cells/unsupported_cells.py,sha256=JFLuP_0MtKQ2sMpB1Jx071qrn9o
246
246
  cirq/interop/quirk/cells/unsupported_cells_test.py,sha256=5bl-maazy7Dr8u6kwK1AhGT4vtHqzIMRKxoMKYC-JWs,2178
247
247
  cirq/ion/__init__.py,sha256=F6tf4JZOGpDdxX0FxT42qgq8rF96ZTFHMJ0OV09Yj1c,787
248
248
  cirq/linalg/__init__.py,sha256=9WLnBqLQ02FzCIUcchHBMYpOGVcENAjzv7GyDNgh89I,4013
249
- cirq/linalg/combinators.py,sha256=5q_cNjnJrDgC7qMX8rYdnCmBKXT_iVbtxnCeJQ4ZPTM,5350
249
+ cirq/linalg/combinators.py,sha256=bq--LTsTI2WFRnok3weeIX7_QYKTW2OEFC2xktPMwA0,5336
250
250
  cirq/linalg/combinators_test.py,sha256=nZ3snkVA2nAOZ6WJK1hNd1f_i2a5xNdnostfMD1upbc,4699
251
- cirq/linalg/decompositions.py,sha256=cNIcKylK4tnGgIreO7X4cpsRmwvOycKRSS8xf9gaIG0,39229
251
+ cirq/linalg/decompositions.py,sha256=8FlQKq5gwORCbDU807gCu6zsuC9o0VEVOUbNGaJPZbM,39164
252
252
  cirq/linalg/decompositions_test.py,sha256=S6p9AJO_9wwQdmNHYTAgBK4TL6_lz1U93sLNNuUJmBw,25840
253
253
  cirq/linalg/diagonalize.py,sha256=Ym7C0JTAC9xfRQDYI72U6NxMYg0DfchjfXcbdg_92QE,10051
254
254
  cirq/linalg/diagonalize_test.py,sha256=H-JcLvcCBdN-DrKo2o1Gs7B8Q9SU70oAZmdT4yTLAi4,9089
@@ -256,7 +256,7 @@ cirq/linalg/operator_spaces.py,sha256=-i5DEAW-b_sgmfZKXFf37XzX5h7cZ7R6EeW7RcFNeE
256
256
  cirq/linalg/operator_spaces_test.py,sha256=Hbm8e4kGbGw9c4O3v5o0kYbcikwDkdIoAy3V8EofJr4,10605
257
257
  cirq/linalg/predicates.py,sha256=Q8BTlR4EvPg2KP9VodK78UEWYJbSCOTqRahn1DnFmSc,12056
258
258
  cirq/linalg/predicates_test.py,sha256=UVDkNH2ujI80JwJwsDjbTgyALZUQJAVVCoFN1T_LLf0,21503
259
- cirq/linalg/tolerance.py,sha256=ZBZOc5h7UgrKzyOStlcTRwupkjVzQu9-AwjNCCz1ZKE,1879
259
+ cirq/linalg/tolerance.py,sha256=yHYVSHx2aoRci1aac9ZiM8OH1Bvy1Em-Rybnar701nE,1870
260
260
  cirq/linalg/tolerance_test.py,sha256=wnmuXIGEn_mugGoNm3AigSgjV2DMFdj8xpgRTMBbO7A,2355
261
261
  cirq/linalg/transformations.py,sha256=errpuYfF2Cxdn2zN1NWAMfFHwu77Mfr5g3lk_MJceDI,32143
262
262
  cirq/linalg/transformations_test.py,sha256=ofrqw8H9109vVDBelSGkMjTPkmNinYsin4rvUE_iSn4,25095
@@ -285,11 +285,11 @@ cirq/ops/controlled_gate.py,sha256=8ELuov5mOUp_cNwwrwMEjB4NwDph4Cpi7ezABx86W8Y,1
285
285
  cirq/ops/controlled_gate_test.py,sha256=oasofj1Qu4iD2xJffAGDSDB8FN0xzhn5t912rqkKUXI,23083
286
286
  cirq/ops/controlled_operation.py,sha256=7X6NgihCuV5iaK-ya9cYZHlBAgN-eFcOFZ3PhGYlkFY,13998
287
287
  cirq/ops/controlled_operation_test.py,sha256=iRRkzxMmsChYiWYMuz5-q3xq2mWV1wJY8Y8QQ1ieP5c,16443
288
- cirq/ops/dense_pauli_string.py,sha256=4BKgDZivok-JvZpN8Mfwt533KIRzxkKYJ2Juw0aIcSY,24509
288
+ cirq/ops/dense_pauli_string.py,sha256=bnH4F0W2vKFKViL93SXfs0o-6wvHEy8qIxHs_t5gZaQ,24469
289
289
  cirq/ops/dense_pauli_string_test.py,sha256=duvgzhgTV9wuem4kDSwtL62SEUCThkz1tdP984-C4_s,21504
290
290
  cirq/ops/diagonal_gate.py,sha256=_-Pzt3T6U1Oq6DwExIjCmVYBBSWY6EoBNCKHpzWIRzk,9021
291
291
  cirq/ops/diagonal_gate_test.py,sha256=cPHxjc7g2oTcXt5UFm470oo0eJupubSNzs4TccKHlSc,6223
292
- cirq/ops/eigen_gate.py,sha256=eQ6-MOknop7CrejsTuQ0KZWf4mZnQBi8wEaTQXw4KSQ,18334
292
+ cirq/ops/eigen_gate.py,sha256=gmKsmaucve3ob8M3O-ADll5SbOhOsT7_A2MUH63US6E,18323
293
293
  cirq/ops/eigen_gate_test.py,sha256=-7l6GmAd1EYzHoGREQN1n7J1VOQKbThH2mA88TRODs8,13928
294
294
  cirq/ops/fourier_transform.py,sha256=pynO07OcZSVCeL8L0pNQ9m_y5_wrpTWOMf99BHpjXdU,7579
295
295
  cirq/ops/fourier_transform_test.py,sha256=PIK4bWnCIy2TuX0fgclHeU1CBDT6zRVoQpv1v1jt62c,6220
@@ -305,11 +305,11 @@ cirq/ops/global_phase_op.py,sha256=4qYUov6BnBql2_yqUHI9DE60fLiLmCsKI9ZkfMLRRyo,4
305
305
  cirq/ops/global_phase_op_test.py,sha256=FjtUsohIYabTtiGytvPQw9Rzkqd6dlT7qrj4oltDbTI,9814
306
306
  cirq/ops/greedy_qubit_manager.py,sha256=O9qY8GB1KGxm3B7JEjq50sGVD51bNwTSupJpi3WUeAc,4039
307
307
  cirq/ops/greedy_qubit_manager_test.py,sha256=iVZDKes-r08raTiJHpYNmP-Dp89ok3hIU-QboL2BHdw,3300
308
- cirq/ops/identity.py,sha256=FtsDwxqmnHenOD0H1H5p6TGgDQ76LZfk3Z_2vpijNDY,5887
308
+ cirq/ops/identity.py,sha256=mlmyTQknjlomA8RdqS1SZOmyB4SXPSly1PDW75yfTJo,5892
309
309
  cirq/ops/identity_test.py,sha256=OIrm8v4wBVq8bbAGZ-f5TERt8Hl6aD1bL8iHCOEhzNo,7939
310
310
  cirq/ops/kraus_channel.py,sha256=tCPAEzr_GAL5vTwI43rBoiOnT04l-ebZanuuEuYWDo8,5085
311
311
  cirq/ops/kraus_channel_test.py,sha256=qH2Y9cngXzKCabd-Mq5xBYcM_wyL8c6KkrXw8kZr7Dc,4726
312
- cirq/ops/linear_combinations.py,sha256=fxguoESKkiVxeDMUj4vcgZs9JgQkBg42hy3U4Txobo8,39928
312
+ cirq/ops/linear_combinations.py,sha256=3D3HpmO_3uhggLAcaeVMSmtG9UL_raUQfC-HrAB5gkM,39916
313
313
  cirq/ops/linear_combinations_test.py,sha256=ip-wN8T8nUQviD3ql42eet7k_MQ6DVUfIK8aX-_ygOs,67217
314
314
  cirq/ops/matrix_gates.py,sha256=inBhKPsNx7ZeejNpmbPEGl5hgyrTqmA852BVlKMUZmg,9297
315
315
  cirq/ops/matrix_gates_test.py,sha256=m5rMwq_sqVvsmkc5opVr3Ikd1ERuULmSRNAvGZUg7ds,14224
@@ -333,23 +333,23 @@ cirq/ops/pauli_interaction_gate.py,sha256=Ep7XwZMVP81Qq1J2MTc3kJ79h26daOZcLPxqN3
333
333
  cirq/ops/pauli_interaction_gate_test.py,sha256=U9ORW5Ayx5PESPFiGESzWY-02qHklYcM1mYW56RWe_A,4544
334
334
  cirq/ops/pauli_measurement_gate.py,sha256=AS9tzLGAOhJzRzVsW9m-WPz5Wx0sMS1jzhppn5qtW84,7239
335
335
  cirq/ops/pauli_measurement_gate_test.py,sha256=uh3J0Ps3V3578V8qkRiEgIl6jBiv8DsXlk_vzLvOEhQ,6720
336
- cirq/ops/pauli_string.py,sha256=G_w4vq1Jt6eHp1YEtTnfnpQ9QnoIGhtRI6zgXOWh8vY,67503
337
- cirq/ops/pauli_string_phasor.py,sha256=U-axS69J_PRq9XsFGwTQqb9JaT_D1EUlgWuqDaWpbEc,17671
336
+ cirq/ops/pauli_string.py,sha256=M40LNLf6_RhEtMW2VmF2rzySTCbQlmBELFEzp6msES0,67402
337
+ cirq/ops/pauli_string_phasor.py,sha256=vkYPsd55rc-h_huuDJWA1vdYZtQVunfCsyj72K57-OM,17649
338
338
  cirq/ops/pauli_string_phasor_test.py,sha256=91YXIm9RbqrG8dPdA18E9i4G7JT1epGvM4BZu6_YVzw,27796
339
339
  cirq/ops/pauli_string_raw_types.py,sha256=6CgdPWYmOziP4uZbrIsRW0sDSMmV1GioGdAk0owFITU,2240
340
340
  cirq/ops/pauli_string_raw_types_test.py,sha256=SZPluslZPGffPq93F5apESBygWZ2cj7BEX6dQuawRQE,2648
341
- cirq/ops/pauli_string_test.py,sha256=ekj755Fe5up8-0nXCozUlne6NCxvb8FrwZ8Qp6CAmRI,74583
341
+ cirq/ops/pauli_string_test.py,sha256=ht9FDsphSQgb-dU2YqMuQvzzFKTMS3yS1hMrYbIvawY,74663
342
342
  cirq/ops/pauli_sum_exponential.py,sha256=n3fhKWJVMudzGuOcdPHskVNx3fHE2MAblVdkzbDtcz4,4909
343
343
  cirq/ops/pauli_sum_exponential_test.py,sha256=wVnJ3FSpEimHT8ERVkmljALrgSuuDYo6GRg91uJ7ztk,5370
344
344
  cirq/ops/permutation_gate.py,sha256=2h8n76N2M3nu5MA8JkRQgVLByq5cOEluKUN042ClSRs,4196
345
345
  cirq/ops/permutation_gate_test.py,sha256=SwXRgsZNLn5jnGhfcKPJ0J0CIssNzElbFaqylV2TXD8,3281
346
346
  cirq/ops/phased_iswap_gate.py,sha256=Q-1PuSc4F3gsZL9UUN8EgrO31Ix6mA-7HoUIndvePbk,8990
347
347
  cirq/ops/phased_iswap_gate_test.py,sha256=tB1MqH8Y0Kgr0QIxs1kq1yl2g0mKYI7Q_AaadBhFe2U,7360
348
- cirq/ops/phased_x_gate.py,sha256=qjlkdbj7SWMvgTJkTqEqsLe2XDgAGioA6ayanns-apg,9983
348
+ cirq/ops/phased_x_gate.py,sha256=RPZAdxRh9tJk8TFU5cttSjQSx66156t8j1hVupfJ_tM,9961
349
349
  cirq/ops/phased_x_gate_test.py,sha256=IpY-Z-MsqtYbyIEdxWu1NqgAJF2B7nddxPc2Hxafr4s,10202
350
- cirq/ops/phased_x_z_gate.py,sha256=uVmROoiKYxGPs_QZbpwoi7EmVHV4J2-LRa7jyLeIbCM,11563
350
+ cirq/ops/phased_x_z_gate.py,sha256=pP_jhfGpKYNBjey00qKmm_H4u9Wa1HWasoR4LCEdwBI,11530
351
351
  cirq/ops/phased_x_z_gate_test.py,sha256=KK5-FD5zoaqZkw7p6UKxFddzaFWoxnQnE8LpCiKtIk8,10690
352
- cirq/ops/projector.py,sha256=Eftqti8lwHvzsSFMUzcC8XGaMeH6fdGUdcWprZoMfX8,5686
352
+ cirq/ops/projector.py,sha256=y3ignrYFmthdPm_pjJ0Y0xp8SGPviqcT07Y9KEZ231Y,5646
353
353
  cirq/ops/projector_test.py,sha256=Wq7ddj-PV30yUXJxJoT3XIw2sIUC1AilnZ9m9N5Ejr8,9063
354
354
  cirq/ops/qid_util.py,sha256=SxyoMy_s070lcqXV7ny6vE8pp082OrTjBtawZtHOhXs,2071
355
355
  cirq/ops/qid_util_test.py,sha256=JdViBgFfH4bZJyPKTjUf9MuPxMQe08JV_Tl6tusekfk,1061
@@ -360,7 +360,7 @@ cirq/ops/qubit_order_or_list.py,sha256=WVnhQcOYCgAhiB4t47Kji-pN1tnvs--X5deCQwwGV
360
360
  cirq/ops/qubit_order_test.py,sha256=B9xMIxlaI7YjRUNA6AkHJuUCFejGYw-lT7ZaSl31yTU,4238
361
361
  cirq/ops/random_gate_channel.py,sha256=gKDqZa6AwdCIuuh2UOvO5oxCdGRDOInA7fI3ZLQ-LTY,5121
362
362
  cirq/ops/random_gate_channel_test.py,sha256=U3EAaAlCZkgFIYxqwcSkPsaVGrKA2PSeG_DK2ou--AE,8606
363
- cirq/ops/raw_types.py,sha256=nhbEjkR0mKqNMQ9j_2TokAZ4u14CGPXEYjjicd6XuEM,42173
363
+ cirq/ops/raw_types.py,sha256=aDaBoB4_6iwwYvWRsCfhSNdX6D9l_Jne7bOUsGM0geE,42116
364
364
  cirq/ops/raw_types_test.py,sha256=U2sAzc6DjpOmgHafGv94VJXqZHm7J898khmJoHAawHQ,33940
365
365
  cirq/ops/state_preparation_channel.py,sha256=PjVtoLbjBAy_XqnFAY40Am-NifeuCFVVLW6RJxph5sQ,4778
366
366
  cirq/ops/state_preparation_channel_test.py,sha256=yKUvLw_ft6cvIgRJcFQ779wZS-V6V-pzQq-rZRWdCmU,5922
@@ -903,7 +903,7 @@ cirq/qis/measures_test.py,sha256=3LTTGdvuFfZWmFyWFeUHpg1yGc9z0VE8j7Kd7J7y8i4,100
903
903
  cirq/qis/noise_utils.py,sha256=wakkdQdBzOUWCf71sCxMCWwfPPAnJi5bNYsXDzGzkx0,3680
904
904
  cirq/qis/noise_utils_test.py,sha256=6r99DBN_2bImZbuOIB2A9ZdvyipqDopXsoxV-8OUK_I,3391
905
905
  cirq/qis/quantum_state_representation.py,sha256=5ybXGqjGSpSZqOn9q6OW6IBOmJs8KQekv5fFZZMCqZQ,3238
906
- cirq/qis/states.py,sha256=jB_U-MowGZ_280ivlzkSNjB5oG8GTPnPb8M_eGTr5Yo,42005
906
+ cirq/qis/states.py,sha256=xrkYZR2UOkxTf0GouQ0p1-aiQRYmJheiEk7fxPR8Kog,41967
907
907
  cirq/qis/states_test.py,sha256=I4fHt5drqG0C36bvmU-H7DfY3zOC8CfiZFzKJvSOnFs,31813
908
908
  cirq/sim/__init__.py,sha256=J209uAbjmgzER-48Q-FkRUWQ1FlG6-1c7GK11owZIW4,3452
909
909
  cirq/sim/classical_simulator.py,sha256=orp2WY15HNCJk60Aosq7igO3bjKcWjAAOeU_CiPK_98,9349
@@ -946,10 +946,10 @@ cirq/sim/clifford/stabilizer_sampler.py,sha256=XfJ2Y0bpCZTdAmiOVMIYPKDQ5SII5EuDJ
946
946
  cirq/sim/clifford/stabilizer_sampler_test.py,sha256=sNqJyUY--wqHjsPfm4E1YPBll1-GirvxKFz04n5I0f4,1338
947
947
  cirq/sim/clifford/stabilizer_simulation_state.py,sha256=mqADFqLHg2Kit9EsuhNp8ntZQQnTRXc51ZQ9LdqQ4PM,6723
948
948
  cirq/sim/clifford/stabilizer_simulation_state_test.py,sha256=dsphoXTaIwRCjprGJQirSs0qeVKHlni_pt_GZJn5Vpc,4317
949
- cirq/sim/clifford/stabilizer_state_ch_form.py,sha256=vyyIKLcI-_Ox1QQbUSbTj_Zo4hotpDwvxQQ2u7zJxns,14049
949
+ cirq/sim/clifford/stabilizer_state_ch_form.py,sha256=OAbJK9QuIVPSp7vNyoXUjETxEJ1HOm9bz9r8UetX0Jw,14028
950
950
  cirq/sim/clifford/stabilizer_state_ch_form_test.py,sha256=FK0IsyrTfT6ZPZeBYmyPG2xpzUT7RG6P6UQw_61c6kU,3149
951
951
  cirq/study/__init__.py,sha256=OyJhZjBiEkNbtSuSZaOwHGwwnOIGgnn-W8ec0xHhHBI,1647
952
- cirq/study/flatten_expressions.py,sha256=B-CQcj8eSWAJPIff5bQiZGobnYx8kB0c5WTLowfCVXo,15604
952
+ cirq/study/flatten_expressions.py,sha256=a38GP12hp-MWlYGeVsCdNFwx81r--mvKpr8ICu-XoFg,15582
953
953
  cirq/study/flatten_expressions_test.py,sha256=6e7pTkaBrZW-EmG4teZxcwemqnxCtJW3kq2KOlPcwW8,6078
954
954
  cirq/study/resolver.py,sha256=dDEGIwWueP7ZICbEAUc6G5li2UoTFkPS9Qs2dSDCbV8,11906
955
955
  cirq/study/resolver_test.py,sha256=QQe9Rr0z6qNbSWPEvCKd_DNka6454AWVKbG2J2DD1Wg,10228
@@ -1202,8 +1202,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
1202
1202
  cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
1203
1203
  cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
1204
1204
  cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
1205
- cirq_core-1.5.0.dev20250206210935.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
- cirq_core-1.5.0.dev20250206210935.dist-info/METADATA,sha256=cLcfWxB-oXhSxllSGxElRuoKvx5De1amZh0Ifwsu4oI,4811
1207
- cirq_core-1.5.0.dev20250206210935.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
- cirq_core-1.5.0.dev20250206210935.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
- cirq_core-1.5.0.dev20250206210935.dist-info/RECORD,,
1205
+ cirq_core-1.5.0.dev20250207063657.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
+ cirq_core-1.5.0.dev20250207063657.dist-info/METADATA,sha256=CjPl8aoUw-1ahr8LoDzs3diFaY3UUoNOS4B_BWpgG30,4811
1207
+ cirq_core-1.5.0.dev20250207063657.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
+ cirq_core-1.5.0.dev20250207063657.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
+ cirq_core-1.5.0.dev20250207063657.dist-info/RECORD,,