@@ -22,6 +22,7 @@ struct MyVector{T} <: LayoutVector{T}
22
22
A:: Vector{T}
23
23
end
24
24
25
+ MyVector (M:: MyVector ) = MyVector (M. A)
25
26
Base. getindex (A:: MyVector , k:: Int ) = A. A[k]
26
27
Base. setindex! (A:: MyVector , v, k:: Int ) = setindex! (A. A, v, k)
27
28
Base. size (A:: MyVector ) = size (A. A)
@@ -30,6 +31,7 @@ Base.elsize(::Type{MyVector}) = sizeof(Float64)
30
31
Base. cconvert (:: Type{Ptr{T}} , A:: MyVector{T} ) where {T} = A. A
31
32
Base. unsafe_convert (:: Type{Ptr{T}} , A:: MyVector{T} ) where T = Base. unsafe_convert (Ptr{T}, A. A)
32
33
MemoryLayout (:: Type{MyVector} ) = DenseColumnMajor ()
34
+ Base. copy (A:: MyVector ) = MyVector (copy (A. A))
33
35
34
36
# These need to test dispatch reduces to ArrayLayouts.mul, etc.
35
37
@testset " LayoutArray" begin
@@ -151,7 +153,7 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
151
153
@test_throws MethodError ldiv! (qr (A), MyVector (copy (c)))
152
154
end
153
155
@test_throws ErrorException ldiv! (eigen (randn (5 ,5 )), c)
154
- @test ArrayLayouts. ldiv! (svd (A. A), copy (c)) ≈ ArrayLayouts. ldiv! (similar (c), svd (A. A), c) ≈ A \ c
156
+ @test ArrayLayouts. ldiv! (svd (A. A), Vector (c)) ≈ ArrayLayouts. ldiv! (similar (c), svd (A. A), c) ≈ A \ c
155
157
if VERSION ≥ v " 1.8"
156
158
@test ArrayLayouts. ldiv! (similar (c), transpose (lu (A. A)), copy (c)) ≈ A' \ c
157
159
end
@@ -344,8 +346,10 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
344
346
S = SymTridiagonal (map (MyVector, (rand (n), rand (n- 1 )))... )
345
347
T = Tridiagonal (map (MyVector, (rand (n- 1 ), rand (n), rand (n- 1 )))... )
346
348
DA, BA, SA, TA = map (Array, (D, B, S, T))
347
- @test D * B ≈ DA * BA
348
- @test B * D ≈ BA * DA
349
+ if VERSION >= v " 1.11"
350
+ @test D * B ≈ DA * BA
351
+ @test B * D ≈ BA * DA
352
+ end
349
353
if VERSION >= v " 1.12.0-DEV.824"
350
354
@test D * S ≈ DA * SA
351
355
@test D * T ≈ DA * TA
@@ -416,7 +420,7 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
416
420
417
421
@testset " dot" begin
418
422
a = MyVector (randn (5 ))
419
- @test dot (a, Zeros (5 )) ≡ dot (Zeros (5 ), a) ≡ 0.0
423
+ @test dot (a, Zeros (5 )) ≡ dot (Zeros (5 ), a) == 0.0
420
424
end
421
425
422
426
@testset " layout_getindex scalar" begin
0 commit comments