Skip to content

Commit 355e0c0

Browse files
authored
Merge pull request #365 from martinholters/mh/fixmul
Fix indexing bug in `mul_unrolled_chunks!`
2 parents d3c5662 + c9ac7fa commit 355e0c0

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/matrix_multiply.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ end
398398

399399
# Do a custom b[:, k2] to return a SVector (an isbits type) rather than a mutable type. Avoids allocation == faster
400400
tmp_type = SVector{sb[1], eltype(c)}
401-
vect_exprs = [:($(Symbol("tmp_$k2")) = partly_unrolled_multiply($(Size(sa)), $(Size(sb[1])), a, $(Expr(:call, tmp_type, [Expr(:ref, :b, sub2ind(sc, i, k2)) for i = 1:sb[1]]...)))) for k2 = 1:sb[2]]
401+
vect_exprs = [:($(Symbol("tmp_$k2")) = partly_unrolled_multiply($(Size(sa)), $(Size(sb[1])), a, $(Expr(:call, tmp_type, [Expr(:ref, :b, sub2ind(sb, i, k2)) for i = 1:sb[1]]...)))) for k2 = 1:sb[2]]
402402

403403
exprs = [:(c[$(sub2ind(sc, k1, k2))] = $(Symbol("tmp_$k2"))[$k1]) for k1 = 1:sa[1], k2 = 1:sb[2]]
404404

test/matrix_multiply.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,16 @@
295295
A_mul_B!(a_5, m_5, n_5)
296296
@test a_5 a_array_5
297297

298+
m_array_6 = rand(1:10, 8, 10)
299+
n_array_6 = rand(1:10, 10, 8)
300+
a_array_6 = m_array_6*n_array_6
301+
302+
m_6 = MMatrix{8,10}(m_array_6)
303+
n_6 = MMatrix{10,8}(n_array_6)
304+
a_6 = MMatrix{8,8,Int}()
305+
A_mul_B!(a_6, m_6, n_6)
306+
@test a_6 == a_array_6
307+
298308
# Float64
299309
vf = @SVector [2.0, 4.0]
300310
vf2 = [2.0, 4.0]

0 commit comments

Comments
 (0)