From ccfdee9a93c4edfa0598b08e9bbcaef0fa9e1bce Mon Sep 17 00:00:00 2001 From: araujoms Date: Tue, 22 Apr 2025 12:56:26 +0200 Subject: [PATCH 1/3] =?UTF-8?q?fix=20herk=20with=20complex=20=CE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/matmul.jl | 2 +- test/matmul.jl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/matmul.jl b/src/matmul.jl index ae6afd42..cf229364 100644 --- a/src/matmul.jl +++ b/src/matmul.jl @@ -820,7 +820,7 @@ Base.@constprop :aggressive function herk_wrapper!(C::StridedMatrix{TC}, tA::Abs end # BLAS.herk! only updates hermitian C, alpha and beta need to be real - if iszero(β) || ishermitian(C) + if isreal(α) && isreal(β) && (iszero(β) || ishermitian(C)) alpha, beta = promote(α, β, zero(T)) if (alpha isa T && beta isa T && stride(A, 1) == stride(C, 1) == 1 && diff --git a/test/matmul.jl b/test/matmul.jl index 1a32b2aa..3fc6ea1f 100644 --- a/test/matmul.jl +++ b/test/matmul.jl @@ -549,6 +549,10 @@ end @test mul!(copy(C), A', A, true, 2) ≈ 3C D = Matrix(Hermitian(A * A')) @test mul!(copy(D), A, A', true, 3) ≈ 4D + if T <: Complex + @test mul!(copy(C), A', A, im, 2) ≈ 2C + im*C + @test mul!(copy(D), A, A', im, 3) ≈ 3D + im*D + end end end From 07450a1227ddae89d09dd413ed50faba34f6b3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Ara=C3=BAjo?= Date: Tue, 22 Apr 2025 14:16:00 +0200 Subject: [PATCH 2/3] Update test/matmul.jl Co-authored-by: Jishnu Bhattacharya --- test/matmul.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/matmul.jl b/test/matmul.jl index 3fc6ea1f..960ff88d 100644 --- a/test/matmul.jl +++ b/test/matmul.jl @@ -550,7 +550,7 @@ end D = Matrix(Hermitian(A * A')) @test mul!(copy(D), A, A', true, 3) ≈ 4D if T <: Complex - @test mul!(copy(C), A', A, im, 2) ≈ 2C + im*C + @test mul!(2C, A', A, im, 2) ≈ (4 + im) * C @test mul!(copy(D), A, A', im, 3) ≈ 3D + im*D end end From a3ed1787de34d42132db43b5c31ecf42edd6b817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateus=20Ara=C3=BAjo?= Date: Tue, 22 Apr 2025 14:16:12 +0200 Subject: [PATCH 3/3] Update test/matmul.jl Co-authored-by: Jishnu Bhattacharya --- test/matmul.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/matmul.jl b/test/matmul.jl index 960ff88d..bcb2857e 100644 --- a/test/matmul.jl +++ b/test/matmul.jl @@ -551,7 +551,7 @@ end @test mul!(copy(D), A, A', true, 3) ≈ 4D if T <: Complex @test mul!(2C, A', A, im, 2) ≈ (4 + im) * C - @test mul!(copy(D), A, A', im, 3) ≈ 3D + im*D + @test mul!(2D, A, A', im, 3) ≈ (6 + im) * D end end end