From 06c284531cecdda3114df4e04c1d47fafd34814b Mon Sep 17 00:00:00 2001 From: Adriano Meligrana <68152031+Tortar@users.noreply.github.com> Date: Mon, 5 Aug 2024 23:21:50 +0200 Subject: [PATCH] Solve piracies and ambiguities (#173) Co-authored-by: Stefan Krastanov --- Project.toml | 2 +- src/operators_dense.jl | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index b4e4ae11..1ea7487b 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 e36f17f1..18285fb6 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)