Skip to content

Commit f1abd59

Browse files
committed
fix: Symbolics Differential(::Number)
1 parent 01fa316 commit f1abd59

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
1313
[compat]
1414
DocStringExtensions = "0.9.4"
1515
SymbolicUtils = "3.25"
16-
Symbolics = "~6.34"
16+
Symbolics = "6.34"
1717
julia = "1.10"
1818
Random = "1.10"
1919
LinearAlgebra = "1.10"

src/Symbolics/Symbolics_utils.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,14 @@ Perform substitutions in `rules` on `x`.
4949
Subtype = Union{Num,Equation,BasicSymbolic}
5050
function substitute_all(x::Subtype, rules::Dict; include_derivatives=true)
5151
if include_derivatives
52-
rules = merge(
53-
rules,
54-
Dict([Differential(var) => Differential(rules[var]) for var in keys(rules)]),
55-
)
52+
drules = Pair[]
53+
for var in keys(rules)
54+
if !isa(rules[var], Number)
55+
pair = Differential(var) => Differential(rules[var])
56+
push!(drules, pair)
57+
end
58+
end
59+
rules = merge(rules, Dict(drules))
5660
end
5761
return substitute(x, rules)
5862
end

test/HarmonicVariable.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,13 @@ end
7373
new_hv = substitute_all(hv, Dict=> 2))
7474
@test new_hv.ω == 2
7575
end
76+
# hv = HarmonicVariable(nat_var, "test_name", "u", ω, nat_var)
77+
# rules = Dict(ω => 2)
78+
# new_hv = substitute_all(hv, rules)
79+
# sym, freq = hv.symbol, hv.ω
80+
# substitute_all(sym, rules)
81+
# rules = merge(
82+
# rules,
83+
# Dict([Differential(var) => Differential(rules[var]) for var in keys(rules)]),
84+
# )
85+
# sym

0 commit comments

Comments
 (0)