Skip to content

Commit cc5c8a6

Browse files
committed
Tests for complex alpha/beta
1 parent 9129696 commit cc5c8a6

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/symmetric.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -732,11 +732,11 @@ for (AdjTransT, SymHermT) in (
732732

733733
@eval begin
734734
function mul!(C::$AdjTransT, A::$SymHermT, B::$AdjTransT, α::Union{Real,Complex}, β::Union{Real,Complex})
735-
mul!(wrapperop(C)(C), wrapperop(B)(B), A, α, β)
735+
mul!(wrapperop(C)(C), wrapperop(B)(B), A, wrapperop(C)(α), wrapperop(C)(β))
736736
return C
737737
end
738738
function mul!(C::$AdjTransT, A::$AdjTransT, B::$SymHermT, α::Union{Real,Complex}, β::Union{Real,Complex})
739-
mul!(wrapperop(C)(C), B, wrapperop(A)(A), α, β)
739+
mul!(wrapperop(C)(C), B, wrapperop(A)(A), wrapperop(C)(α), wrapperop(C)(β))
740740
return C
741741
end
742742
end

test/symmetric.jl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ end
876876
end
877877
end
878878

879-
@testset "Multiplications symmetric/hermitian for $T and $S for size $n" for T in
879+
@testset "Multiplications symmetric/hermitian for T=$T and S=$S for size n=$n" for T in
880880
(Float16, Float32, Float64, BigFloat, Quaternion{Float64}),
881881
S in (T <: Quaternion ? (Quaternion{Float64},) : (ComplexF16, ComplexF32, ComplexF64, Quaternion{Float64})),
882882
n in (2, 3, 4)
@@ -899,6 +899,12 @@ end
899899
@test mul!(adjoint(copy(C)), adjoint(Bm), A, 2, 3) adjoint(Bm) * A * 2 + adjoint(C) * 3
900900
@test mul!(transpose(copy(C)), A, transpose(Bm), 2, 3) A * transpose(Bm) * 2 + transpose(C) * 3
901901
@test mul!(transpose(copy(C)), transpose(Bm), A, 2, 3) transpose(Bm) * A * 2 + transpose(C) * 3
902+
if eltype(C) <: Complex
903+
@test mul!(adjoint(copy(C)), A, adjoint(Bm), 4+2im, 3+im) A * adjoint(Bm) * (4+2im) + adjoint(C) * (3+im)
904+
@test mul!(adjoint(copy(C)), adjoint(Bm), A, 4+2im, 3+im) adjoint(Bm) * A * (4+2im) + adjoint(C) * (3+im)
905+
@test mul!(transpose(copy(C)), A, transpose(Bm), 4+2im, 3+im) A * transpose(Bm) * (4+2im) + transpose(C) * (3+im)
906+
@test mul!(transpose(copy(C)), transpose(Bm), A, 4+2im, 3+im) transpose(Bm) * A * (4+2im) + transpose(C) * (3+im)
907+
end
902908
end
903909
let A = adjoint(Hermitian(rand(S, n,n))), Bv = Vector(rand(T, n)), Bm = Matrix(rand(T, n,n))
904910
@test A * Bv Matrix(A) * Bv
@@ -919,6 +925,12 @@ end
919925
@test mul!(adjoint(copy(C)), adjoint(Bm), A, 2, 3) adjoint(Bm) * A * 2 + adjoint(C) * 3
920926
@test mul!(transpose(copy(C)), A, transpose(Bm), 2, 3) A * transpose(Bm) * 2 + transpose(C) * 3
921927
@test mul!(transpose(copy(C)), transpose(Bm), A, 2, 3) transpose(Bm) * A * 2 + transpose(C) * 3
928+
if eltype(C) <: Complex
929+
@test mul!(adjoint(copy(C)), A, adjoint(Bm), 4+2im, 3+im) A * adjoint(Bm) * (4+2im) + adjoint(C) * (3+im)
930+
@test mul!(adjoint(copy(C)), adjoint(Bm), A, 4+2im, 3+im) adjoint(Bm) * A * (4+2im) + adjoint(C) * (3+im)
931+
@test mul!(transpose(copy(C)), A, transpose(Bm), 4+2im, 3+im) A * transpose(Bm) * (4+2im) + transpose(C) * (3+im)
932+
@test mul!(transpose(copy(C)), transpose(Bm), A, 4+2im, 3+im) transpose(Bm) * A * (4+2im) + transpose(C) * (3+im)
933+
end
922934
end
923935
let Ahrs = transpose(Hermitian(Symmetric(rand(T, n, n)))),
924936
Acs = transpose(Symmetric(rand(S, n, n))),

0 commit comments

Comments
 (0)