Skip to content

Commit bb2967f

Browse files
authored
Make lmul!/rmul! general (#177)
* Make lmul!/rmul! general * fix rmul!
1 parent 6bcf698 commit bb2967f

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "BlockArrays"
22
uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
3-
version = "0.16.1"
3+
version = "0.16.2"
44

55
[deps]
66
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"

src/blockarray.jl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -437,20 +437,6 @@ function Base.fill!(block_array::BlockArray, v)
437437
block_array
438438
end
439439

440-
function lmul!::Number, block_array::BlockArray)
441-
for block in block_array.blocks
442-
lmul!(α, block)
443-
end
444-
block_array
445-
end
446-
447-
function rmul!(block_array::BlockArray, α::Number)
448-
for block in block_array.blocks
449-
rmul!(block, α)
450-
end
451-
block_array
452-
end
453-
454440
# Temporary work around
455441
Base.reshape(block_array::BlockArray, axes::NTuple{N,AbstractUnitRange{Int}}) where N =
456442
reshape(PseudoBlockArray(block_array), axes)

src/blocklinalg.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,28 @@ function _copyto!(_, ::AbstractBlockLayout, dest::AbstractMatrix, src::AbstractM
137137
dest
138138
end
139139

140+
141+
####
142+
# l/rmul!
143+
#####
144+
145+
146+
function materialize!(L::Lmul{ScalarLayout,<:AbstractBlockLayout})
147+
α, block_array = L.A, L.B
148+
for block in blocks(block_array)
149+
lmul!(α, block)
150+
end
151+
block_array
152+
end
153+
154+
function materialize!(L::Rmul{<:AbstractBlockLayout,ScalarLayout})
155+
block_array, α = L.A, L.B
156+
for block in block_array.blocks
157+
rmul!(block, α)
158+
end
159+
block_array
160+
end
161+
140162
#############
141163
# BLAS overrides
142164
#############

src/pseudo_blockarray.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,12 +230,12 @@ function Base.fill!(block_array::PseudoBlockArray, v)
230230
block_array
231231
end
232232

233-
function lmul!::Number, block_array::PseudoBlockArray)
233+
function ArrayLayouts.lmul!::Number, block_array::PseudoBlockArray)
234234
lmul!(α, block_array.blocks)
235235
block_array
236236
end
237237

238-
function rmul!(block_array::PseudoBlockArray, α::Number)
238+
function ArrayLayouts.rmul!(block_array::PseudoBlockArray, α::Number)
239239
rmul!(block_array.blocks, α)
240240
block_array
241241
end

0 commit comments

Comments
 (0)