Skip to content

Commit e29a810

Browse files
authored
Fix some method signatures related AbstractQ's (#211)
1 parent bdbfe00 commit e29a810

File tree

6 files changed

+16
-19
lines changed

6 files changed

+16
-19
lines changed

src/blockmap.jl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ julia> L * ones(Int, 6)
8181
6
8282
```
8383
"""
84-
function Base.hcat(As::Union{LinearMap, UniformScaling, AbstractVecOrMatOrQ}...)
84+
function Base.hcat(As::Union{LinearMap, UniformScaling, AbstractArray, AbstractQ}...)
8585
T = promote_type(map(eltype, As)...)
8686
nbc = length(As)
8787

@@ -119,7 +119,7 @@ julia> L * ones(Int, 3)
119119
3
120120
```
121121
"""
122-
function Base.vcat(As::Union{LinearMap,UniformScaling,AbstractVecOrMatOrQ}...)
122+
function Base.vcat(As::Union{LinearMap, UniformScaling, AbstractArray, AbstractQ}...)
123123
T = promote_type(map(eltype, As)...)
124124
nbr = length(As)
125125

@@ -162,10 +162,7 @@ julia> L * ones(Int, 6)
162162
6
163163
```
164164
"""
165-
Base.hvcat
166-
167-
function Base.hvcat(rows::Tuple{Vararg{Int}},
168-
As::Union{LinearMap, UniformScaling, AbstractVecOrMatOrQ}...)
165+
function Base.hvcat(rows::Tuple{Vararg{Int}}, As::Union{LinearMap, UniformScaling, AbstractArray, AbstractQ}...)
169166
nr = length(rows)
170167
T = promote_type(map(eltype, As)...)
171168
sum(rows) == length(As) ||

src/fillmap.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ FillMap(λ, m::Int, n::Int) = FillMap(λ, (m, n))
1818

1919
# properties
2020
Base.size(A::FillMap) = A.size
21-
MulStyle(A::FillMap) = FiveArg()
21+
MulStyle(::FillMap) = FiveArg()
2222
LinearAlgebra.issymmetric(A::FillMap) = A.size[1] == A.size[2]
2323
LinearAlgebra.ishermitian(A::FillMap) = isreal(A.λ) && A.size[1] == A.size[2]
2424
LinearAlgebra.isposdef(A::FillMap) = (size(A, 1) == size(A, 2) == 1 && isposdef(A.λ))

src/getindex.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ _getindex(A::LinearMap, I::Indexer, J::Indexer) =
4747
error("partial two-dimensional slicing of LinearMaps is not supported, consider using A[:,J][I] or A[I,:][J] instead")
4848

4949
_getindex(A::LinearMap, ::Base.Slice, j::Integer) = A*unitvec(A, 2, j)
50-
function _getindex(A::LinearMap, i::Integer, J::Base.Slice)
50+
function _getindex(A::LinearMap, i::Integer, ::Base.Slice)
5151
try
5252
# requires adjoint action to be defined
5353
return vec(unitvec(A, 1, i)'A)

src/left.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ julia> mul!(C, A, B, 1, 1)
9292
5.0 7.0
9393
```
9494
"""
95-
function mul!(X::AbstractMatrix, Y::AbstractMatrix, A::LinearMap, α, β)
95+
function mul!(X::AbstractMatrix, Y::AbstractMatrix, A::LinearMap, α::Number, β::Number)
9696
check_dim_mul(X, Y, A)
9797
_unsafe_mul!(X, Y, A, α, β)
9898
end

src/uniformscalingmap.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ Base.:(*)(J::UniformScalingMap, α::RealOrComplex) = UniformScalingMap(J.λ * α
4242
Base.:(*)(J::UniformScalingMap, x::AbstractVector) =
4343
length(x) == J.M ? J.λ * x : throw(DimensionMismatch("*"))
4444
# multiplication with matrix
45-
Base.:(*)(J::UniformScalingMap, B::AbstractMatrix) =
45+
Base.:(*)(J::UniformScalingMap, B::Union{AbstractMatrix,AbstractQ}) =
4646
size(B, 1) == J.M ? J.λ * LinearMap(B) : throw(DimensionMismatch("*"))
47-
Base.:(*)(A::AbstractMatrix, J::UniformScalingMap) =
47+
Base.:(*)(A::Union{AbstractMatrix,AbstractQ}, J::UniformScalingMap) =
4848
size(A, 2) == J.M ? LinearMap(A) * J.λ : throw(DimensionMismatch("*"))
4949
# disambiguation
5050
Base.:(*)(xc::LinearAlgebra.AdjointAbsVec, J::UniformScalingMap) = xc * J.λ

src/wrappedmap.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,13 @@ _unsafe_mul!(Y, A::VecOrMatMap, s::Number) = _unsafe_mul!(Y, A.lmap, s)
108108
_unsafe_mul!(Y, A::VecOrMatMap, s::Number, α, β) = _unsafe_mul!(Y, A.lmap, s, α, β)
109109

110110
# combine LinearMap and Matrix objects: linear combinations and map composition
111-
Base.:(+)(A₁::LinearMap, A₂::AbstractMatrix) = +(A₁, WrappedMap(A₂))
112-
Base.:(+)(A₁::AbstractMatrix, A₂::LinearMap) = +(WrappedMap(A₁), A₂)
113-
Base.:(-)(A₁::LinearMap, A₂::AbstractMatrix) = -(A₁, WrappedMap(A₂))
114-
Base.:(-)(A₁::AbstractMatrix, A₂::LinearMap) = -(WrappedMap(A₁), A₂)
111+
Base.:(+)(A₁::LinearMap, A₂::Union{AbstractMatrix,AbstractQ}) = +(A₁, WrappedMap(A₂))
112+
Base.:(+)(A₁::Union{AbstractMatrix,AbstractQ}, A₂::LinearMap) = +(WrappedMap(A₁), A₂)
113+
Base.:(-)(A₁::LinearMap, A₂::Union{AbstractMatrix,AbstractQ}) = -(A₁, WrappedMap(A₂))
114+
Base.:(-)(A₁::Union{AbstractMatrix,AbstractQ}, A₂::LinearMap) = -(WrappedMap(A₁), A₂)
115115

116116
"""
117-
*(A::LinearMap, X::AbstractMatrix)::CompositeMap
117+
*(A::LinearMap, X::Union{AbstractMatrix,AbstractQ})::CompositeMap
118118
119119
Return the `CompositeMap` `A*LinearMap(X)`, interpreting the matrix `X` as a linear
120120
operator, rather than a collection of column vectors. To compute the action of `A` on each
@@ -129,10 +129,10 @@ julia> A*X isa LinearMaps.CompositeMap
129129
true
130130
```
131131
"""
132-
Base.:(*)(A₁::LinearMap, A₂::AbstractMatrix) = *(A₁, WrappedMap(A₂))
132+
Base.:(*)(A₁::LinearMap, A₂::Union{AbstractMatrix,AbstractQ}) = *(A₁, WrappedMap(A₂))
133133

134134
"""
135-
*(X::AbstractMatrix, A::LinearMap)::CompositeMap
135+
*(X::Union{AbstractMatrix,AbstractQ}, A::LinearMap)::CompositeMap
136136
137137
Return the `CompositeMap` `LinearMap(X)*A`, interpreting the matrix `X` as a linear
138138
operator. To compute the right-action of `A` on each row of `X`, call `Matrix(X*A)`
@@ -146,4 +146,4 @@ julia> X*A isa LinearMaps.CompositeMap
146146
true
147147
```
148148
"""
149-
Base.:(*)(A₁::AbstractMatrix, A₂::LinearMap) = *(WrappedMap(A₁), A₂)
149+
Base.:(*)(A₁::Union{AbstractMatrix,AbstractQ}, A₂::LinearMap) = *(WrappedMap(A₁), A₂)

0 commit comments

Comments
 (0)