Skip to content

Commit 93a596e

Browse files
jishnubKristofferC
authored andcommitted
Fix variable name in scaling an AbstractTriangular with zero alpha (#52855)
There is no `C` defined in these methods, so this branch used to error. (cherry picked from commit c5d7b87)
1 parent e1af4a9 commit 93a596e

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

stdlib/LinearAlgebra/src/triangular.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ end
471471

472472
function _triscale!(A::UpperTriangular, B::UpperTriangular, c::Number, _add)
473473
n = checksquare(B)
474-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
474+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
475475
for j = 1:n
476476
for i = 1:j
477477
@inbounds _modify!(_add, B.data[i,j] * c, A.data, (i,j))
@@ -481,8 +481,8 @@ function _triscale!(A::UpperTriangular, B::UpperTriangular, c::Number, _add)
481481
end
482482
function _triscale!(A::UpperTriangular, c::Number, B::UpperTriangular, _add)
483483
n = checksquare(B)
484-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
485-
for j = 1:n
484+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
485+
for j = 1:n
486486
for i = 1:j
487487
@inbounds _modify!(_add, c * B.data[i,j], A.data, (i,j))
488488
end
@@ -491,7 +491,7 @@ function _triscale!(A::UpperTriangular, c::Number, B::UpperTriangular, _add)
491491
end
492492
function _triscale!(A::UpperOrUnitUpperTriangular, B::UnitUpperTriangular, c::Number, _add)
493493
n = checksquare(B)
494-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
494+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
495495
for j = 1:n
496496
@inbounds _modify!(_add, c, A, (j,j))
497497
for i = 1:(j - 1)
@@ -502,7 +502,7 @@ function _triscale!(A::UpperOrUnitUpperTriangular, B::UnitUpperTriangular, c::Nu
502502
end
503503
function _triscale!(A::UpperOrUnitUpperTriangular, c::Number, B::UnitUpperTriangular, _add)
504504
n = checksquare(B)
505-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
505+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
506506
for j = 1:n
507507
@inbounds _modify!(_add, c, A, (j,j))
508508
for i = 1:(j - 1)
@@ -513,7 +513,7 @@ function _triscale!(A::UpperOrUnitUpperTriangular, c::Number, B::UnitUpperTriang
513513
end
514514
function _triscale!(A::LowerTriangular, B::LowerTriangular, c::Number, _add)
515515
n = checksquare(B)
516-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
516+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
517517
for j = 1:n
518518
for i = j:n
519519
@inbounds _modify!(_add, B.data[i,j] * c, A.data, (i,j))
@@ -523,8 +523,8 @@ function _triscale!(A::LowerTriangular, B::LowerTriangular, c::Number, _add)
523523
end
524524
function _triscale!(A::LowerTriangular, c::Number, B::LowerTriangular, _add)
525525
n = checksquare(B)
526-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
527-
for j = 1:n
526+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
527+
for j = 1:n
528528
for i = j:n
529529
@inbounds _modify!(_add, c * B.data[i,j], A.data, (i,j))
530530
end
@@ -533,7 +533,7 @@ function _triscale!(A::LowerTriangular, c::Number, B::LowerTriangular, _add)
533533
end
534534
function _triscale!(A::LowerOrUnitLowerTriangular, B::UnitLowerTriangular, c::Number, _add)
535535
n = checksquare(B)
536-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
536+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
537537
for j = 1:n
538538
@inbounds _modify!(_add, c, A, (j,j))
539539
for i = (j + 1):n
@@ -544,7 +544,7 @@ function _triscale!(A::LowerOrUnitLowerTriangular, B::UnitLowerTriangular, c::Nu
544544
end
545545
function _triscale!(A::LowerOrUnitLowerTriangular, c::Number, B::UnitLowerTriangular, _add)
546546
n = checksquare(B)
547-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
547+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
548548
for j = 1:n
549549
@inbounds _modify!(_add, c, A, (j,j))
550550
for i = (j + 1):n

stdlib/LinearAlgebra/test/triangular.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ for elty1 in (Float32, Float64, BigFloat, ComplexF32, ComplexF64, Complex{BigFlo
239239
A2tmp = unitt(A1)
240240
mul!(A1tmp, cr, A2tmp)
241241
@test A1tmp == cr * A2tmp
242+
243+
A1tmp .= A1
244+
@test mul!(A1tmp, A2tmp, cr, 0, 2) == 2A1
245+
A1tmp .= A1
246+
@test mul!(A1tmp, cr, A2tmp, 0, 2) == 2A1
242247
else
243248
A1tmp = copy(A1)
244249
rmul!(A1tmp, ci)

0 commit comments

Comments
 (0)