We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
getindex
SymTridiagonal
BandIndex
1 parent 91b8845 commit 8fdbfd5Copy full SHA for 8fdbfd5
src/tridiag.jl
@@ -474,6 +474,19 @@ end
474
end
475
476
477
+@inline function getindex(A::SymTridiagonal, b::BandIndex)
478
+ @boundscheck checkbounds(A, b)
479
+ if b.band == 0
480
+ return symmetric((@inbounds A.dv[b.index]), :U)::symmetric_type(eltype(A.dv))
481
+ elseif b.band == -1
482
+ return copy(transpose(@inbounds A.ev[b.index])) # materialized for type stability
483
+ elseif b.band == 1
484
+ return @inbounds A.ev[b.index]
485
+ else
486
+ return diagzero(A, b)
487
+ end
488
+end
489
+
490
Base._reverse(A::SymTridiagonal, dims) = reverse!(Matrix(A); dims)
491
Base._reverse(A::SymTridiagonal, dims::Colon) = SymTridiagonal(reverse(A.dv), reverse(A.ev))
492
Base._reverse!(A::SymTridiagonal, dims::Colon) = (reverse!(A.dv); reverse!(A.ev); A)
0 commit comments