Skip to content

Commit 4aaae6b

Browse files
Enforce Matrix instead of Hermitian in _gellmann
1 parent 0f6729a commit 4aaae6b

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

src/utils.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Ket does not normalise gellmann the same way we do, the first element of tensor should be treated differently
22
function _gellmann(::Type{CT}, dims::NTuple{N, Int}) where {CT <: Number, N}
33
T = float(real(CT))
4-
matrix_basis = Ket.gellmann.(Complex{T}, dims)
4+
matrix_basis = broadcast.(Matrix{Complex{T}}, Ket.gellmann.(Complex{T}, dims))
55
for n in 1:N
66
matrix_basis[n][1] .*= sqrt(T(2)) / sqrt(T(dims[n]))
77
end
@@ -79,7 +79,7 @@ function correlation_tensor(ρ::AbstractMatrix{CT}, dims::NTuple{N, Int}, matrix
7979
end
8080
export correlation_tensor
8181

82-
function _correlation_tensor!(tensor::Array{T, N}, ρ::AbstractMatrix{CT}, matrix_basis::NTuple{N, Vector{MB}}) where {T <: Real, CT <: Number, MB <: Matrix{Complex{T}}, N}
82+
function _correlation_tensor!(tensor::Array{T, N}, ρ::AbstractMatrix{CT}, matrix_basis::NTuple{N, Vector{MB}}) where {T <: Real, CT <: Number, MB <: AbstractMatrix{Complex{T}}, N}
8383
dims2 = collect(length.(matrix_basis))
8484
vi = ones(Int, N)
8585
for i in 0:prod(dims2)-1

test/unit.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ end
4141
dims = (2, 2, 2)
4242
N = length(dims)
4343
kets = Ket.random_state_ket.(CT, dims)
44-
ρ = kron(kets...)*kron(kets...)'
44+
ρ = kron(kets...) * kron(kets...)'
4545
lmo = EntanglementDetection.AlternatingSeparableLMO(T, dims)
4646
tensor = EntanglementDetection.correlation_tensor(ρ, dims)
4747
tensors = ntuple(n -> Vector{T}(undef, dims[n]^2), Val(N))

0 commit comments

Comments
 (0)