Skip to content

Commit f047794

Browse files
committed
Add benchmarks for copy and convert
1 parent e04b8a0 commit f047794

File tree

1 file changed

+44
-20
lines changed

1 file changed

+44
-20
lines changed

benchmark/benchmarks.jl

+44-20
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using DynamicExpressions, BenchmarkTools, Random
2+
using DynamicExpressions: copy_node
23
using SymbolicRegression: gen_random_tree_fixed_size, Options
34

45
const v_PACKAGE_VERSION = try
@@ -81,34 +82,57 @@ end
8182

8283
function benchmark_utilities()
8384
suite = BenchmarkGroup()
84-
for func in [simplify_tree, combine_operators]
85-
suite[string(func)] = let s = BenchmarkGroup()
86-
options = Options(; binary_operators=[+, -, /, *], unary_operators=[cos, exp])
87-
#! format: off
88-
nfeatures = 5
89-
s["break_topology"] = @benchmarkable(
90-
$(func)(tree, $options.operators),
91-
evals=300,
92-
samples=300,
93-
seconds=10.0,
94-
setup=(
95-
n=20;
96-
tree=gen_random_tree_fixed_size(n, $options, $nfeatures, Float32)
97-
)
98-
)
99-
if v_PACKAGE_VERSION >= v"0.6.1"
100-
s["preserve_topology"] = @benchmarkable(
101-
$(func)(tree, $options.operators; preserve_topology=true),
85+
options = Options(; binary_operators=[+, -, /, *], unary_operators=[cos, exp])
86+
for func_k in ("copy", "convert", "simplify_tree", "combine_operators")
87+
suite[func_k] = let s = BenchmarkGroup()
88+
for k in ("break_topology", "preserve_topology")
89+
f = if func_k == "copy"
90+
tree -> copy_node(tree; preserve_topology=(k == "preserve_topology"))
91+
elseif func_k == "convert"
92+
if v_PACKAGE_VERSION >= v"0.6.1"
93+
tree -> convert(
94+
Node{Float64},
95+
tree;
96+
preserve_topology=(k == "preserve_topology"),
97+
)
98+
else
99+
tree -> convert(Node{Float64}, tree)
100+
end
101+
elseif func_k == "simplify_tree"
102+
if v_PACKAGE_VERSION >= v"0.6.1"
103+
tree -> simplify_tree(
104+
tree,
105+
options.operators;
106+
preserve_topology=(k == "preserve_topology"),
107+
)
108+
else
109+
tree -> simplify_tree(tree, options.operators)
110+
end
111+
elseif func_k == "combine_operators"
112+
if v_PACKAGE_VERSION >= v"0.6.1"
113+
tree -> combine_operators(
114+
tree,
115+
options.operators;
116+
preserve_topology=(k == "preserve_topology"),
117+
)
118+
else
119+
tree -> combine_operators(tree, options.operators)
120+
end
121+
end
122+
123+
#! format: off
124+
s[k] = @benchmarkable(
125+
$(f)(tree),
102126
evals=300,
103127
samples=300,
104128
seconds=10.0,
105129
setup=(
106130
n=20;
107-
tree=gen_random_tree_fixed_size(n, $options, $nfeatures, Float32)
131+
tree=gen_random_tree_fixed_size(n, $options, 5, Float32)
108132
)
109133
)
134+
#! format: on
110135
end
111-
#! format: on
112136
s
113137
end
114138
end

0 commit comments

Comments
 (0)