Skip to content

Commit cb026ae

Browse files
committed
Revert commits moving stable_muladdmul within methods
1 parent 40e2e61 commit cb026ae

File tree

1 file changed

+19
-25
lines changed

1 file changed

+19
-25
lines changed

src/bidiag.jl

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -621,29 +621,26 @@ function _MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}) where {ais1,bi
621621
end
622622
_MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}, ::Val{false}) where {ais1,bis0} = MulAddMul()
623623

624-
_mul!(C::AbstractMatrix, A::BiTriSym, B::TriSym, alpha::Number, beta::Number) =
625-
_bibimul!(C, A, B, alpha, beta)
626-
_mul!(C::AbstractMatrix, A::BiTriSym, B::Bidiagonal, alpha::Number, beta::Number) =
627-
_bibimul!(C, A, B, alpha, beta)
628-
function _bibimul!(C, A, B, alpha, beta)
624+
_mul!(C::AbstractMatrix, A::BiTriSym, B::TriSym, _add::MulAddMul) =
625+
_bibimul!(C, A, B, _add)
626+
_mul!(C::AbstractMatrix, A::BiTriSym, B::Bidiagonal, _add::MulAddMul) =
627+
_bibimul!(C, A, B, _add)
628+
function _bibimul!(C, A, B, _add)
629629
require_one_based_indexing(C)
630630
matmul_size_check(size(C), size(A), size(B))
631631
n = size(A,1)
632632
iszero(n) && return C
633633
# We use `_rmul_or_fill!` instead of `_modify!` here since using
634634
# `_modify!` in the following loop will not update the
635635
# off-diagonal elements for non-zero beta.
636-
_rmul_or_fill!(C, beta)
637-
iszero(alpha) && return C
636+
_rmul_or_fill!(C, _add.beta)
637+
iszero(_add.alpha) && return C
638638
# beta is unused in _bibimul_nonzeroalpha!, so we set it to false
639-
@stable_muladdmul _bibimul_nonzeroalpha!(C, A, B, MulAddMul(alpha, false))
639+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
640+
_bibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
640641
C
641642
end
642643
function _bibimul_nonzeroalpha!(C, A, B, _add)
643-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
644-
__bibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
645-
end
646-
function __bibimul_nonzeroalpha!(C, A, B, _add)
647644
n = size(A,1)
648645
if n == 1
649646
# naive multiplication
@@ -671,7 +668,7 @@ function __bibimul_nonzeroalpha!(C, A, B, _add)
671668
end
672669
end # inbounds
673670
# middle columns
674-
__bibimul_bulk!(C, A, B, _add)
671+
__bibimul!(C, A, B, _add)
675672
@inbounds begin
676673
if n >= 4
677674
C[n-3,n-1] += _add(A[n-3,n-2]*B[n-2,n-1])
@@ -688,7 +685,7 @@ function __bibimul_nonzeroalpha!(C, A, B, _add)
688685
end # inbounds
689686
C
690687
end
691-
function __bibimul_bulk!(C, A, B, _add)
688+
function __bibimul!(C, A, B, _add)
692689
n = size(A,1)
693690
Al = _diag(A, -1)
694691
Ad = _diag(A, 0)
@@ -720,7 +717,7 @@ function __bibimul_bulk!(C, A, B, _add)
720717
end
721718
C
722719
end
723-
function __bibimul_bulk!(C, A, B::Bidiagonal, _add)
720+
function __bibimul!(C, A, B::Bidiagonal, _add)
724721
n = size(A,1)
725722
Al = _diag(A, -1)
726723
Ad = _diag(A, 0)
@@ -767,7 +764,7 @@ function __bibimul_bulk!(C, A, B::Bidiagonal, _add)
767764
end
768765
C
769766
end
770-
function __bibimul_bulk!(C, A::Bidiagonal, B, _add)
767+
function __bibimul!(C, A::Bidiagonal, B, _add)
771768
n = size(A,1)
772769
Bl = _diag(B, -1)
773770
Bd = _diag(B, 0)
@@ -816,7 +813,7 @@ function __bibimul_bulk!(C, A::Bidiagonal, B, _add)
816813
end
817814
C
818815
end
819-
function __bibimul_bulk!(C, A::Bidiagonal, B::Bidiagonal, _add)
816+
function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
820817
n = size(A,1)
821818
Ad = A.dv
822819
Bd = B.dv
@@ -892,20 +889,17 @@ function __bibimul_bulk!(C, A::Bidiagonal, B::Bidiagonal, _add)
892889
C
893890
end
894891

895-
function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, alpha::Number, beta::Number)
892+
function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
896893
require_one_based_indexing(C)
897894
matmul_size_check(size(C), size(A), size(B))
898895
n = size(A,1)
899896
iszero(n) && return C
900-
_rmul_or_fill!(C, beta) # see the same use above
901-
iszero(alpha) && return C
897+
_rmul_or_fill!(C, _add.beta) # see the same use above
898+
iszero(_add.alpha) && return C
902899
# beta is unused in the _bidimul! call, so we set it to false
903-
@stable_muladdmul _mul_nonzeroalpha!(C, A, B, MulAddMul(alpha, false))
904-
C
905-
end
906-
function _mul_nonzeroalpha!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
907-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
900+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
908901
_bidimul!(C, A, B, _add_nonzeroalpha)
902+
C
909903
end
910904
function _bidimul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
911905
n = size(A,1)

0 commit comments

Comments
 (0)