Skip to content

Commit f99cb9e

Browse files
committed
Revert commits moving stable_muladdmul within methods
1 parent 4839a8c commit f99cb9e

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
@@ -619,29 +619,26 @@ function _MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}) where {ais1,bi
619619
end
620620
_MulAddMul_nonzeroalpha(_add::MulAddMul{ais1,bis0,Bool}, ::Val{false}) where {ais1,bis0} = MulAddMul()
621621

622-
_mul!(C::AbstractMatrix, A::BiTriSym, B::TriSym, alpha::Number, beta::Number) =
623-
_bibimul!(C, A, B, alpha, beta)
624-
_mul!(C::AbstractMatrix, A::BiTriSym, B::Bidiagonal, alpha::Number, beta::Number) =
625-
_bibimul!(C, A, B, alpha, beta)
626-
function _bibimul!(C, A, B, alpha, beta)
622+
_mul!(C::AbstractMatrix, A::BiTriSym, B::TriSym, _add::MulAddMul) =
623+
_bibimul!(C, A, B, _add)
624+
_mul!(C::AbstractMatrix, A::BiTriSym, B::Bidiagonal, _add::MulAddMul) =
625+
_bibimul!(C, A, B, _add)
626+
function _bibimul!(C, A, B, _add)
627627
require_one_based_indexing(C)
628628
matmul_size_check(size(C), size(A), size(B))
629629
n = size(A,1)
630630
iszero(n) && return C
631631
# We use `_rmul_or_fill!` instead of `_modify!` here since using
632632
# `_modify!` in the following loop will not update the
633633
# off-diagonal elements for non-zero beta.
634-
_rmul_or_fill!(C, beta)
635-
iszero(alpha) && return C
634+
_rmul_or_fill!(C, _add.beta)
635+
iszero(_add.alpha) && return C
636636
# beta is unused in _bibimul_nonzeroalpha!, so we set it to false
637-
@stable_muladdmul _bibimul_nonzeroalpha!(C, A, B, MulAddMul(alpha, false))
637+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
638+
_bibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
638639
C
639640
end
640641
function _bibimul_nonzeroalpha!(C, A, B, _add)
641-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
642-
__bibimul_nonzeroalpha!(C, A, B, _add_nonzeroalpha)
643-
end
644-
function __bibimul_nonzeroalpha!(C, A, B, _add)
645642
n = size(A,1)
646643
if n == 1
647644
# naive multiplication
@@ -669,7 +666,7 @@ function __bibimul_nonzeroalpha!(C, A, B, _add)
669666
end
670667
end # inbounds
671668
# middle columns
672-
__bibimul_bulk!(C, A, B, _add)
669+
__bibimul!(C, A, B, _add)
673670
@inbounds begin
674671
if n >= 4
675672
C[n-3,n-1] += _add(A[n-3,n-2]*B[n-2,n-1])
@@ -686,7 +683,7 @@ function __bibimul_nonzeroalpha!(C, A, B, _add)
686683
end # inbounds
687684
C
688685
end
689-
function __bibimul_bulk!(C, A, B, _add)
686+
function __bibimul!(C, A, B, _add)
690687
n = size(A,1)
691688
Al = _diag(A, -1)
692689
Ad = _diag(A, 0)
@@ -718,7 +715,7 @@ function __bibimul_bulk!(C, A, B, _add)
718715
end
719716
C
720717
end
721-
function __bibimul_bulk!(C, A, B::Bidiagonal, _add)
718+
function __bibimul!(C, A, B::Bidiagonal, _add)
722719
n = size(A,1)
723720
Al = _diag(A, -1)
724721
Ad = _diag(A, 0)
@@ -765,7 +762,7 @@ function __bibimul_bulk!(C, A, B::Bidiagonal, _add)
765762
end
766763
C
767764
end
768-
function __bibimul_bulk!(C, A::Bidiagonal, B, _add)
765+
function __bibimul!(C, A::Bidiagonal, B, _add)
769766
n = size(A,1)
770767
Bl = _diag(B, -1)
771768
Bd = _diag(B, 0)
@@ -814,7 +811,7 @@ function __bibimul_bulk!(C, A::Bidiagonal, B, _add)
814811
end
815812
C
816813
end
817-
function __bibimul_bulk!(C, A::Bidiagonal, B::Bidiagonal, _add)
814+
function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
818815
n = size(A,1)
819816
Ad = A.dv
820817
Bd = B.dv
@@ -890,20 +887,17 @@ function __bibimul_bulk!(C, A::Bidiagonal, B::Bidiagonal, _add)
890887
C
891888
end
892889

893-
function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, alpha::Number, beta::Number)
890+
function _mul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
894891
require_one_based_indexing(C)
895892
matmul_size_check(size(C), size(A), size(B))
896893
n = size(A,1)
897894
iszero(n) && return C
898-
_rmul_or_fill!(C, beta) # see the same use above
899-
iszero(alpha) && return C
895+
_rmul_or_fill!(C, _add.beta) # see the same use above
896+
iszero(_add.alpha) && return C
900897
# beta is unused in the _bidimul! call, so we set it to false
901-
@stable_muladdmul _mul_nonzeroalpha!(C, A, B, MulAddMul(alpha, false))
902-
C
903-
end
904-
function _mul_nonzeroalpha!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
905-
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add)
898+
_add_nonzeroalpha = _MulAddMul_nonzeroalpha(_add, Val(false))
906899
_bidimul!(C, A, B, _add_nonzeroalpha)
900+
C
907901
end
908902
function _bidimul!(C::AbstractMatrix, A::BiTriSym, B::Diagonal, _add::MulAddMul)
909903
n = size(A,1)

0 commit comments

Comments
 (0)