forked from SciML/RecursiveArrayTools.jl
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprecompilation.jl
More file actions
72 lines (56 loc) · 1.48 KB
/
precompilation.jl
File metadata and controls
72 lines (56 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using PrecompileTools
@setup_workload begin
@compile_workload begin
# VectorOfArray with Vector{Float64}
u_vec = [rand(3) for _ in 1:5]
va = VectorOfArray(u_vec)
# Basic indexing operations
_ = va[1, 1]
_ = va[:, 1]
_ = va[1, :]
_ = va[:, :]
# Array conversion
_ = Array(va)
_ = Vector(va)
# Broadcasting
va2 = va .+ 1.0
va3 = va .* 2.0
va4 = va .+ va
# copyto!
copyto!(va, va2)
# similar
_ = similar(va)
# DiffEqArray with Vector{Float64}
t = collect(1.0:5.0)
da = DiffEqArray(u_vec, t)
# Basic DiffEqArray operations
_ = da[1, 1]
_ = da[:, 1]
_ = da[1, :]
_ = Array(da)
# ArrayPartition with Float64 vectors
ap = ArrayPartition([1.0, 2.0], [3.0, 4.0, 5.0])
# ArrayPartition operations
_ = ap[1]
_ = length(ap)
_ = Array(ap)
# ArrayPartition broadcasting
ap2 = ap .+ 1.0
ap3 = ap .* 2.0
ap4 = ap .+ ap
# copyto! for ArrayPartition
copyto!(ap, ap2)
# similar for ArrayPartition
_ = similar(ap)
# recursive operations
_ = recursive_mean(ap)
_ = recursivecopy(ap)
# fill!
fill!(similar(va), 0.0)
fill!(similar(ap), 0.0)
# size and ndims
_ = size(va)
_ = ndims(va)
_ = size(ap)
end
end