Skip to content

Commit 9c3c661

Browse files
committed
remove type in lmap-promotion
1 parent ca93cf0 commit 9c3c661

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

src/blockmap.jl

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function Base.hcat(As::Union{LinearMap,UniformScaling}...)
5757
end
5858
nrows == 0 && throw(ArgumentError("hcat of only UniformScaling-like objects cannot determine the linear map size"))
5959

60-
maps = promote_to_lmaps(ntuple(i->nrows, nbc), 1, T, As...)
60+
maps = promote_to_lmaps(ntuple(i->nrows, nbc), 1, As...)
6161
check_dims(maps, 1)
6262
return BlockMap{T}(maps, (length(As),))
6363
end
@@ -80,7 +80,7 @@ function Base.vcat(As::Union{LinearMap,UniformScaling}...)
8080
end
8181
ncols == 0 && throw(ArgumentError("hcat of only UniformScaling-like objects cannot determine the linear map size"))
8282

83-
maps = promote_to_lmaps(ntuple(i->ncols, nbr), 1, T, As...)
83+
maps = promote_to_lmaps(ntuple(i->ncols, nbr), 1, As...)
8484
check_dims(maps, 2)
8585
return BlockMap{T}(maps, ntuple(i->1, length(As)))
8686
end
@@ -141,19 +141,18 @@ function Base.hvcat(rows::NTuple{nr,Int}, As::Union{LinearMap,UniformScaling}...
141141
end
142142
end
143143

144-
return BlockMap{T}(promote_to_lmaps(n, 1, T, As...), rows)
144+
return BlockMap{T}(promote_to_lmaps(n, 1, As...), rows)
145145
end
146146

147-
promote_to_lmaps_(n::Int, ::Type{T}, J::UniformScaling) where {T} = UniformScalingMap(convert(T, J.λ), n)
148-
promote_to_lmaps_(n::Int, ::Type{T}, A::LinearMap{T}) where {T} = A
149-
promote_to_lmaps(n, k, ::Type) = ()
150-
promote_to_lmaps(n, k, ::Type{T}, A) where {T} = (promote_to_lmaps_(n[k], T, A),)
151-
promote_to_lmaps(n, k, ::Type{T}, A, B) where {T} =
152-
(promote_to_lmaps_(n[k], T, A), promote_to_lmaps_(n[k+1], T, B))
153-
promote_to_lmaps(n, k, ::Type{T}, A, B, C) where {T} =
154-
(promote_to_lmaps_(n[k], T, A), promote_to_lmaps_(n[k+1], T, B), promote_to_lmaps_(n[k+2], T, C))
155-
promote_to_lmaps(n, k, ::Type{T}, A, B, Cs...) where {T} =
156-
(promote_to_lmaps_(n[k], T, A), promote_to_lmaps_(n[k+1], T, B), promote_to_lmaps(n, k+2, T, Cs...)...)
147+
promote_to_lmaps_(n::Int, J::UniformScaling) = UniformScalingMap(J.λ, n)
148+
promote_to_lmaps_(n::Int, A::LinearMap) = A
149+
promote_to_lmaps(n, k) = ()
150+
promote_to_lmaps(n, k, A) = (promote_to_lmaps_(n[k], A),)
151+
promote_to_lmaps(n, k, A, B) = (promote_to_lmaps_(n[k], A), promote_to_lmaps_(n[k+1], B))
152+
promote_to_lmaps(n, k, A, B, C) =
153+
(promote_to_lmaps_(n[k], A), promote_to_lmaps_(n[k+1], B), promote_to_lmaps_(n[k+2], C))
154+
promote_to_lmaps(n, k, A, B, Cs...) =
155+
(promote_to_lmaps_(n[k], A), promote_to_lmaps_(n[k+1], B), promote_to_lmaps(n, k+2, Cs...)...)
157156

158157
############
159158
# basic methods

0 commit comments

Comments
 (0)