emu-sv 2.4.0__py3-none-any.whl → 2.4.1__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.
emu_sv/__init__.py CHANGED
@@ -38,4 +38,4 @@ __all__ = [
38
38
  "DensityMatrix",
39
39
  ]
40
40
 
41
- __version__ = "2.4.0"
41
+ __version__ = "2.4.1"
emu_sv/state_vector.py CHANGED
@@ -275,7 +275,7 @@ class StateVector(State[complex, torch.Tensor]):
275
275
  return accum_state, amplitudes
276
276
 
277
277
  def overlap(self, other: StateVector, /) -> torch.Tensor:
278
- return self.inner(other)
278
+ return torch.abs(self.inner(other)) ** 2
279
279
 
280
280
 
281
281
  def inner(left: StateVector, right: StateVector) -> torch.Tensor:
emu_sv/sv_config.py CHANGED
@@ -6,6 +6,8 @@ from types import MethodType
6
6
  from typing import Any, ClassVar
7
7
 
8
8
  from emu_sv.utils import choose
9
+ from emu_sv.state_vector import StateVector
10
+ from emu_sv.dense_operator import DenseOperator
9
11
 
10
12
  from emu_sv.custom_callback_implementations import (
11
13
  qubit_occupation_sv_impl,
@@ -59,6 +61,8 @@ class SVConfig(EmulationConfig):
59
61
 
60
62
  # Whether to warn if unexpected kwargs are received
61
63
  _enforce_expected_kwargs: ClassVar[bool] = True
64
+ _state_type = StateVector
65
+ _operator_type = DenseOperator
62
66
 
63
67
  def __init__(
64
68
  self,
emu_sv/time_evolution.py CHANGED
@@ -140,7 +140,10 @@ class EvolveStateVector(torch.autograd.Function):
140
140
  interaction_matrix=interaction_matrix,
141
141
  device=state.device,
142
142
  )
143
- op = lambda x: -1j * dt * (ham * x)
143
+
144
+ def op(x: torch.Tensor) -> torch.Tensor:
145
+ return -1j * dt * (ham * x)
146
+
144
147
  res = krylov_exp(
145
148
  op,
146
149
  state,
@@ -273,7 +276,10 @@ class EvolveStateVector(torch.autograd.Function):
273
276
  )
274
277
 
275
278
  if any(ctx.needs_input_grad[1:5]):
276
- op = lambda x: -1j * dt * (ham * x)
279
+
280
+ def op(x: torch.Tensor):
281
+ return -1j * dt * (ham * x)
282
+
277
283
  lanczos_vectors_state, dS, lanczos_vectors_grad = double_krylov(
278
284
  op, state, grad_state_out, tolerance
279
285
  )
@@ -316,7 +322,10 @@ class EvolveStateVector(torch.autograd.Function):
316
322
  grad_int_mat[i, j] = (-1j * dt * torch.tensordot(Vg.conj(), v)).real
317
323
 
318
324
  if ctx.needs_input_grad[5]:
319
- op = lambda x: (1j * dt) * (ham * x)
325
+
326
+ def op(x: torch.Tensor):
327
+ return (1j * dt) * (ham * x)
328
+
320
329
  grad_state_in = krylov_exp(op, grad_state_out.detach(), tolerance, tolerance)
321
330
 
322
331
  return (
@@ -353,7 +362,9 @@ class EvolveDensityMatrix:
353
362
  device=density_matrix.device,
354
363
  )
355
364
 
356
- op = lambda x: -1j * dt * (ham @ x)
365
+ def op(x: torch.Tensor) -> torch.Tensor:
366
+ return -1j * dt * (ham @ x)
367
+
357
368
  return (
358
369
  krylov_exp(
359
370
  op,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: emu-sv
3
- Version: 2.4.0
3
+ Version: 2.4.1
4
4
  Summary: Pasqal State Vector based pulse emulator built on PyTorch
5
5
  Project-URL: Documentation, https://pasqal-io.github.io/emulators/
6
6
  Project-URL: Repository, https://github.com/pasqal-io/emulators
@@ -25,7 +25,7 @@ Classifier: Programming Language :: Python :: 3.10
25
25
  Classifier: Programming Language :: Python :: Implementation :: CPython
26
26
  Classifier: Programming Language :: Python :: Implementation :: PyPy
27
27
  Requires-Python: >=3.10
28
- Requires-Dist: emu-base==2.4.0
28
+ Requires-Dist: emu-base==2.4.1
29
29
  Description-Content-Type: text/markdown
30
30
 
31
31
  <div align="center">
@@ -1,15 +1,15 @@
1
- emu_sv/__init__.py,sha256=Oc9_UlpE7Nioggmg-pX4_8iQnh7_o9jl8n_wBTu5NJg,771
1
+ emu_sv/__init__.py,sha256=Sv7BbiGYuZzUh30AqMZpyA9m2zM8z-UKh_D2C6LACNs,771
2
2
  emu_sv/custom_callback_implementations.py,sha256=_7XLIDzJ-p3DVqz-Jyv0eYbl8nih2x2p-pM4cBCLumA,6367
3
3
  emu_sv/dense_operator.py,sha256=AvgntJNwwtf3Wl66CIWSwUezVYV3vignCL24SQQQwQg,5901
4
4
  emu_sv/density_matrix_state.py,sha256=6QmLZvqEHLR64r0nD7D2jZIiAYOgciNVCjh3ywfvIs0,7243
5
5
  emu_sv/hamiltonian.py,sha256=CqNGuWJlO2ZljK47wt130s-5uKiOldQUsC3tjwk1mKA,6106
6
6
  emu_sv/lindblad_operator.py,sha256=pgjRNLBcvEM2-qxM8uy9wL74OtrD4A8trQeERi_AXH8,8892
7
- emu_sv/state_vector.py,sha256=dkAnxEQxK-4Fn6UxhDbcb1z1EsHFUpOyVy0mjHkKFBI,9894
7
+ emu_sv/state_vector.py,sha256=Ookw_BDqzs9OFppQd7kaMxDSkaj5F_clhOCgo-LSaMg,9910
8
8
  emu_sv/sv_backend.py,sha256=-soOkSEzEBK1dCKnYnbtvYjmNZtZra1_4jP3H1ROOtM,737
9
9
  emu_sv/sv_backend_impl.py,sha256=OYsJK_DJ8dmq3QZLKiBejXrq22R5Auyye-pai07NeeY,8798
10
- emu_sv/sv_config.py,sha256=J4yb9-Na5hAbShDySzPfbt0WXvL8JpfrTEikTK8nH9s,5943
11
- emu_sv/time_evolution.py,sha256=_VH4f2RF6lGKzO08WxTYJ5Aw8_pTTMRKcyMnIuxH03I,13382
10
+ emu_sv/sv_config.py,sha256=6fcuC9RKc7Pp55Yb-lWCGtZ7UJP53oLyZsy1f9wBtRg,6100
11
+ emu_sv/time_evolution.py,sha256=Uy3qMdt3BlLB6Aq1-o5uajRTu_3fPuBCtcusHxFPPJc,13545
12
12
  emu_sv/utils.py,sha256=t0nMDVo6DF5bQW-vbsyRMCmvkyNxCU-v0Enmns9aOAU,1151
13
- emu_sv-2.4.0.dist-info/METADATA,sha256=HKTJmI_Ra3dcFw2QthE2TEvEiYcvcZmrHkrFMuGY794,3595
14
- emu_sv-2.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- emu_sv-2.4.0.dist-info/RECORD,,
13
+ emu_sv-2.4.1.dist-info/METADATA,sha256=5nUzMJNramhABPKHG1D7h78W6L2MeSJpkZg1wAmDg2c,3595
14
+ emu_sv-2.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
+ emu_sv-2.4.1.dist-info/RECORD,,
File without changes