mirror of
https://github.com/vale981/hopsflow
synced 2025-03-05 08:51:37 -05:00
use the cython version
This commit is contained in:
parent
281713334e
commit
13962754a2
2 changed files with 87 additions and 86 deletions
|
@ -437,91 +437,92 @@ class CorrelationMatrix(Propagator):
|
|||
α0d_e = self.params.W[u]
|
||||
α0d = -self.params.G[u] * self.params.W[u]
|
||||
|
||||
result = np.zeros_like(t, dtype=np.complex128)
|
||||
for l, m, n, r, g in iterate_ragged(
|
||||
len(α_e), G.shape[2], G.shape[2], len(α0d_e), len(α0d_e)
|
||||
):
|
||||
result += (
|
||||
G[2 * u, l, m]
|
||||
* G[2 * u, l, n]
|
||||
* α0d[r]
|
||||
* (
|
||||
(
|
||||
α[l, g]
|
||||
* (
|
||||
-(
|
||||
(
|
||||
(G_e[m] + G_e[n])
|
||||
* (G_e[n] + α_e[l, g])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
)
|
||||
/ np.exp(t * (α_e[l, g] + α0d_e[r]))
|
||||
)
|
||||
+ (
|
||||
(G_e[m] + G_e[n])
|
||||
* (G_e[n] + α_e[l, g])
|
||||
* (α_e[l, g] + α0d_e[r])
|
||||
)
|
||||
/ np.exp(t * (G_e[m] + α0d_e[r]))
|
||||
+ (
|
||||
(G_e[m] + G_e[n])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
* (α_e[l, g] + α0d_e[r])
|
||||
)
|
||||
/ np.exp(t * (G_e[n] + α_e[l, g]))
|
||||
- (
|
||||
(G_e[n] + α_e[l, g])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
* (α_e[l, g] + α0d_e[r])
|
||||
)
|
||||
/ np.exp(t * (G_e[m] + G_e[n]))
|
||||
+ (G_e[m] - α_e[l, g])
|
||||
* (G_e[n] - α0d_e[r])
|
||||
* (G_e[m] + G_e[n] + α_e[l, g] + α0d_e[r])
|
||||
)
|
||||
)
|
||||
/ (
|
||||
(G_e[m] + G_e[n])
|
||||
* (G_e[m] - α_e[l, g])
|
||||
* (G_e[n] + α_e[l, g])
|
||||
* (G_e[n] - α0d_e[r])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
* (α_e[l, g] + α0d_e[r])
|
||||
)
|
||||
+ αc[l, g]
|
||||
* (
|
||||
-(
|
||||
1
|
||||
/ (
|
||||
np.exp(t * (G_e[m] + G_e[n]))
|
||||
* (G_e[m] + G_e[n])
|
||||
* (G_e[n] - α0d_e[r])
|
||||
* (G_e[n] - αc_e[l, g])
|
||||
)
|
||||
)
|
||||
+ 1
|
||||
/ (
|
||||
np.exp(t * (G_e[m] + α0d_e[r]))
|
||||
* (G_e[n] - α0d_e[r])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
* (α0d_e[r] - αc_e[l, g])
|
||||
)
|
||||
+ 1
|
||||
/ (
|
||||
(G_e[m] + G_e[n])
|
||||
* (G_e[m] + α0d_e[r])
|
||||
* (G_e[m] + αc_e[l, g])
|
||||
)
|
||||
+ 1
|
||||
/ (
|
||||
np.exp(t * (G_e[m] + αc_e[l, g]))
|
||||
* (G_e[n] - αc_e[l, g])
|
||||
* (G_e[m] + αc_e[l, g])
|
||||
* (-α0d_e[r] + αc_e[l, g])
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
result = formulas.Q2(t, u, G, G_e, αc, αc_e, α, α_e, α0d, α0d_e)
|
||||
# result = np.zeros_like(t, dtype=np.complex128)
|
||||
# for l, m, n, r, g in iterate_ragged(
|
||||
# len(α_e), G.shape[2], G.shape[2], len(α0d_e), len(α0d_e)
|
||||
# ):
|
||||
# result += (
|
||||
# G[2 * u, l, m]
|
||||
# * G[2 * u, l, n]
|
||||
# * α0d[r]
|
||||
# * (
|
||||
# (
|
||||
# α[l, g]
|
||||
# * (
|
||||
# -(
|
||||
# (
|
||||
# (G_e[m] + G_e[n])
|
||||
# * (G_e[n] + α_e[l, g])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# )
|
||||
# / np.exp(t * (α_e[l, g] + α0d_e[r]))
|
||||
# )
|
||||
# + (
|
||||
# (G_e[m] + G_e[n])
|
||||
# * (G_e[n] + α_e[l, g])
|
||||
# * (α_e[l, g] + α0d_e[r])
|
||||
# )
|
||||
# / np.exp(t * (G_e[m] + α0d_e[r]))
|
||||
# + (
|
||||
# (G_e[m] + G_e[n])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# * (α_e[l, g] + α0d_e[r])
|
||||
# )
|
||||
# / np.exp(t * (G_e[n] + α_e[l, g]))
|
||||
# - (
|
||||
# (G_e[n] + α_e[l, g])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# * (α_e[l, g] + α0d_e[r])
|
||||
# )
|
||||
# / np.exp(t * (G_e[m] + G_e[n]))
|
||||
# + (G_e[m] - α_e[l, g])
|
||||
# * (G_e[n] - α0d_e[r])
|
||||
# * (G_e[m] + G_e[n] + α_e[l, g] + α0d_e[r])
|
||||
# )
|
||||
# )
|
||||
# / (
|
||||
# (G_e[m] + G_e[n])
|
||||
# * (G_e[m] - α_e[l, g])
|
||||
# * (G_e[n] + α_e[l, g])
|
||||
# * (G_e[n] - α0d_e[r])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# * (α_e[l, g] + α0d_e[r])
|
||||
# )
|
||||
# + αc[l, g]
|
||||
# * (
|
||||
# -(
|
||||
# 1
|
||||
# / (
|
||||
# np.exp(t * (G_e[m] + G_e[n]))
|
||||
# * (G_e[m] + G_e[n])
|
||||
# * (G_e[n] - α0d_e[r])
|
||||
# * (G_e[n] - αc_e[l, g])
|
||||
# )
|
||||
# )
|
||||
# + 1
|
||||
# / (
|
||||
# np.exp(t * (G_e[m] + α0d_e[r]))
|
||||
# * (G_e[n] - α0d_e[r])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# * (α0d_e[r] - αc_e[l, g])
|
||||
# )
|
||||
# + 1
|
||||
# / (
|
||||
# (G_e[m] + G_e[n])
|
||||
# * (G_e[m] + α0d_e[r])
|
||||
# * (G_e[m] + αc_e[l, g])
|
||||
# )
|
||||
# + 1
|
||||
# / (
|
||||
# np.exp(t * (G_e[m] + αc_e[l, g]))
|
||||
# * (G_e[n] - αc_e[l, g])
|
||||
# * (G_e[m] + αc_e[l, g])
|
||||
# * (-α0d_e[r] + αc_e[l, g])
|
||||
# )
|
||||
# )
|
||||
# )
|
||||
# )
|
||||
|
||||
return result
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from itertools import product
|
|||
def iterate_ragged(*ranges: int):
|
||||
return product(*(range(r) for r in ranges))
|
||||
|
||||
cdef Q2(np.ndarray t,
|
||||
def Q2(np.ndarray t,
|
||||
int u,
|
||||
np.ndarray G,
|
||||
np.ndarray G_e,
|
||||
|
|
Loading…
Add table
Reference in a new issue