1
+ using LinearMaps, LinearAlgebra, Test
2
+
3
+ @testset " filled maps" begin
4
+ M, N = 2 , 3
5
+ α = rand ()
6
+ β = rand ()
7
+ μ = rand ()
8
+ for λ in (true , false , 3 , μ, μ + 2im )
9
+ L = LinearMap (λ, (M, N))
10
+ A = fill (λ, (M, N))
11
+ x = rand (typeof (λ) <: Real ? Float64 : ComplexF64, 3 )
12
+ X = rand (typeof (λ) <: Real ? Float64 : ComplexF64, 3 , 3 )
13
+ w = similar (x, 2 )
14
+ W = similar (X, 2 , 3 )
15
+ @test size (L) == (M, N)
16
+ @test adjoint (L) == LinearMap (adjoint (λ), (3 ,2 ))
17
+ @test transpose (L) == LinearMap (λ, (3 ,2 ))
18
+ @test Matrix (L) == A
19
+ @test L * x ≈ A * x
20
+ @test mul! (w, L, x) ≈ A * x
21
+ @test mul! (W, L, X) ≈ A * X
22
+ @test mul! (copy (w), L, x, α, β) ≈ A * x * α + w * β
23
+ @test mul! (copy (W), L, X, α, β) ≈ A * X * α + W * β
24
+ end
25
+ @test issymmetric (LinearMap (μ + 0im , (3 , 3 )))
26
+ @test LinearMap (μ, (M, N)) + LinearMap (α, (M, N)) == LinearMap (μ + α, (M, N))
27
+ @test LinearMap (μ, (M, N)) - LinearMap (α, (M, N)) == LinearMap (μ - α, (M, N))
28
+ @test α* LinearMap (μ, (M, N)) == LinearMap (α * μ, (M, N))
29
+ @test LinearMap (μ, (M, N))* α == LinearMap (μ * α, (M, N))
30
+ end
0 commit comments