Skip to content

Commit 8765523

Browse files
committed
Hardcode bands in __bibimul! instead of calling _diag
1 parent fb9ebf0 commit 8765523

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
@@ -711,9 +711,9 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
711711
Al = _diag(A, -1)
712712
Ad = _diag(A, 0)
713713
Au = _diag(A, 1)
714-
Bd = _diag(B, 0)
714+
Bd = B.dv
715715
if B.uplo == 'U'
716-
Bu = _diag(B, 1)
716+
Bu = B.ev
717717
@inbounds begin
718718
for j in 3:n-2
719719
Aj₋2j₋1 = Au[j-2]
@@ -732,7 +732,7 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
732732
end
733733
end
734734
else # B.uplo == 'L'
735-
Bl = _diag(B, -1)
735+
Bl = B.ev
736736
@inbounds begin
737737
for j in 3:n-2
738738
Aj₋1j = Au[j-1]
@@ -758,9 +758,9 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
758758
Bl = _diag(B, -1)
759759
Bd = _diag(B, 0)
760760
Bu = _diag(B, 1)
761-
Ad = _diag(A, 0)
761+
Ad = A.dv
762762
if A.uplo == 'U'
763-
Au = _diag(A, 1)
763+
Au = A.ev
764764
@inbounds begin
765765
for j in 3:n-2
766766
Aj₋2j₋1 = Au[j-2]
@@ -780,7 +780,7 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
780780
end
781781
end
782782
else # A.uplo == 'L'
783-
Al = _diag(A, -1)
783+
Al = A.ev
784784
@inbounds begin
785785
for j in 3:n-2
786786
Aj₋1j₋1 = Ad[j-1]
@@ -804,11 +804,11 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
804804
end
805805
function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
806806
n = size(A,1)
807-
Ad = _diag(A, 0)
808-
Bd = _diag(B, 0)
807+
Ad = A.dv
808+
Bd = B.dv
809809
if A.uplo == 'U' && B.uplo == 'U'
810-
Au = _diag(A, 1)
811-
Bu = _diag(B, 1)
810+
Au = A.ev
811+
Bu = B.ev
812812
@inbounds begin
813813
for j in 3:n-2
814814
Aj₋2j₋1 = Au[j-2]
@@ -824,8 +824,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
824824
end
825825
end
826826
elseif A.uplo == 'U' && B.uplo == 'L'
827-
Au = _diag(A, 1)
828-
Bl = _diag(B, -1)
827+
Au = A.ev
828+
Bl = B.ev
829829
@inbounds begin
830830
for j in 3:n-2
831831
Aj₋1j = Au[j-1]
@@ -841,8 +841,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
841841
end
842842
end
843843
elseif A.uplo == 'L' && B.uplo == 'U'
844-
Al = _diag(A, -1)
845-
Bu = _diag(B, 1)
844+
Al = A.ev
845+
Bu = B.ev
846846
@inbounds begin
847847
for j in 3:n-2
848848
Aj₋1j₋1 = Ad[j-1]
@@ -858,8 +858,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
858858
end
859859
end
860860
else # A.uplo == 'L' && B.uplo == 'L'
861-
Al = _diag(A, -1)
862-
Bl = _diag(B, -1)
861+
Al = A.ev
862+
Bl = B.ev
863863
@inbounds begin
864864
for j in 3:n-2
865865
Ajj = Ad[j]

0 commit comments

Comments
 (0)