Skip to content

Commit c5d7b87

Browse files
authored
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.
1 parent 73cdfd8 commit c5d7b87

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

stdlib/LinearAlgebra/src/triangular.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ end
545545

546546
function _triscale!(A::UpperTriangular, B::UpperTriangular, c::Number, _add)
547547
n = checksize1(A, B)
548-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
548+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
549549
for j = 1:n
550550
for i = 1:j
551551
@inbounds _modify!(_add, B.data[i,j] * c, A.data, (i,j))
@@ -555,7 +555,7 @@ function _triscale!(A::UpperTriangular, B::UpperTriangular, c::Number, _add)
555555
end
556556
function _triscale!(A::UpperTriangular, c::Number, B::UpperTriangular, _add)
557557
n = checksize1(A, B)
558-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
558+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
559559
for j = 1:n
560560
for i = 1:j
561561
@inbounds _modify!(_add, c * B.data[i,j], A.data, (i,j))
@@ -565,7 +565,7 @@ function _triscale!(A::UpperTriangular, c::Number, B::UpperTriangular, _add)
565565
end
566566
function _triscale!(A::UpperOrUnitUpperTriangular, B::UnitUpperTriangular, c::Number, _add)
567567
n = checksize1(A, B)
568-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
568+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
569569
for j = 1:n
570570
@inbounds _modify!(_add, c, A, (j,j))
571571
for i = 1:(j - 1)
@@ -576,7 +576,7 @@ function _triscale!(A::UpperOrUnitUpperTriangular, B::UnitUpperTriangular, c::Nu
576576
end
577577
function _triscale!(A::UpperOrUnitUpperTriangular, c::Number, B::UnitUpperTriangular, _add)
578578
n = checksize1(A, B)
579-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
579+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
580580
for j = 1:n
581581
@inbounds _modify!(_add, c, A, (j,j))
582582
for i = 1:(j - 1)
@@ -587,7 +587,7 @@ function _triscale!(A::UpperOrUnitUpperTriangular, c::Number, B::UnitUpperTriang
587587
end
588588
function _triscale!(A::LowerTriangular, B::LowerTriangular, c::Number, _add)
589589
n = checksize1(A, B)
590-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
590+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
591591
for j = 1:n
592592
for i = j:n
593593
@inbounds _modify!(_add, B.data[i,j] * c, A.data, (i,j))
@@ -597,7 +597,7 @@ function _triscale!(A::LowerTriangular, B::LowerTriangular, c::Number, _add)
597597
end
598598
function _triscale!(A::LowerTriangular, c::Number, B::LowerTriangular, _add)
599599
n = checksize1(A, B)
600-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
600+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
601601
for j = 1:n
602602
for i = j:n
603603
@inbounds _modify!(_add, c * B.data[i,j], A.data, (i,j))
@@ -607,7 +607,7 @@ function _triscale!(A::LowerTriangular, c::Number, B::LowerTriangular, _add)
607607
end
608608
function _triscale!(A::LowerOrUnitLowerTriangular, B::UnitLowerTriangular, c::Number, _add)
609609
n = checksize1(A, B)
610-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
610+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
611611
for j = 1:n
612612
@inbounds _modify!(_add, c, A, (j,j))
613613
for i = (j + 1):n
@@ -618,7 +618,7 @@ function _triscale!(A::LowerOrUnitLowerTriangular, B::UnitLowerTriangular, c::Nu
618618
end
619619
function _triscale!(A::LowerOrUnitLowerTriangular, c::Number, B::UnitLowerTriangular, _add)
620620
n = checksize1(A, B)
621-
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
621+
iszero(_add.alpha) && return _rmul_or_fill!(A, _add.beta)
622622
for j = 1:n
623623
@inbounds _modify!(_add, c, A, (j,j))
624624
for i = (j + 1):n

stdlib/LinearAlgebra/test/triangular.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,11 @@ for elty1 in (Float32, Float64, BigFloat, ComplexF32, ComplexF64, Complex{BigFlo
252252
A2tmp = unitt(A1)
253253
mul!(A1tmp, cr, A2tmp)
254254
@test A1tmp == cr * A2tmp
255+
256+
A1tmp .= A1
257+
@test mul!(A1tmp, A2tmp, cr, 0, 2) == 2A1
258+
A1tmp .= A1
259+
@test mul!(A1tmp, cr, A2tmp, 0, 2) == 2A1
255260
else
256261
A1tmp = copy(A1)
257262
rmul!(A1tmp, ci)

0 commit comments

Comments
 (0)