Skip to content

Commit c5f03bc

Browse files
committed
Remove allequal
1 parent c3b902d commit c5f03bc

File tree

1 file changed

+8
-19
lines changed

1 file changed

+8
-19
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -111,28 +111,17 @@ function generate_function(
111111
end
112112
end
113113

114-
@inline function allequal(x)
115-
length(x) < 2 && return true
116-
e1 = first(x)
117-
i = 2
118-
@inbounds for i=2:length(x)
119-
x[i] == e1 || return false
120-
end
121-
return true
122-
end
123-
124-
function generate_difference_cb(sys::ODESystem, dvs = states(sys), ps = parameters(sys);
125-
kwargs...)
114+
function generate_difference_cb(sys::ODESystem, dvs = states(sys), ps = parameters(sys); kwargs...)
126115
eqs = equations(sys)
127116
foreach(check_difference_variables, eqs)
128117

129-
rhss = [
118+
rhss = [
130119
begin
131120
ind = findfirst(eq -> isdifference(eq.lhs) && isequal(arguments(eq.lhs)[1], s), eqs)
132121
ind === nothing ? 0 : eqs[ind].rhs
133122
end
134-
for s in dvs ]
135-
123+
for s in dvs]
124+
136125
u = map(x->time_varying_as_func(value(x), sys), dvs)
137126
p = map(x->time_varying_as_func(value(x), sys), ps)
138127
t = get_iv(sys)
@@ -141,12 +130,12 @@ function generate_difference_cb(sys::ODESystem, dvs = states(sys), ps = paramete
141130

142131
f = @RuntimeGeneratedFunction(@__MODULE__, f_oop)
143132

144-
function cb_affect!(int)
145-
int.u += f(int.u, int.p, int.t)
133+
function cb_affect!(int)
134+
int.u += f(int.u, int.p, int.t)
146135
end
147136

148-
dts = [ operation(eq.lhs).dt for eq in eqs if isdifferenceeq(eq)]
149-
allequal(dts) || error("All difference variables should have same time steps.")
137+
dts = [operation(eq.lhs).dt for eq in eqs if isdifferenceeq(eq)]
138+
all(dt == dts[1] for dt in dts) || error("All difference variables should have same time steps.")
150139

151140
PeriodicCallback(cb_affect!, first(dts))
152141
end

0 commit comments

Comments
 (0)