Skip to content

Commit 881a86f

Browse files
committed
Hardcode bands in __bibimul! instead of calling _diag
1 parent 97324df commit 881a86f

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/bidiag.jl

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -709,9 +709,9 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
709709
Al = _diag(A, -1)
710710
Ad = _diag(A, 0)
711711
Au = _diag(A, 1)
712-
Bd = _diag(B, 0)
712+
Bd = B.dv
713713
if B.uplo == 'U'
714-
Bu = _diag(B, 1)
714+
Bu = B.ev
715715
@inbounds begin
716716
for j in 3:n-2
717717
Aj₋2j₋1 = Au[j-2]
@@ -730,7 +730,7 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
730730
end
731731
end
732732
else # B.uplo == 'L'
733-
Bl = _diag(B, -1)
733+
Bl = B.ev
734734
@inbounds begin
735735
for j in 3:n-2
736736
Aj₋1j = Au[j-1]
@@ -756,9 +756,9 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
756756
Bl = _diag(B, -1)
757757
Bd = _diag(B, 0)
758758
Bu = _diag(B, 1)
759-
Ad = _diag(A, 0)
759+
Ad = A.dv
760760
if A.uplo == 'U'
761-
Au = _diag(A, 1)
761+
Au = A.ev
762762
@inbounds begin
763763
for j in 3:n-2
764764
Aj₋2j₋1 = Au[j-2]
@@ -778,7 +778,7 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
778778
end
779779
end
780780
else # A.uplo == 'L'
781-
Al = _diag(A, -1)
781+
Al = A.ev
782782
@inbounds begin
783783
for j in 3:n-2
784784
Aj₋1j₋1 = Ad[j-1]
@@ -802,11 +802,11 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
802802
end
803803
function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
804804
n = size(A,1)
805-
Ad = _diag(A, 0)
806-
Bd = _diag(B, 0)
805+
Ad = A.dv
806+
Bd = B.dv
807807
if A.uplo == 'U' && B.uplo == 'U'
808-
Au = _diag(A, 1)
809-
Bu = _diag(B, 1)
808+
Au = A.ev
809+
Bu = B.ev
810810
@inbounds begin
811811
for j in 3:n-2
812812
Aj₋2j₋1 = Au[j-2]
@@ -822,8 +822,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
822822
end
823823
end
824824
elseif A.uplo == 'U' && B.uplo == 'L'
825-
Au = _diag(A, 1)
826-
Bl = _diag(B, -1)
825+
Au = A.ev
826+
Bl = B.ev
827827
@inbounds begin
828828
for j in 3:n-2
829829
Aj₋1j = Au[j-1]
@@ -839,8 +839,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
839839
end
840840
end
841841
elseif A.uplo == 'L' && B.uplo == 'U'
842-
Al = _diag(A, -1)
843-
Bu = _diag(B, 1)
842+
Al = A.ev
843+
Bu = B.ev
844844
@inbounds begin
845845
for j in 3:n-2
846846
Aj₋1j₋1 = Ad[j-1]
@@ -856,8 +856,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
856856
end
857857
end
858858
else # A.uplo == 'L' && B.uplo == 'L'
859-
Al = _diag(A, -1)
860-
Bl = _diag(B, -1)
859+
Al = A.ev
860+
Bl = B.ev
861861
@inbounds begin
862862
for j in 3:n-2
863863
Ajj = Ad[j]

0 commit comments

Comments
 (0)