@@ -5,6 +5,7 @@ using SymbolicUtils.Code: LazyState
5
5
using StaticArrays
6
6
using LabelledArrays
7
7
using SparseArrays
8
+ using ReverseDiff
8
9
using LinearAlgebra
9
10
10
11
test_repr (a, b) = @test repr (Base. remove_linenums! (a)) == repr (Base. remove_linenums! (b))
@@ -158,6 +159,17 @@ nanmath_st.rewrites[:nanmath] = true
158
159
@test eval (toexpr (Let ([a ← 1 , b ← 2 , arr ← @SLVector ((:a , :b ))(@SVector [1 ,2 ])],
159
160
MakeArray ([a+ b,a/ b], arr)))) === @SLVector ((:a , :b ))(@SVector [3 , 1 / 2 ])
160
161
162
+ trackedarr = eval (toexpr (Let ([a ← ReverseDiff. track (1.0 ), b ← 2 , arr ← ReverseDiff. track (ones (2 ))],
163
+ MakeArray ([a+ b,a/ b], arr))))
164
+ @test trackedarr isa ReverseDiff. TrackedArray
165
+ @test trackedarr == [3 , 1 / 2 ]
166
+
167
+ trackedarr = eval (toexpr (Let ([a ← ReverseDiff. track (1.0 ), b ← 2 , arr ← ReverseDiff. track (ones (2 ))],
168
+ MakeArray ([a b; a+ b a/ b], arr))))
169
+ @test trackedarr isa ReverseDiff. TrackedArray
170
+ @test trackedarr == [1 2 ; 3 1 / 2 ]
171
+
172
+
161
173
R1 = eval (toexpr (Let ([a ← 1 , b ← 2 , arr ← @MVector ([1 ,2 ])],MakeArray ([a,b,a+ b,a/ b], arr))))
162
174
@test R1 == (@MVector [1 , 2 , 3 , 1 / 2 ]) && R1 isa MVector
163
175
0 commit comments