Skip to content

Commit b688654

Browse files
committed
Merge branch 'master' into chainrules-core
2 parents 906b847 + f68d92e commit b688654

20 files changed

+71
-53
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
5252
LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890"
5353
Optim = "429524aa-4258-5aef-a3af-852621145aeb"
5454
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
55-
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
5655
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
5756
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
57+
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
5858
SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b"
5959
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
6060
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ DynamicExpressions.jl is the backbone of [SymbolicRegression.jl](https://github.
1515

1616
A dynamic expression is a snippet of code that can change throughout runtime - compilation is not possible! **DynamicExpressions.jl does the following:**
1717
1. Defines an enum over user-specified operators.
18-
2. Using this enum, it defines a [very lightweight and type-stable data structure](https://symbolicml.org/DynamicExpressions.jl/dev/types/#DynamicExpressions.EquationModule.Node) for arbitrary expressions.
18+
2. Using this enum, it defines a [very lightweight and type-stable data structure](https://symbolicml.org/DynamicExpressions.jl/dev/types/#DynamicExpressions.NodeModule.Node) for arbitrary expressions.
1919
3. It then generates specialized [evaluation kernels](https://github.com/SymbolicML/DynamicExpressions.jl/blob/fe8e6dfa160d12485fb77c226d22776dd6ed697a/src/EvaluateEquation.jl#L29-L66) for the space of potential operators.
2020
4. It also generates kernels for the [first-order derivatives](https://github.com/SymbolicML/DynamicExpressions.jl/blob/fe8e6dfa160d12485fb77c226d22776dd6ed697a/src/EvaluateEquationDerivative.jl#L139-L175), using [Zygote.jl](https://github.com/FluxML/Zygote.jl).
2121
5. DynamicExpressions.jl can also operate on arbitrary other types (vectors, tensors, symbols, strings, or even unions) - see last part below.

benchmark/benchmarks.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using DynamicExpressions, BenchmarkTools, Random
2-
using DynamicExpressions.EquationUtilsModule: is_constant
32

43
# Trigger extensions:
54
using LoopVectorization
@@ -13,6 +12,12 @@ else
1312
@eval using DynamicExpressions: GraphNode
1413
end
1514

15+
if PACKAGE_VERSION < v"0.17.0"
16+
@eval using DynamicExpressions.EquationUtilsModule: is_constant
17+
else
18+
@eval using DynamicExpressions.NodeUtilsModule: is_constant
19+
end
20+
1621
include("../test/tree_gen_utils.jl")
1722

1823
const SUITE = BenchmarkGroup()

ext/DynamicExpressionsLoopVectorizationExt.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ module DynamicExpressionsLoopVectorizationExt
33
using LoopVectorization: @turbo
44
using DynamicExpressions: AbstractExpressionNode
55
using DynamicExpressions.UtilsModule: ResultOk, fill_similar
6-
using DynamicExpressions.EvaluateEquationModule: @return_on_check
7-
import DynamicExpressions.EvaluateEquationModule:
6+
using DynamicExpressions.EvaluateModule: @return_on_check
7+
import DynamicExpressions.EvaluateModule:
88
deg1_eval,
99
deg2_eval,
1010
deg1_l2_ll0_lr0_eval,

ext/DynamicExpressionsSymbolicUtilsExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module DynamicExpressionsSymbolicUtilsExt
22

33
using SymbolicUtils
4-
import DynamicExpressions.EquationModule:
4+
import DynamicExpressions.NodeModule:
55
AbstractExpressionNode, Node, constructorof, DEFAULT_NODE_TYPE
66
import DynamicExpressions.OperatorEnumModule: AbstractOperatorEnum
77
import DynamicExpressions.UtilsModule: isgood, isbad, deprecate_varmap

src/ChainRules.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ module ChainRulesModule
33
using ChainRulesCore:
44
ChainRulesCore, AbstractTangent, NoTangent, ZeroTangent, Tangent, @thunk, canonicalize
55
using ..OperatorEnumModule: OperatorEnum
6-
using ..EquationModule: AbstractExpressionNode, with_type_parameters, tree_mapreduce
7-
using ..EvaluateEquationModule: eval_tree_array
8-
using ..EvaluateEquationDerivativeModule: eval_grad_tree_array
6+
using ..NodeModule: AbstractExpressionNode, with_type_parameters, tree_mapreduce
7+
using ..EvaluateModule: eval_tree_array
8+
using ..EvaluateDerivativeModule: eval_grad_tree_array
99

1010
struct NodeTangent{T,N<:AbstractExpressionNode{T},A<:AbstractArray{T}} <: AbstractTangent
1111
tree::N

src/DynamicExpressions.jl

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ module DynamicExpressions
33
include("Utils.jl")
44
include("ExtensionInterface.jl")
55
include("OperatorEnum.jl")
6-
include("Equation.jl")
7-
include("EquationUtils.jl")
6+
include("Node.jl")
7+
include("NodeUtils.jl")
88
include("Strings.jl")
9-
include("EvaluateEquation.jl")
10-
include("EvaluateEquationDerivative.jl")
9+
include("Evaluate.jl")
10+
include("EvaluateDerivative.jl")
1111
include("ChainRules.jl")
1212
include("EvaluationHelpers.jl")
13-
include("SimplifyEquation.jl")
13+
include("Simplify.jl")
1414
include("OperatorEnumConstruction.jl")
1515
include("Random.jl")
1616

1717
import PackageExtensionCompat: @require_extensions
1818
import Reexport: @reexport
19-
@reexport import .EquationModule:
19+
@reexport import .NodeModule:
2020
AbstractNode,
2121
AbstractExpressionNode,
2222
GraphNode,
@@ -26,8 +26,8 @@ import Reexport: @reexport
2626
tree_mapreduce,
2727
filter_map,
2828
filter_map!
29-
import .EquationModule: constructorof, preserve_sharing
30-
@reexport import .EquationUtilsModule:
29+
import .NodeModule: constructorof, preserve_sharing
30+
@reexport import .NodeUtilsModule:
3131
count_nodes,
3232
count_constants,
3333
count_depth,
@@ -41,10 +41,9 @@ import .EquationModule: constructorof, preserve_sharing
4141
@reexport import .OperatorEnumModule: AbstractOperatorEnum
4242
@reexport import .OperatorEnumConstructionModule:
4343
OperatorEnum, GenericOperatorEnum, @extend_operators, set_default_variable_names!
44-
@reexport import .EvaluateEquationModule: eval_tree_array, differentiable_eval_tree_array
45-
@reexport import .EvaluateEquationDerivativeModule:
46-
eval_diff_tree_array, eval_grad_tree_array
47-
@reexport import .SimplifyEquationModule: combine_operators, simplify_tree!
44+
@reexport import .EvaluateModule: eval_tree_array, differentiable_eval_tree_array
45+
@reexport import .EvaluateDerivativeModule: eval_diff_tree_array, eval_grad_tree_array
46+
@reexport import .SimplifyModule: combine_operators, simplify_tree!
4847
@reexport import .EvaluationHelpersModule
4948
@reexport import .ExtensionInterfaceModule: node_to_symbolic, symbolic_to_node
5049
@reexport import .RandomModule: NodeSampler
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
module EvaluateEquationModule
1+
module EvaluateModule
22

3-
import ..EquationModule: AbstractExpressionNode, constructorof
3+
import ..NodeModule: AbstractExpressionNode, constructorof
44
import ..StringsModule: string_tree
55
import ..OperatorEnumModule: OperatorEnum, GenericOperatorEnum
66
import ..UtilsModule: is_bad_array, fill_similar, counttuple, ResultOk
7-
import ..EquationUtilsModule: is_constant
7+
import ..NodeUtilsModule: is_constant
88
import ..ExtensionInterfaceModule: bumper_eval_tree_array, _is_loopvectorization_loaded
99

1010
const OPERATOR_LIMIT_BEFORE_SLOWDOWN = 15
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
module EvaluateEquationDerivativeModule
1+
module EvaluateDerivativeModule
22

3-
import ..EquationModule: AbstractExpressionNode, constructorof
3+
import ..NodeModule: AbstractExpressionNode, constructorof
44
import ..OperatorEnumModule: OperatorEnum
55
import ..UtilsModule: is_bad_array, fill_similar, ResultOk2
6-
import ..EquationUtilsModule: count_constants, index_constants, NodeIndex
7-
import ..EvaluateEquationModule:
8-
deg0_eval, get_nuna, get_nbin, OPERATOR_LIMIT_BEFORE_SLOWDOWN
6+
import ..NodeUtilsModule: count_constants, index_constants, NodeIndex
7+
import ..EvaluateModule: deg0_eval, get_nuna, get_nbin, OPERATOR_LIMIT_BEFORE_SLOWDOWN
98
import ..ExtensionInterfaceModule: _zygote_gradient
109

1110
"""

src/EvaluationHelpers.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ module EvaluationHelpersModule
22

33
import Base: adjoint
44
import ..OperatorEnumModule: AbstractOperatorEnum, OperatorEnum, GenericOperatorEnum
5-
import ..EquationModule: AbstractExpressionNode
6-
import ..EvaluateEquationModule: eval_tree_array
7-
import ..EvaluateEquationDerivativeModule: eval_grad_tree_array
5+
import ..NodeModule: AbstractExpressionNode
6+
import ..EvaluateModule: eval_tree_array
7+
import ..EvaluateDerivativeModule: eval_grad_tree_array
88

99
# Evaluation:
1010
"""

0 commit comments

Comments
 (0)