3636
3737for op in (:(+ ), :(- ), :(* ))
3838 @eval begin
39- function LinearAlgebra . $op (A:: AbstractQuantumObject , B:: AbstractQuantumObject )
39+ function Base . $op (A:: AbstractQuantumObject , B:: AbstractQuantumObject )
4040 check_dimensions (A, B)
4141 QType = promote_op_type (A, B)
4242 return QType ($ (op)(A. data, B. data), A. type, A. dimensions)
4343 end
44- LinearAlgebra .$ op (A:: AbstractQuantumObject ) = get_typename_wrapper (A)($ (op)(A. data), A. type, A. dimensions)
44+ Base .$ op (A:: AbstractQuantumObject ) = get_typename_wrapper (A)($ (op)(A. data), A. type, A. dimensions)
4545
46- LinearAlgebra .$ op (n:: T , A:: AbstractQuantumObject ) where {T<: Number } =
46+ Base .$ op (n:: T , A:: AbstractQuantumObject ) where {T<: Number } =
4747 get_typename_wrapper (A)($ (op)(n * I, A. data), A. type, A. dimensions)
48- LinearAlgebra .$ op (A:: AbstractQuantumObject , n:: T ) where {T<: Number } =
48+ Base .$ op (A:: AbstractQuantumObject , n:: T ) where {T<: Number } =
4949 get_typename_wrapper (A)($ (op)(A. data, n * I), A. type, A. dimensions)
5050 end
5151end
@@ -63,7 +63,7 @@ for ADimType in (:Dimensions, :GeneralDimensions)
6363 for BDimType in (:Dimensions , :GeneralDimensions )
6464 if ADimType == BDimType == :Dimensions
6565 @eval begin
66- function LinearAlgebra .:(* )(
66+ function Base .:(* )(
6767 A:: AbstractQuantumObject{OperatorQuantumObject,<:$ADimType} ,
6868 B:: AbstractQuantumObject{OperatorQuantumObject,<:$BDimType} ,
6969 )
@@ -74,7 +74,7 @@ for ADimType in (:Dimensions, :GeneralDimensions)
7474 end
7575 else
7676 @eval begin
77- function LinearAlgebra .:(* )(
77+ function Base .:(* )(
7878 A:: AbstractQuantumObject{OperatorQuantumObject,<:$ADimType} ,
7979 B:: AbstractQuantumObject{OperatorQuantumObject,<:$BDimType} ,
8080 )
@@ -91,56 +91,56 @@ for ADimType in (:Dimensions, :GeneralDimensions)
9191 end
9292end
9393
94- function LinearAlgebra .:(* )(
94+ function Base .:(* )(
9595 A:: AbstractQuantumObject{OperatorQuantumObject} ,
9696 B:: QuantumObject{KetQuantumObject,<:Dimensions} ,
9797)
9898 check_mul_dimensions (get_dimensions_from (A), get_dimensions_to (B))
9999 return QuantumObject (A. data * B. data, Ket, Dimensions (get_dimensions_to (A)))
100100end
101- function LinearAlgebra .:(* )(
101+ function Base .:(* )(
102102 A:: QuantumObject{BraQuantumObject,<:Dimensions} ,
103103 B:: AbstractQuantumObject{OperatorQuantumObject} ,
104104)
105105 check_mul_dimensions (get_dimensions_from (A), get_dimensions_to (B))
106106 return QuantumObject (A. data * B. data, Bra, Dimensions (get_dimensions_from (B)))
107107end
108- function LinearAlgebra .:(* )(A:: QuantumObject{KetQuantumObject} , B:: QuantumObject{BraQuantumObject} )
108+ function Base .:(* )(A:: QuantumObject{KetQuantumObject} , B:: QuantumObject{BraQuantumObject} )
109109 check_dimensions (A, B)
110110 return QuantumObject (A. data * B. data, Operator, A. dimensions) # to align with QuTiP, don't use kron(A, B) to do it.
111111end
112- function LinearAlgebra .:(* )(A:: QuantumObject{BraQuantumObject} , B:: QuantumObject{KetQuantumObject} )
112+ function Base .:(* )(A:: QuantumObject{BraQuantumObject} , B:: QuantumObject{KetQuantumObject} )
113113 check_dimensions (A, B)
114114 return A. data * B. data
115115end
116- function LinearAlgebra .:(* )(
116+ function Base .:(* )(
117117 A:: AbstractQuantumObject{SuperOperatorQuantumObject} ,
118118 B:: QuantumObject{OperatorQuantumObject} ,
119119)
120120 check_dimensions (A, B)
121121 return QuantumObject (vec2mat (A. data * mat2vec (B. data)), Operator, A. dimensions)
122122end
123- function LinearAlgebra .:(* )(A:: QuantumObject{OperatorBraQuantumObject} , B:: QuantumObject{OperatorKetQuantumObject} )
123+ function Base .:(* )(A:: QuantumObject{OperatorBraQuantumObject} , B:: QuantumObject{OperatorKetQuantumObject} )
124124 check_dimensions (A, B)
125125 return A. data * B. data
126126end
127- function LinearAlgebra .:(* )(
127+ function Base .:(* )(
128128 A:: AbstractQuantumObject{SuperOperatorQuantumObject} ,
129129 B:: QuantumObject{OperatorKetQuantumObject} ,
130130)
131131 check_dimensions (A, B)
132132 return QuantumObject (A. data * B. data, OperatorKet, A. dimensions)
133133end
134- function LinearAlgebra .:(* )(
134+ function Base .:(* )(
135135 A:: QuantumObject{OperatorBraQuantumObject} ,
136136 B:: AbstractQuantumObject{SuperOperatorQuantumObject} ,
137137)
138138 check_dimensions (A, B)
139139 return QuantumObject (A. data * B. data, OperatorBra, A. dimensions)
140140end
141141
142- LinearAlgebra .:(^ )(A:: QuantumObject , n:: T ) where {T<: Number } = QuantumObject (^ (A. data, n), A. type, A. dimensions)
143- LinearAlgebra .:(/ )(A:: AbstractQuantumObject , n:: T ) where {T<: Number } =
142+ Base .:(^ )(A:: QuantumObject , n:: T ) where {T<: Number } = QuantumObject (^ (A. data, n), A. type, A. dimensions)
143+ Base .:(/ )(A:: AbstractQuantumObject , n:: T ) where {T<: Number } =
144144 get_typename_wrapper (A)(A. data / n, A. type, A. dimensions)
145145
146146@doc raw """
@@ -221,7 +221,7 @@ Base.conj(A::AbstractQuantumObject) = get_typename_wrapper(A)(conj(A.data), A.ty
221221
222222Lazy matrix transpose of the [`AbstractQuantumObject`](@ref).
223223"""
224- LinearAlgebra . transpose (
224+ Base . transpose (
225225 A:: AbstractQuantumObject{OpType} ,
226226) where {OpType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
227227 get_typename_wrapper (A)(transpose (A. data), A. type, transpose (A. dimensions))
@@ -236,15 +236,15 @@ Lazy adjoint (conjugate transposition) of the [`AbstractQuantumObject`](@ref)
236236!!! note
237237 `A'` and `dag(A)` are synonyms of `adjoint(A)`.
238238"""
239- LinearAlgebra . adjoint (
239+ Base . adjoint (
240240 A:: AbstractQuantumObject{OpType} ,
241241) where {OpType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
242242 get_typename_wrapper (A)(adjoint (A. data), A. type, adjoint (A. dimensions))
243- LinearAlgebra . adjoint (A:: QuantumObject{KetQuantumObject} ) = QuantumObject (adjoint (A. data), Bra, adjoint (A. dimensions))
244- LinearAlgebra . adjoint (A:: QuantumObject{BraQuantumObject} ) = QuantumObject (adjoint (A. data), Ket, adjoint (A. dimensions))
245- LinearAlgebra . adjoint (A:: QuantumObject{OperatorKetQuantumObject} ) =
243+ Base . adjoint (A:: QuantumObject{KetQuantumObject} ) = QuantumObject (adjoint (A. data), Bra, adjoint (A. dimensions))
244+ Base . adjoint (A:: QuantumObject{BraQuantumObject} ) = QuantumObject (adjoint (A. data), Ket, adjoint (A. dimensions))
245+ Base . adjoint (A:: QuantumObject{OperatorKetQuantumObject} ) =
246246 QuantumObject (adjoint (A. data), OperatorBra, adjoint (A. dimensions))
247- LinearAlgebra . adjoint (A:: QuantumObject{OperatorBraQuantumObject} ) =
247+ Base . adjoint (A:: QuantumObject{OperatorBraQuantumObject} ) =
248248 QuantumObject (adjoint (A. data), OperatorKet, adjoint (A. dimensions))
249249
250250@doc raw """
@@ -415,7 +415,7 @@ Matrix square root of [`QuantumObject`](@ref)
415415!!! note
416416 `√(A)` (where `√` can be typed by tab-completing `\s qrt` in the REPL) is a synonym of `sqrt(A)`.
417417"""
418- LinearAlgebra . sqrt (A:: QuantumObject ) = QuantumObject (sqrt (to_dense (A. data)), A. type, A. dimensions)
418+ Base . sqrt (A:: QuantumObject ) = QuantumObject (sqrt (to_dense (A. data)), A. type, A. dimensions)
419419
420420@doc raw """
421421 log(A::QuantumObject)
@@ -424,7 +424,7 @@ Matrix logarithm of [`QuantumObject`](@ref)
424424
425425Note that this function only supports for [`Operator`](@ref) and [`SuperOperator`](@ref)
426426"""
427- LinearAlgebra . log (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
427+ Base . log (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
428428 QuantumObject (log (to_dense (A. data)), A. type, A. dimensions)
429429
430430@doc raw """
@@ -434,11 +434,11 @@ Matrix exponential of [`QuantumObject`](@ref)
434434
435435Note that this function only supports for [`Operator`](@ref) and [`SuperOperator`](@ref)
436436"""
437- LinearAlgebra . exp (
437+ Base . exp (
438438 A:: QuantumObject{ObjType,DimsType,<:AbstractMatrix} ,
439439) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} ,DimsType} =
440440 QuantumObject (to_sparse (exp (A. data)), A. type, A. dimensions)
441- LinearAlgebra . exp (
441+ Base . exp (
442442 A:: QuantumObject{ObjType,DimsType,<:AbstractSparseMatrix} ,
443443) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} ,DimsType} =
444444 QuantumObject (_spexp (A. data), A. type, A. dimensions)
@@ -483,7 +483,7 @@ Matrix sine of [`QuantumObject`](@ref), defined as
483483
484484Note that this function only supports for [`Operator`](@ref) and [`SuperOperator`](@ref)
485485"""
486- LinearAlgebra . sin (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
486+ Base . sin (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
487487 (exp (1im * A) - exp (- 1im * A)) / 2im
488488
489489@doc raw """
@@ -495,7 +495,7 @@ Matrix cosine of [`QuantumObject`](@ref), defined as
495495
496496Note that this function only supports for [`Operator`](@ref) and [`SuperOperator`](@ref)
497497"""
498- LinearAlgebra . cos (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
498+ Base . cos (A:: QuantumObject{ObjType} ) where {ObjType<: Union{OperatorQuantumObject,SuperOperatorQuantumObject} } =
499499 (exp (1im * A) + exp (- 1im * A)) / 2
500500
501501@doc raw """
0 commit comments