Skip to content

Commit df7fef1

Browse files
committed
Hardcode bands in __bibimul! instead of calling _diag
1 parent cf8d67a commit df7fef1

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
@@ -698,9 +698,9 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
698698
Al = _diag(A, -1)
699699
Ad = _diag(A, 0)
700700
Au = _diag(A, 1)
701-
Bd = _diag(B, 0)
701+
Bd = B.dv
702702
if B.uplo == 'U'
703-
Bu = _diag(B, 1)
703+
Bu = B.ev
704704
@inbounds begin
705705
for j in 3:n-2
706706
Aj₋2j₋1 = Au[j-2]
@@ -719,7 +719,7 @@ function __bibimul!(C, A, B::Bidiagonal, _add)
719719
end
720720
end
721721
else # B.uplo == 'L'
722-
Bl = _diag(B, -1)
722+
Bl = B.ev
723723
@inbounds begin
724724
for j in 3:n-2
725725
Aj₋1j = Au[j-1]
@@ -745,9 +745,9 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
745745
Bl = _diag(B, -1)
746746
Bd = _diag(B, 0)
747747
Bu = _diag(B, 1)
748-
Ad = _diag(A, 0)
748+
Ad = A.dv
749749
if A.uplo == 'U'
750-
Au = _diag(A, 1)
750+
Au = A.ev
751751
@inbounds begin
752752
for j in 3:n-2
753753
Aj₋2j₋1 = Au[j-2]
@@ -767,7 +767,7 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
767767
end
768768
end
769769
else # A.uplo == 'L'
770-
Al = _diag(A, -1)
770+
Al = A.ev
771771
@inbounds begin
772772
for j in 3:n-2
773773
Aj₋1j₋1 = Ad[j-1]
@@ -791,11 +791,11 @@ function __bibimul!(C, A::Bidiagonal, B, _add)
791791
end
792792
function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
793793
n = size(A,1)
794-
Ad = _diag(A, 0)
795-
Bd = _diag(B, 0)
794+
Ad = A.dv
795+
Bd = B.dv
796796
if A.uplo == 'U' && B.uplo == 'U'
797-
Au = _diag(A, 1)
798-
Bu = _diag(B, 1)
797+
Au = A.ev
798+
Bu = B.ev
799799
@inbounds begin
800800
for j in 3:n-2
801801
Aj₋2j₋1 = Au[j-2]
@@ -811,8 +811,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
811811
end
812812
end
813813
elseif A.uplo == 'U' && B.uplo == 'L'
814-
Au = _diag(A, 1)
815-
Bl = _diag(B, -1)
814+
Au = A.ev
815+
Bl = B.ev
816816
@inbounds begin
817817
for j in 3:n-2
818818
Aj₋1j = Au[j-1]
@@ -828,8 +828,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
828828
end
829829
end
830830
elseif A.uplo == 'L' && B.uplo == 'U'
831-
Al = _diag(A, -1)
832-
Bu = _diag(B, 1)
831+
Al = A.ev
832+
Bu = B.ev
833833
@inbounds begin
834834
for j in 3:n-2
835835
Aj₋1j₋1 = Ad[j-1]
@@ -845,8 +845,8 @@ function __bibimul!(C, A::Bidiagonal, B::Bidiagonal, _add)
845845
end
846846
end
847847
else # A.uplo == 'L' && B.uplo == 'L'
848-
Al = _diag(A, -1)
849-
Bl = _diag(B, -1)
848+
Al = A.ev
849+
Bl = B.ev
850850
@inbounds begin
851851
for j in 3:n-2
852852
Ajj = Ad[j]

0 commit comments

Comments
 (0)