diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c30de4..52ab459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # News +## v0.4.0 - 2024-11-26 + +- Add `OperatorBasis` and `SuperOperatorBasis` abstract types along with corresponding `fullbasis` function to obtain these from instances of subtypes of `AbstractOperator` and `AbstractSuperOperator`. +- Change type parameters for `StateVector`, `AbstractKet` `AbstractBra` `AbstractOperator` `AbstractSuperOperator` to elimitate all type parameters. + + ## v0.3.6 - 2024-09-08 - Add `coherentstate`, `thermalstate`, `displace`, `squeeze`, `wigner`, previously from QuantumOptics. diff --git a/Project.toml b/Project.toml index d8b70c0..9f743ed 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "QuantumInterface" uuid = "5717a53b-5d69-4fa3-b976-0bf2f97ca1e5" authors = ["QuantumInterface.jl contributors"] -version = "0.3.6" +version = "0.4.0" [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" diff --git a/src/QuantumInterface.jl b/src/QuantumInterface.jl index dd23d4c..c23e652 100644 --- a/src/QuantumInterface.jl +++ b/src/QuantumInterface.jl @@ -9,8 +9,8 @@ module QuantumInterface Return the basis of an object. -If it's ambiguous, e.g. if an operator has a different left and right basis, -an [`IncompatibleBases`](@ref) error is thrown. +If it's ambiguous, e.g. if an operator or superoperator has a different +left and right basis, an [`IncompatibleBases`](@ref) error is thrown. """ function basis end diff --git a/src/abstract_types.jl b/src/abstract_types.jl index 0650290..70a2ce6 100644 --- a/src/abstract_types.jl +++ b/src/abstract_types.jl @@ -21,9 +21,9 @@ in respect to a certain basis. These coefficients are stored in the `data` field and the basis is defined in the `basis` field. """ -abstract type StateVector{B,T} end -abstract type AbstractKet{B,T} <: StateVector{B,T} end -abstract type AbstractBra{B,T} <: StateVector{B,T} end +abstract type StateVector end +abstract type AbstractKet <: StateVector end +abstract type AbstractBra <: StateVector end """ Abstract base class for all operators. @@ -36,7 +36,7 @@ For fast time evolution also at least the function implemented. Many other generic multiplication functions can be defined in terms of this function and are provided automatically. """ -abstract type AbstractOperator{BL,BR} end +abstract type AbstractOperator end """ Base class for all super operator classes. @@ -52,4 +52,4 @@ A_{bl_1,bl_2} = S_{(bl_1,bl_2) ↔ (br_1,br_2)} B_{br_1,br_2} A_{br_1,br_2} = B_{bl_1,bl_2} S_{(bl_1,bl_2) ↔ (br_1,br_2)} ``` """ -abstract type AbstractSuperOperator{B1,B2} end +abstract type AbstractSuperOperator end