@@ -437,7 +437,6 @@ function FiniteMPOHamiltonian(lattice::AbstractArray{<:VectorSpace}, local_opera
437437
438438 # construct the sparse MPO
439439 T = _find_tensortype (nonzero_opps)
440- E = scalartype (T)
441440 S = spacetype (T)
442441
443442 # avoid using one(S)
@@ -465,7 +464,7 @@ function FiniteMPOHamiltonian(lattice::AbstractArray{<:VectorSpace}, local_opera
465464 end
466465
467466 # construct the tensor
468- TW = jordanmpotensortype (S, E )
467+ TW = jordanmpotensortype (T )
469468 Os = map (1 : length (lattice)) do site
470469 V = virtualsumspaces[site] * lattice[site] ←
471470 lattice[site] * virtualsumspaces[site + 1 ]
@@ -476,7 +475,7 @@ function FiniteMPOHamiltonian(lattice::AbstractArray{<:VectorSpace}, local_opera
476475 key_R = key_R′ == 0 ? length (virtualsumspaces[site + 1 ]) : key_R′
477476 O[key_L, 1 , 1 , key_R] += if o isa Number
478477 iszero (o) && continue
479- τ = BraidingTensor {E } (eachspace (O)[key_L, 1 , 1 , key_R])
478+ τ = BraidingTensor {scalartype(TW) } (eachspace (O)[key_L, 1 , 1 , key_R])
480479 isone (o) ? τ : τ * o
481480 else
482481 o
@@ -520,7 +519,6 @@ function InfiniteMPOHamiltonian(lattice′::AbstractArray{<:VectorSpace}, local_
520519
521520 # construct the sparse MPO
522521 T = _find_tensortype (nonzero_opps)
523- E = scalartype (T)
524522 S = spacetype (T)
525523
526524 # construct the virtual spaces
@@ -588,7 +586,7 @@ function InfiniteMPOHamiltonian(lattice′::AbstractArray{<:VectorSpace}, local_
588586 end
589587
590588 # construct the tensor
591- TW = jordanmpotensortype (S, E )
589+ TW = jordanmpotensortype (T )
592590 Os = map (1 : length (lattice)) do site
593591 V = virtualsumspaces[site - 1 ] * lattice[site] ←
594592 lattice[site] * virtualsumspaces[site]
@@ -599,7 +597,7 @@ function InfiniteMPOHamiltonian(lattice′::AbstractArray{<:VectorSpace}, local_
599597 key_R = key_R′ == 0 ? length (virtualspaces[site]) : key_R′
600598 O[key_L, 1 , 1 , key_R] += if o isa Number
601599 iszero (o) && continue
602- τ = BraidingTensor {E } (eachspace (O)[key_L, 1 , 1 , key_R])
600+ τ = BraidingTensor {scalartype(TW) } (eachspace (O)[key_L, 1 , 1 , key_R])
603601 isone (o) ? τ : τ * o
604602 else
605603 o
0 commit comments