SymbolicML / DynamicExpressions.jl

Ridiculously fast symbolic expressions
https://symbolicml.org/DynamicExpressions.jl/dev
Apache License 2.0
90 stars 11 forks source link

Move SymbolicUtils.jl into extension #35

Closed MilesCranmer closed 1 year ago

MilesCranmer commented 1 year ago

This makes it so you need to call:

using SymbolicUtils
using DynamicExpressions

for the functions node_to_symbolic and symbolic_to_node to be loaded. I think this makes sense because you wouldn't typically use these without also having this package set up.

This allows downstream applications to reduce the number of dependencies if the algebraic simplification is not needed.

github-actions[bot] commented 1 year ago

Pull Request Test Coverage Report for Build 5093184845


Changes Missing Coverage Covered Lines Changed/Added Lines %
src/ExtensionInterface.jl 0 4 0.0%
<!-- Total: 0 4 0.0% -->
Totals Coverage Status
Change from base Build 4958507899: 2.4%
Covered Lines: 840
Relevant Lines: 925

💛 - Coveralls
github-actions[bot] commented 1 year ago

Benchmark Results

master 42311a60050a94... t[master]/t[42311a60050a94...]
eval/ComplexF32/evaluation 12.3 ± 1.1 ms 12.5 ± 1.2 ms 0.979
eval/ComplexF64/evaluation 15.6 ± 1.9 ms 15.6 ± 1.6 ms 1
eval/Float32/derivative 23.6 ± 3.4 ms 23 ± 3 ms 1.03
eval/Float32/derivative_turbo 23.5 ± 3.3 ms 23.4 ± 3.3 ms 1.01
eval/Float32/evaluation 4.35 ± 0.53 ms 4.34 ± 0.55 ms 1
eval/Float32/evaluation_turbo 1.33 ± 0.23 ms 1.33 ± 0.24 ms 1
eval/Float64/derivative 29.9 ± 2.5 ms 31.3 ± 2.5 ms 0.955
eval/Float64/derivative_turbo 0.0339 ± 0.0025 s 0.0347 ± 0.0032 s 0.977
eval/Float64/evaluation 4.58 ± 0.6 ms 4.64 ± 0.63 ms 0.986
eval/Float64/evaluation_turbo 2.52 ± 0.43 ms 2.52 ± 0.38 ms 0.998
time_to_load 1.97 ± 0.15 s 2.05 ± 0.04 s 0.964
utils/combine_operators/break_sharing 0.0578 ± 0.014 ms 0.0656 ± 0.023 ms 0.881
utils/convert/break_sharing 0.0591 ± 0.018 ms 0.0548 ± 0.017 ms 1.08
utils/convert/preserve_sharing 0.24 ± 0.062 ms 0.239 ± 0.072 ms 1.01
utils/copy/break_sharing 0.0518 ± 0.015 ms 0.0498 ± 0.014 ms 1.04
utils/copy/preserve_sharing 0.21 ± 0.05 ms 0.204 ± 0.047 ms 1.03
utils/count_constants/break_sharing 26.5 ± 5.5 μs 24.5 ± 4.8 μs 1.08
utils/count_depth/break_sharing 28.6 ± 6 μs 29.5 ± 7.1 μs 0.97
utils/count_nodes/break_sharing 25 ± 4.6 μs 24.7 ± 6.1 μs 1.01
utils/get_set_constants!/break_sharing 0.0892 ± 0.02 ms 0.0916 ± 0.023 ms 0.974
utils/has_constants/break_sharing 7.67 ± 1.5 μs 7.7 ± 1.5 μs 0.996
utils/has_operators/break_sharing 1.98 ± 0.23 μs 2.48 ± 0.36 μs 0.798
utils/index_constants/break_sharing 0.0752 ± 0.016 ms 0.0852 ± 0.027 ms 0.883
utils/is_constant/break_sharing 7.7 ± 1.3 μs 7.86 ± 2.3 μs 0.98
utils/simplify_tree/break_sharing 0.151 ± 0.033 ms 0.155 ± 0.034 ms 0.98

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR. Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).