@@ -184,10 +184,10 @@ function _spectrum(
184184 # Calculate <wβ| = <I|A
185185 D = prod (L. dimensions)
186186 Ivec = SparseVector (D^ 2 , [1 + n * (D + 1 ) for n in 0 : (D- 1 )], ones (cT, D)) # same as vec(system_identity_matrix)
187- wβ = transpose ( vT (Ivec)) * spre (A) . data
187+ wβ = spre (A) . data ' * vT (Ivec)
188188
189189 # Store the norm of the Green's function before renormalizing |vβ> and <wβ|
190- gfNorm = abs (wβ * vβ )
190+ gfNorm = abs (dot (wβ, vβ) )
191191 vβ ./= sqrt (gfNorm)
192192 wβ ./= sqrt (gfNorm)
193193
@@ -219,17 +219,17 @@ function _spectrum(
219219 # Previous and next left/right Krylov vectors
220220 vββ = vT (zeros (cT, D^ 2 ))
221221 vββ = vT (zeros (cT, D^ 2 ))
222- wββ = transpose ( vT (zeros (cT, D^ 2 ) ))
223- wββ = transpose ( vT (zeros (cT, D^ 2 ) ))
222+ wββ = vT (zeros (cT, D^ 2 ))
223+ wββ = vT (zeros (cT, D^ 2 ))
224224
225225 # Frequency of renormalization
226226 renormFrequency:: typeof (solver. maxiter) = 1
227227
228228 # Loop over the Krylov subspace(s)
229229 for k in 1 : solver. maxiter
230230 # k-th diagonal element
231- mul! (wββ. parent, transpose ( L. data) , wβ. parent) # Equivalent to: wββ = wβ * L.data
232- Ξ±β = wββ * vβ
231+ mul! (wββ, L. data' , wβ)
232+ Ξ±β = dot ( wββ, vβ)
233233
234234 # Update A(k), B(k) and continuous fraction; normalization avoids overflow
235235 Aβ .= (- 1im .* ΟList .+ Ξ±β) .* Aββ .- (Ξ²β * Ξ΄β) .* Aββ
@@ -258,22 +258,22 @@ function _spectrum(
258258 end
259259
260260 # (k+1)-th left/right vectors, orthogonal to previous ones
261- mul! (vββ,L. data,vβ) # Equivalent to: vββ = L.data * vβ
261+ mul! (vββ, L. data, vβ)
262262 vββ .= vββ .- Ξ±β .* vβ .- Ξ²β .* vββ
263- wββ .= wββ .- Ξ±β .* wβ .- Ξ΄β .* wββ
263+ wββ .= wββ .- conj (Ξ±β) .* wβ .- conj (Ξ΄β) .* wββ
264264 vββ, vβ = vβ, vββ
265265 vβ, vββ = vββ, vβ
266266 wββ, wβ = wβ, wββ
267267 wβ, wββ = wββ, wβ
268268
269269 # k-th off-diagonal elements
270- buf = wβ * vβ
270+ buf = dot (wβ, vβ)
271271 Ξ΄β = sqrt (abs (buf))
272272 Ξ²β = buf / Ξ΄β
273273
274274 # Normalize (k+1)-th left/right vectors
275275 vβ ./= Ξ΄β
276- wβ ./= Ξ²β
276+ wβ ./= conj (Ξ²β)
277277
278278 # Update everything for the next cycle
279279 Aββ, Aββ = Aββ, Aββ
0 commit comments