Skip to content

Commit

Permalink
refactor substitute_all
Browse files Browse the repository at this point in the history
  • Loading branch information
oameye committed Oct 13, 2024
1 parent 1bd0084 commit 577138a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 16 deletions.
3 changes: 2 additions & 1 deletion src/HarmonicEquation.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ function slow_flow!(eom::HarmonicEquation; fast_time::Num, slow_time::Num, degre
drop = [d(var, fast_time, degree) => 0 for var in get_variables(eom)]

eom.equations = substitute_all(substitute_all(eom.equations, drop), replace)
return eom.variables = substitute_all(eom.variables, replace)
eom.variables = substitute_all(eom.variables, replace)
return nothing
end

"""
Expand Down
17 changes: 3 additions & 14 deletions src/Symbolics/Symbolics_utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,26 +63,15 @@ function substitute_all(
end
return substitute(x, rules)
end

"Variable substitution - dictionary"
function substitute_all(dict::Dict, rules::Dict)::Dict
new_keys = substitute_all.(keys(dict), rules)
new_values = substitute_all.(values(dict), rules)
return Dict(zip(new_keys, new_values))
end

function substitute_all(
v::Union{Array{Num},Array{Equation}}, rules::Union{Dict,Pair,Vector}
)
return [substitute_all(x, rules) for x in v]
end
function substitute_all(x::Union{Num,Equation}, rules::Union{Pair,Vector,OrderedDict})
return substitute_all(x, Dict(rules))
end
function substitute_all(x::Complex{Num}, rules::Union{Pair,Vector,OrderedDict,Dict})
return substitute_all(Num(x.re.val.arguments[1]), rules)
end
substitute_all(x, rules) = substitute_all(Num(x), rules)
Collections = Union{Dict,Pair,Vector,OrderedDict}
substitute_all(v::AbstractArray, rules) = [substitute_all(x, rules) for x in v]
substitute_all(x::Union{Num,Equation}, rules::Collections) = substitute_all(x, Dict(rules))


get_independent(x::Num, t::Num) = get_independent(x.val, t)
Expand Down
1 change: 0 additions & 1 deletion src/Symbolics/fourier.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ function trig_reduce(x)
return simplify_fractions(x) # (a*c^2 + b*c)/c^2 = (a*c + b)/c
end


"Return true if `f` is a sin or cos."
function is_trig(f::Num)
f = ispow(f.val) ? f.val.base : f.val
Expand Down

0 comments on commit 577138a

Please sign in to comment.