|
188 | 188 | function full(A::UnitUpperOrUnitLowerTriangular) |
189 | 189 | isupper = A isa UnitUpperTriangular |
190 | 190 | Ap = _triangularize(A)(parent(A), isupper ? 1 : -1) |
191 | | - Ap[diagind(Ap, IndexStyle(Ap))] = @view A[diagind(A, IndexStyle(A))] |
| 191 | + diagview(Ap) .= diagview(A) |
192 | 192 | return Ap |
193 | 193 | end |
194 | 194 |
|
@@ -400,20 +400,20 @@ function tril!(A::UnitUpperTriangular{T}, k::Integer=0) where {T} |
400 | 400 | return UpperTriangular(A.data) |
401 | 401 | elseif k == 0 |
402 | 402 | fill!(A.data, zero(T)) |
403 | | - for i in diagind(A) |
| 403 | + for i in diagind(A.data, IndexStyle(A.data)) |
404 | 404 | A.data[i] = oneunit(T) |
405 | 405 | end |
406 | 406 | return UpperTriangular(A.data) |
407 | 407 | else |
408 | | - for i in diagind(A) |
| 408 | + for i in diagind(A.data, IndexStyle(A.data)) |
409 | 409 | A.data[i] = oneunit(T) |
410 | 410 | end |
411 | 411 | return UpperTriangular(tril!(A.data,k)) |
412 | 412 | end |
413 | 413 | end |
414 | 414 |
|
415 | 415 | function triu!(A::UnitUpperTriangular, k::Integer=0) |
416 | | - for i in diagind(A.data) |
| 416 | + for i in diagind(A.data, IndexStyle(A.data)) |
417 | 417 | A.data[i] = oneunit(eltype(A)) |
418 | 418 | end |
419 | 419 | return triu!(UpperTriangular(A.data), k) |
@@ -448,20 +448,20 @@ function triu!(A::UnitLowerTriangular{T}, k::Integer=0) where T |
448 | 448 | return LowerTriangular(A.data) |
449 | 449 | elseif k == 0 |
450 | 450 | fill!(A.data, zero(T)) |
451 | | - for i in diagind(A) |
| 451 | + for i in diagind(A.data, IndexStyle(A.data)) |
452 | 452 | A.data[i] = oneunit(T) |
453 | 453 | end |
454 | 454 | return LowerTriangular(A.data) |
455 | 455 | else |
456 | | - for i in diagind(A) |
| 456 | + for i in diagind(A.data, IndexStyle(A.data)) |
457 | 457 | A.data[i] = oneunit(T) |
458 | 458 | end |
459 | 459 | return LowerTriangular(triu!(A.data, k)) |
460 | 460 | end |
461 | 461 | end |
462 | 462 |
|
463 | 463 | function tril!(A::UnitLowerTriangular, k::Integer=0) |
464 | | - for i in diagind(A.data) |
| 464 | + for i in diagind(A.data, IndexStyle(A.data)) |
465 | 465 | A.data[i] = oneunit(eltype(A)) |
466 | 466 | end |
467 | 467 | return tril!(LowerTriangular(A.data), k) |
@@ -2041,7 +2041,7 @@ function _find_params_log_quasitriu!(A) |
2041 | 2041 |
|
2042 | 2042 | # Find s0, the smallest s such that the ρ(triu(A)^(1/2^s) - I) ≤ theta[tmax], where ρ(X) |
2043 | 2043 | # is the spectral radius of X |
2044 | | - d = complex.(@view(A[diagind(A)])) |
| 2044 | + d = complex.(diagview(A)) |
2045 | 2045 | dm1 = d .- 1 |
2046 | 2046 | s = 0 |
2047 | 2047 | while norm(dm1, Inf) > theta[tmax] && s < maxsqrt |
|
0 commit comments