Skip to content

Commit 9e0e121

Browse files
committed
Set beta to false if unused
1 parent 907be45 commit 9e0e121

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/bidiag.jl

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -588,10 +588,14 @@ function _diag(A::Bidiagonal, k)
588588
end
589589

590590
_MulAddMul_nonzeroalpha(_add::MulAddMul) = _add
591+
function _MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,A}, ::Val{false}) where {ais1,bis0,A}
592+
MulAddMul{ais1,true,A,Bool}(_add.alpha, false)
593+
end
591594
function _MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}) where {ais1,bis0}
592595
(; beta) = _add
593596
MulAddMul{true,bis0,Bool,typeof(beta)}(true, beta)
594597
end
598+
_MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}, ::Val{false}) where {ais1,bis0} = MulAddMul()
595599

596600
_mul!(C::AbstractMatrix, A::BiTriSym, B::TriSym, _add::MulAddMul) =
597601
_bibimul!(C, A, B, _add)
@@ -607,7 +611,8 @@ function _bibimul!(C, A, B, _add::MulAddMul)
607611
# off-diagonal elements for non-zero beta.
608612
_rmul_or_fill!(C, _add.beta)
609613
iszero(_add.alpha) && return C
610-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
614+
# beta is unused in _bibimul_nonzeroalpha!, so we set it to false
615+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
611616
_bibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
612617
C
613618
end
@@ -856,7 +861,8 @@ function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
856861
iszero(n) && return C
857862
_rmul_or_fill!(C, _add.beta) # see the same use above
858863
iszero(_add.alpha) && return C
859-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
864+
# beta is unused in the _bidimul! call, so we set it to false
865+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
860866
_bidimul!(C, A, B, _add_nonzeroalpha)
861867
C
862868
end
@@ -967,13 +973,12 @@ function _mul!(C::AbstractVecOrMat, A::BiTriSym, B::AbstractVecOrMat, _add::MulA
967973
nA = size(A,1)
968974
nB = size(B,2)
969975
(iszero(nA) || iszero(nB)) && return C
970-
(; alpha, beta) = _add
971-
iszero(alpha) && return _rmul_or_fill!(C, beta)
976+
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
972977
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
973978
_mul_bitrisym_left!(C, A, B, _add_nonzeroalpha)
974979
return C
975980
end
976-
function _mul_bitrisym_left!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat, _add::MulAddMul)
981+
function _mul_bitrisym_left!(C::AbstractVecOrMat, A::BiTriSym, B::AbstractVecOrMat, _add::MulAddMul)
977982
nA = size(A,1)
978983
nB = size(B,2)
979984
if nA <= 3
@@ -1045,8 +1050,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _add::MulAddMul)
10451050
matmul_size_check(size(C), size(A), size(B))
10461051
n = size(A,1)
10471052
m = size(B,2)
1048-
(; alpha, beta) = _add
1049-
(iszero(alpha) || iszero(m)) && return _rmul_or_fill!(C, beta)
1053+
(iszero(_add.alpha) || iszero(m)) && return _rmul_or_fill!(C, _add.beta)
10501054
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
10511055
_mul_bitrisym_right!(C, A, B, _add_nonzeroalpha)
10521056
C
@@ -1089,8 +1093,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::Bidiagonal, _add::MulAdd
10891093
matmul_size_check(size(C), size(A), size(B))
10901094
m, n = size(A)
10911095
(iszero(m) || iszero(n)) && return C
1092-
(; alpha, beta) = _add
1093-
iszero(alpha) && return _rmul_or_fill!(C, beta)
1096+
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
10941097
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
10951098
_mul_bitrisym_right!(C, A, B, _add_nonzeroalpha)
10961099
C
@@ -1129,7 +1132,7 @@ function _dibimul!(C, A, B, _add)
11291132
# ensure that we fill off-band elements in the destination
11301133
_rmul_or_fill!(C, _add.beta)
11311134
iszero(_add.alpha) && return C
1132-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
1135+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
11331136
_dibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
11341137
C
11351138
end

0 commit comments

Comments
 (0)