diff --git a/Project.toml b/Project.toml index b4e4ae1..1ea7487 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "QuantumOpticsBase" uuid = "4f57444f-1401-5e15-980d-4471b28d5678" -version = "0.5.1" +version = "0.5.2" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" diff --git a/src/operators_dense.jl b/src/operators_dense.jl index e36f17f..18285fb 100644 --- a/src/operators_dense.jl +++ b/src/operators_dense.jl @@ -1,3 +1,4 @@ +import QuantumInterface import Base: isequal, ==, +, -, *, /, Broadcast import Adapt using Base.Cartesian @@ -27,6 +28,8 @@ Operator(qets::AbstractVector{<:Ket}) = Operator(first(qets).basis, GenericBasis Operator(basis_r::Basis,qets::AbstractVector{<:Ket}) = Operator(first(qets).basis, basis_r, qets) Operator(basis_l::BL,basis_r::BR,qets::AbstractVector{<:Ket}) where {BL,BR} = Operator{BL,BR}(basis_l, basis_r, reduce(hcat, getfield.(qets, :data))) +QuantumInterface.traceout!(s::QuantumOpticsBase.Operator, i) = QuantumInterface.ptrace(s,i) + Base.zero(op::Operator) = Operator(op.basis_l,op.basis_r,zero(op.data)) Base.eltype(op::Operator) = eltype(op.data) Base.eltype(::Type{T}) where {BL,BR,D,T<:Operator{BL,BR,D}} = eltype(D)