Skip to content

Commit ac30196

Browse files
committed
Use views
1 parent 3a8f8bc commit ac30196

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

src/linalg/factorizations.jl

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using MatrixAlgebraKit
2-
using MatrixAlgebraKit: AbstractAlgorithm, YALAPACK.BlasMat, Algorithm, diagview, zero!, one!
2+
using MatrixAlgebraKit: AbstractAlgorithm, YALAPACK.BlasMat, Algorithm
33
import MatrixAlgebraKit as MAK
44

55
# Type piracy for defining the MAK rules on BlockArrays!
@@ -8,20 +8,17 @@ import MatrixAlgebraKit as MAK
88
const BlockBlasMat{T <: MAK.BlasFloat} = BlockMatrix{T}
99

1010
function MatrixAlgebraKit.zero!(A::BlockBlasMat)
11-
for bi in 1:blocksize(A, 1), bj in 1:blocksize(A, 2)
12-
zero!(A[Block(bi), Block(bj)])
11+
for bj in blockaxes(A, 2), bi in blockaxes(A, 1)
12+
a = view(A, bi, bj)
13+
MAK.zero!(a)
1314
end
1415
return A
1516
end
1617

1718
function MatrixAlgebraKit.one!(A::BlockBlasMat)
18-
A .= zero(eltype(A))
19-
for bi in 1:blocksize(A, 1), bj in 1:blocksize(A, 2)
20-
if bi == bj
21-
one!(A[Block(bi), Block(bj)])
22-
#else
23-
# zero!(A[Block(bi), Block(bj)])
24-
end
19+
for bj in blockaxes(A, 2), bi in blockaxes(A, 1)
20+
a = view(A, bi, bj)
21+
bi == bj ? MAK.one!(a) : MAK.zero!(a)
2522
end
2623
return A
2724
end

0 commit comments

Comments
 (0)