@@ -11,7 +11,8 @@ MockTensor(data::A, inds) where {T,N,A<:AbstractArray{T,N}} = MockTensor{T,N,A}(
11
11
Base. parent (t:: MockTensor ) = t. data
12
12
Base. size (t:: MockTensor ) = size (parent (t))
13
13
14
- Base. cos (x:: MockTensor ) = MockTensor (cos (parent (x)), x. inds)
14
+ Base. cos (x:: MockTensor ) = MockTensor (cos .(parent (x)), x. inds)
15
+ bcast_cos (x:: MockTensor ) = cos (x)
15
16
16
17
mutable struct MutableMockTensor{T,N,A<: AbstractArray{T,N} } <: AbstractArray{T,N}
17
18
data:: A
24
25
Base. parent (t:: MutableMockTensor ) = t. data
25
26
Base. size (t:: MutableMockTensor ) = size (parent (t))
26
27
27
- Base. cos (x:: MutableMockTensor ) = MutableMockTensor (cos (parent (x)), x. inds)
28
+ Base. cos (x:: MutableMockTensor ) = MutableMockTensor (cos .(parent (x)), x. inds)
29
+
30
+ bcast_cos (x) = cos .(x)
31
+ bcast_cos (x:: MutableMockTensor ) = cos (x)
28
32
29
33
# modified from JuliaCollections/DataStructures.jl
30
34
# NOTE original uses abstract type instead of union, which is not supported
55
59
x = MockTensor (rand (4 , 4 ), [:i , :j ])
56
60
x2 = MockTensor (Reactant. ConcreteRArray (parent (x)), x. inds)
57
61
58
- f = @compile cos (x2)
62
+ f = @compile bcast_cos (x2)
59
63
y = f (x2)
60
64
61
65
@test y isa MockTensor{Float64,2 ,Reactant. ConcreteRArray{Float64,2 }}
62
66
@test size (y) == (4 , 4 )
63
- @test isapprox (parent (y), cos . (parent (x)))
67
+ @test isapprox (parent (y), bcast_cos (parent (x)))
64
68
@test x. inds == [:i , :j ]
65
69
end
66
70
67
71
@testset " mutable" begin
68
72
x = MutableMockTensor (rand (4 , 4 ), [:i , :j ])
69
73
x2 = MutableMockTensor (Reactant. ConcreteRArray (parent (x)), x. inds)
70
74
71
- f = @compile cos (x2)
75
+ f = @compile bcast_cos (x2)
72
76
y = f (x2)
73
77
74
78
@test y isa MutableMockTensor{Float64,2 ,Reactant. ConcreteRArray{Float64,2 }}
75
79
@test size (y) == (4 , 4 )
76
- @test isapprox (parent (y), cos . (parent (x)))
80
+ @test isapprox (parent (y), bcast_cos (parent (x)))
77
81
@test x. inds == [:i , :j ]
78
82
end
79
83
end
0 commit comments