|
510 | 510 | @boundscheck checkdimensions(size(A), size(v))
|
511 | 511 | @boundscheck checkbandmatch(A, v, kr, jr)
|
512 | 512 |
|
513 |
| - for j=1:size(A,2), k=colrange(A,j) |
| 513 | + for j=rowsupport(A), k=colrange(A,j) |
514 | 514 | @inbounds A[k,j] = v[k,j]
|
515 | 515 | end
|
516 | 516 | A
|
@@ -728,36 +728,13 @@ svdvals(A::BandedMatrix) = svdvals!(copy(A))
|
728 | 728 |
|
729 | 729 | ## ALgebra and other functions
|
730 | 730 |
|
731 |
| -function fill!(A::BandedMatrix{T}, x) where T |
732 |
| - x == zero(T) || throw(BandError(A)) |
| 731 | +function fill!(A::BandedMatrix, x) |
| 732 | + iszero(x) || throw(BandError(A)) |
733 | 733 | fill!(A.data, x)
|
734 | 734 | A
|
735 | 735 | end
|
736 | 736 |
|
737 |
| -function diag(A::BandedMatrix{T}, k::Integer = 0) where {T} |
738 |
| - n = LinearAlgebra.checksquare(A) - abs(k) |
739 |
| - |
740 |
| - if -A.l <= k <= A.u |
741 |
| - convert(Vector{T}, vec(A.data[A.u-k+1,range(max(k, 0) + begin, length=n)])) |
742 |
| - else |
743 |
| - zeros(T, max(n, 0)) |
744 |
| - end |
745 |
| -end |
746 |
| - |
747 |
| - |
748 |
| - |
749 |
| -#implements fliplr(flipud(A)) |
750 |
| -function fliplrud(A::BandedMatrix) |
751 |
| - n,m=size(A) |
752 |
| - l=A.u+n-m |
753 |
| - u=A.l+m-n |
754 |
| - ret=BandedMatrix(eltype(A),n,m,l,u) |
755 |
| - for j = 1:size(ret,2), k = colrange(ret,j) |
756 |
| - @inbounds ret[k,j] = A[n-k+1,m-j+1] |
757 |
| - end |
758 |
| - ret |
759 |
| -end |
760 |
| - |
| 737 | +diag(A::BandedMatrix, k::Integer = 0) = A[band(k)] |
761 | 738 |
|
762 | 739 | for OP in (:real, :imag)
|
763 | 740 | @eval $OP(A::BandedMatrix) = _BandedMatrix($OP(A.data),A.raxis,A.l,A.u)
|
|
0 commit comments