|
517 | 517 | @test Hermitian(A, :U)[1,1] == Hermitian(A, :L)[1,1] == real(A[1,1]) |
518 | 518 | end |
519 | 519 |
|
| 520 | +@testset "issue #29392: SymOrHerm scaled with Number" begin |
| 521 | + R = rand(Float64, 2, 2); C = rand(ComplexF64, 2, 2) |
| 522 | + # Symmetric * Real, Real * Symmetric |
| 523 | + A = Symmetric(R); x = 2.0 |
| 524 | + @test (A * x)::Symmetric == (x * A)::Symmetric |
| 525 | + A = Symmetric(C); x = 2.0 |
| 526 | + @test (A * x)::Symmetric == (x * A)::Symmetric |
| 527 | + # Symmetric * Complex, Complex * Symmetrics |
| 528 | + A = Symmetric(R); x = 2.0im |
| 529 | + @test (A * x)::Symmetric == (x * A)::Symmetric |
| 530 | + A = Symmetric(C); x = 2.0im |
| 531 | + @test (A * x)::Symmetric == (x * A)::Symmetric |
| 532 | + # Hermitian * Real, Real * Hermitian |
| 533 | + A = Hermitian(R); x = 2.0 |
| 534 | + @test (A * x)::Hermitian == (x * A)::Hermitian |
| 535 | + A = Hermitian(C); x = 2.0 |
| 536 | + @test (A * x)::Hermitian == (x * A)::Hermitian |
| 537 | + # Hermitian * Complex, Complex * Hermitian |
| 538 | + A = Hermitian(R); x = 2.0im |
| 539 | + @test (A * x)::Matrix == (x * A)::Matrix |
| 540 | + A = Hermitian(C); x = 2.0im |
| 541 | + @test (A * x)::Matrix == (x * A)::Matrix |
| 542 | + # Symmetric / Real |
| 543 | + A = Symmetric(R); x = 2.0 |
| 544 | + @test (A / x)::Symmetric == Matrix(A) / x |
| 545 | + A = Symmetric(C); x = 2.0 |
| 546 | + @test (A / x)::Symmetric == Matrix(A) / x |
| 547 | + # Symmetric / Complex |
| 548 | + A = Symmetric(R); x = 2.0im |
| 549 | + @test (A / x)::Symmetric == Matrix(A) / x |
| 550 | + A = Symmetric(C); x = 2.0im |
| 551 | + @test (A / x)::Symmetric == Matrix(A) / x |
| 552 | + # Hermitian / Real |
| 553 | + A = Hermitian(R); x = 2.0 |
| 554 | + @test (A / x)::Hermitian == Matrix(A) / x |
| 555 | + A = Hermitian(C); x = 2.0 |
| 556 | + @test (A / x)::Hermitian == Matrix(A) / x |
| 557 | + # Hermitian / Complex |
| 558 | + A = Hermitian(R); x = 2.0im |
| 559 | + @test (A / x)::Matrix == Matrix(A) / x |
| 560 | + A = Hermitian(C); x = 2.0im |
| 561 | + @test (A / x)::Matrix == Matrix(A) / x |
| 562 | +end |
| 563 | + |
520 | 564 | end # module TestSymmetric |
0 commit comments