@@ -395,6 +395,53 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
395395 @test x' A ≈ transpose (x)A ≈ x. A' A. A
396396 @test x' A' ≈ x' transpose (A) ≈ transpose (x)A' ≈ transpose (x)transpose (A) ≈ x. A' A. A'
397397 end
398+
399+ @testset " Zeros mul" begin
400+ A = MyMatrix (randn (5 ,5 ))
401+ @test A* Zeros (5 ) ≡ Zeros (5 )
402+ @test A* Zeros (5 ,2 ) ≡ Zeros (5 ,2 )
403+ @test Zeros (1 ,5 ) * A ≡ Zeros (1 ,5 )
404+ @test Zeros (5 )' * A ≡ Zeros (5 )'
405+ @test transpose (Zeros (5 )) * A ≡ transpose (Zeros (5 ))
406+
407+ @test Zeros (5 )' * A * (1 : 5 ) ==
408+ transpose (Zeros (5 )) * A * (1 : 5 ) ==
409+ (1 : 5 )' * A * Zeros (5 ) ==
410+ transpose (1 : 5 ) * A * Zeros (5 ) ==
411+ Zeros (5 )' * A * Zeros (5 ) ==
412+ transpose (Zeros (5 )) * A * Zeros (5 ) == 0.0
413+ end
414+
415+ @testset " triple *" begin
416+ D = Diagonal (1 : 5 )
417+ y = MyVector (randn (5 ))
418+ @test (1 : 5 )' * D * y ≈ transpose (1 : 5 ) * D * y ≈ (1 : 5 )' * D * y. A
419+ @test y' * D * y ≈ transpose (y) * D * y ≈ y. A' * D * y. A
420+ @test y' * D * (1 : 5 ) ≈ y. A' * D * (1 : 5 )
421+ @test y' * Diagonal (y) isa Adjoint
422+ @test transpose (y) * Diagonal (y) isa Transpose
423+
424+ @test y' * D isa Adjoint
425+ @test transpose (y) * D isa Transpose
426+
427+ @test Zeros (5 )' * D * y == transpose (Zeros (5 )) * D * y == 0.0
428+ @test y' * D * Zeros (5 ) == transpose (y) * D * Zeros (5 ) == 0.0
429+ @test Zeros (5 )' * Diagonal (y) ≡ Zeros (5 )'
430+ @test transpose (Zeros (5 )) * Diagonal (y) ≡ transpose (Zeros (5 ))
431+ @test Zeros (5 )' * Diagonal (y) * y == 0.0
432+ @test transpose (Zeros (5 )) * Diagonal (y) * y == 0.0
433+ @test y' * Diagonal (y) * Zeros (5 ) == 0.0
434+ @test transpose (y) * Diagonal (y) * Zeros (5 ) == 0.0
435+ @test Zeros (5 )' * Diagonal (y) * Zeros (5 ) == 0.0
436+ @test transpose (Zeros (5 )) * Diagonal (y) * Zeros (5 ) == 0.0
437+ end
438+
439+ @testset " rmul with lazy and Diagonal" begin
440+ D = Diagonal (1 : 5 )
441+ y = MyVector (randn (5 ))
442+ @test mul (view (y' , :, 1 : 5 ), D) isa Adjoint
443+ @test mul (view (transpose (y), :, 1 : 5 ), D) isa Transpose
444+ end
398445end
399446
400447struct MyUpperTriangular{T} <: AbstractMatrix{T}
0 commit comments