@@ -599,10 +599,14 @@ function _diag(A::Bidiagonal, k)
599599end
600600
601601_MulAddMul_nonzeroalpha (_add:: MulAddMul ) = _add
602+ function _MulAddMul_nonzeroalpha (_add:: MulAddMul{ais1,bis0,A} , :: Val{false} ) where {ais1,bis0,A}
603+ MulAddMul {ais1,true,A,Bool} (_add. alpha, false )
604+ end
602605function _MulAddMul_nonzeroalpha (_add:: MulAddMul{ais1,bis0,Bool} ) where {ais1,bis0}
603606 (; beta) = _add
604607 MulAddMul {true,bis0,Bool,typeof(beta)} (true , beta)
605608end
609+ _MulAddMul_nonzeroalpha (_add:: MulAddMul{ais1,bis0,Bool} , :: Val{false} ) where {ais1,bis0} = MulAddMul ()
606610
607611_mul! (C:: AbstractMatrix , A:: BiTriSym , B:: TriSym , _add:: MulAddMul ) =
608612 _bibimul! (C, A, B, _add)
@@ -618,7 +622,8 @@ function _bibimul!(C, A, B, _add::MulAddMul)
618622 # off-diagonal elements for non-zero beta.
619623 _rmul_or_fill! (C, _add. beta)
620624 iszero (_add. alpha) && return C
621- _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add)
625+ # beta is unused in _bibimul_nonzeroalpha!, so we set it to false
626+ _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add, Val (false ))
622627 _bibimul_nonzeroalpha! (C, A, B, _add_nonzeroalpha)
623628 C
624629end
@@ -867,7 +872,8 @@ function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
867872 iszero (n) && return C
868873 _rmul_or_fill! (C, _add. beta) # see the same use above
869874 iszero (_add. alpha) && return C
870- _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add)
875+ # beta is unused in the _bidimul! call, so we set it to false
876+ _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add, Val (false ))
871877 _bidimul! (C, A, B, _add_nonzeroalpha)
872878 C
873879end
@@ -983,7 +989,7 @@ function _mul!(C::AbstractVecOrMat, A::BiTriSym, B::AbstractVecOrMat, _add::MulA
983989 _mul_bitrisym_left! (C, A, B, _add_nonzeroalpha)
984990 return C
985991end
986- function _mul_bitrisym_left! (C:: AbstractVecOrMat , A:: Bidiagonal , B:: AbstractVecOrMat , _add:: MulAddMul )
992+ function _mul_bitrisym_left! (C:: AbstractVecOrMat , A:: BiTriSym , B:: AbstractVecOrMat , _add:: MulAddMul )
987993 nA = size (A,1 )
988994 nB = size (B,2 )
989995 if nA == 1
@@ -1136,7 +1142,7 @@ function _dibimul!(C, A, B, _add)
11361142 # ensure that we fill off-band elements in the destination
11371143 _rmul_or_fill! (C, _add. beta)
11381144 iszero (_add. alpha) && return C
1139- _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add)
1145+ _add_nonzeroalpha = _MulAddMul_nonzeroalpha (_add, Val ( false ) )
11401146 _dibimul_nonzeroalpha! (C, A, B, _add_nonzeroalpha)
11411147 C
11421148end
0 commit comments