@@ -15,16 +15,28 @@ for T in (Float32, Float64)
15
15
@testset " Element-wise Operators::$T " begin
16
16
X:: Vector{T} = randn (N)
17
17
Y:: Vector{T} = randn (N)
18
+ Z:: Vector{T} = similar (X)
18
19
# Vector-vector
19
20
@test (X .+ Y) ≈ AppleAccelerate. vadd (X, Y)
20
21
@test (X .- Y) ≈ AppleAccelerate. vsub (X, Y)
21
22
@test (X .* Y) ≈ AppleAccelerate. vmul (X, Y)
22
23
@test (X ./ Y) ≈ AppleAccelerate. vdiv (X, Y)
24
+
25
+ # Vector-vector non-allocating
26
+ AppleAccelerate. vadd! (Z, X, Y)
27
+ @test (X .+ Y) ≈ Z
28
+ AppleAccelerate. vsub! (Z, X, Y)
29
+ @test (X .- Y) ≈ Z
30
+ AppleAccelerate. vmul! (Z, X, Y)
31
+ @test (X .* Y) ≈ Z
32
+ AppleAccelerate. vdiv! (Z, X, Y)
33
+ @test (X ./ Y) ≈ Z
34
+
23
35
# Vector-vector broadcasting
24
- @test (X .+ Y) ≈ AppleAccelerate. vadd (X, Y)
25
- @test (X .- Y) ≈ AppleAccelerate. vsub (X, Y)
26
- @test (X .* Y) ≈ AppleAccelerate. vmul (X, Y)
27
- @test (X ./ Y) ≈ AppleAccelerate. vdiv (X, Y)
36
+ @test (X .+ Y) ≈ AppleAccelerate. vadd . (X, Y)
37
+ @test (X .- Y) ≈ AppleAccelerate. vsub . (X, Y)
38
+ @test (X .* Y) ≈ AppleAccelerate. vmul . (X, Y)
39
+ @test (X ./ Y) ≈ AppleAccelerate. vdiv . (X, Y)
28
40
29
41
# Vector-scalar
30
42
c:: T = randn ()
@@ -34,6 +46,18 @@ for T in (Float32, Float64)
34
46
@test (X .* c) ≈ AppleAccelerate. vsmul .(X, c)
35
47
@test (X ./ c) ≈ AppleAccelerate. vsdiv .(X, c)
36
48
49
+ # Vector-scalar non-allocating
50
+ AppleAccelerate. vsadd! (Y, X, c)
51
+ @test (X .+ c) ≈ Y
52
+ AppleAccelerate. vssub! (Y, X, c)
53
+ @test (X .- c) ≈ Y
54
+ AppleAccelerate. svsub! (Y, X, c)
55
+ @test (c .- X) ≈ Y
56
+ AppleAccelerate. vsmul! (Y, X, c)
57
+ @test (X .* c) ≈ Y
58
+ AppleAccelerate. vsdiv! (Y, X, c)
59
+ @test (X ./ c) ≈ Y
60
+
37
61
# Vector-scalar broadcasting
38
62
@test (X .+ c) ≈ AppleAccelerate. vsadd .(X, c)
39
63
@test (X .- c) ≈ AppleAccelerate. vssub .(X, c)
0 commit comments