Skip to content

Commit bd61911

Browse files
Remove Re-export
1 parent 6898156 commit bd61911

File tree

4 files changed

+40
-40
lines changed

4 files changed

+40
-40
lines changed

src/QuantumToolbox.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ module QuantumToolbox
55
# 2. basic functions in LinearAlgebra and SparseArrays
66
# 3. some functions in SciMLOperators
77
import Reexport: @reexport
8-
@reexport import StaticArraysCore: SVector
9-
@reexport using LinearAlgebra
10-
@reexport using SparseArrays
11-
@reexport import SciMLOperators: cache_operator, iscached, isconstant
8+
import StaticArraysCore: SVector
9+
using LinearAlgebra
10+
using SparseArrays
11+
import SciMLOperators: cache_operator, iscached, isconstant
1212

1313
# other functions in LinearAlgebra
1414
import LinearAlgebra: BlasReal, BlasInt, BlasFloat, BlasComplex, checksquare

src/qobj/arithmetic_and_attributes.jl

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ end
3636

3737
for 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
5151
end
@@ -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
9292
end
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)))
100100
end
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)))
107107
end
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.
111111
end
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
115115
end
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)
122122
end
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
126126
end
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)
133133
end
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)
140140
end
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
222222
Lazy 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 `\sqrt` 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
425425
Note 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
435435
Note 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
484484
Note 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
496496
Note 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"""

src/qobj/dimensions.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ _get_space_size(s::AbstractSpace)::Int = s.size
9191
Base.prod(dims::Dimensions) = prod(dims.to)
9292
Base.prod(spaces::NTuple{N,AbstractSpace}) where {N} = prod(_get_space_size, spaces)
9393

94-
LinearAlgebra.transpose(dimensions::Dimensions) = dimensions
95-
LinearAlgebra.transpose(dimensions::GeneralDimensions) = GeneralDimensions(dimensions.from, dimensions.to) # switch `to` and `from`
96-
LinearAlgebra.adjoint(dimensions::AbstractDimensions) = transpose(dimensions)
94+
Base.transpose(dimensions::Dimensions) = dimensions
95+
Base.transpose(dimensions::GeneralDimensions) = GeneralDimensions(dimensions.from, dimensions.to) # switch `to` and `from`
96+
Base.adjoint(dimensions::AbstractDimensions) = transpose(dimensions)
9797

9898
# this is used to show `dims` for Qobj and QobjEvo
9999
_get_dims_string(dimensions::Dimensions) = string(dimensions_to_dims(dimensions))

src/qobj/functions.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ julia> a.dims, O.dims
187187
([20], [20, 20])
188188
```
189189
"""
190-
function LinearAlgebra.kron(
190+
function Base.kron(
191191
A::AbstractQuantumObject{OpType,<:Dimensions},
192192
B::AbstractQuantumObject{OpType,<:Dimensions},
193193
) where {OpType<:Union{KetQuantumObject,BraQuantumObject,OperatorQuantumObject}}
@@ -201,7 +201,7 @@ for ADimType in (:Dimensions, :GeneralDimensions)
201201
for BDimType in (:Dimensions, :GeneralDimensions)
202202
if !(ADimType == BDimType == :Dimensions) # not for this case because it's already implemented
203203
@eval begin
204-
function LinearAlgebra.kron(
204+
function Base.kron(
205205
A::AbstractQuantumObject{OperatorQuantumObject,<:$ADimType},
206206
B::AbstractQuantumObject{OperatorQuantumObject,<:$BDimType},
207207
)
@@ -226,7 +226,7 @@ for AOpType in (:KetQuantumObject, :BraQuantumObject, :OperatorQuantumObject)
226226
for BOpType in (:KetQuantumObject, :BraQuantumObject, :OperatorQuantumObject)
227227
if (AOpType != BOpType)
228228
@eval begin
229-
function LinearAlgebra.kron(A::AbstractQuantumObject{$AOpType}, B::AbstractQuantumObject{$BOpType})
229+
function Base.kron(A::AbstractQuantumObject{$AOpType}, B::AbstractQuantumObject{$BOpType})
230230
QType = promote_op_type(A, B)
231231
_lazy_tensor_warning(A.data, B.data)
232232
return QType(
@@ -243,8 +243,8 @@ for AOpType in (:KetQuantumObject, :BraQuantumObject, :OperatorQuantumObject)
243243
end
244244
end
245245

246-
LinearAlgebra.kron(A::AbstractQuantumObject) = A
247-
function LinearAlgebra.kron(A::Vector{<:AbstractQuantumObject})
246+
Base.kron(A::AbstractQuantumObject) = A
247+
function Base.kron(A::Vector{<:AbstractQuantumObject})
248248
@warn "`tensor(A)` or `kron(A)` with `A` is a `Vector` can hurt performance. Try to use `tensor(A...)` or `kron(A...)` instead."
249249
return kron(A...)
250250
end

0 commit comments

Comments
 (0)