Skip to content

Commit c6a403a

Browse files
committed
More Num wraps and small fixes
1 parent be1ab34 commit c6a403a

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

src/ModelingToolkit.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,13 @@ end
152152
tosymbolic(a::Num) = tosymbolic(value(a))
153153
tosymbolic(a::Sym) = tovar(a)
154154
tosymbolic(a) = a
155-
@num_method Base.isless isless(tosymbolic(a), tosymbolic(b)) (Real,)
156-
@num_method Base.:(<) (tosymbolic(a) < tosymbolic(b)) (Real,)
157-
@num_method Base.:(<=) (tosymbolic(a) <= tosymbolic(b)) (Real,)
158-
@num_method Base.:(>) (tosymbolic(a) > tosymbolic(b)) (Real,)
159-
@num_method Base.:(>=) (tosymbolic(a) >= tosymbolic(b)) (Real,)
160-
@num_method Base.isequal isequal(tosymbolic(a), tosymbolic(b)) (AbstractFloat, Number, Symbolic)
161-
@num_method Base.:(==) tosymbolic(a) == tosymbolic(b) (AbstractFloat,Number)
155+
@num_method Base.isless Num(isless(tosymbolic(a), tosymbolic(b))) (Real,)
156+
@num_method Base.:(<) Num(tosymbolic(a) < tosymbolic(b)) (Real,)
157+
@num_method Base.:(<=) Num(tosymbolic(a) <= tosymbolic(b)) (Real,)
158+
@num_method Base.:(>) Num(tosymbolic(a) > tosymbolic(b)) (Real,)
159+
@num_method Base.:(>=) Num(tosymbolic(a) >= tosymbolic(b)) (Real,)
160+
@num_method Base.isequal Num(isequal(tosymbolic(a), tosymbolic(b))) (AbstractFloat, Number, Symbolic)
161+
@num_method Base.:(==) Num(tosymbolic(a) == tosymbolic(b)) (AbstractFloat,Number)
162162

163163
Base.hash(x::Num, h::UInt) = hash(value(x), h)
164164

src/extra_functions.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function ModelingToolkit.derivative(::typeof(max), args::NTuple{2,Any}, ::Val{2}
2222
IfElse.ifelse(x > y, zero(y), one(y))
2323
end
2424

25-
@register IfElse.ifelse(x,y,z::Any)
25+
IfElse.ifelse(x::Num,y,z) = Num(Term{Real}(IfElse.ifelse, [value(x), value(y), value(z)]))
2626
ModelingToolkit.derivative(::typeof(IfElse.ifelse), args::NTuple{3,Any}, ::Val{1}) = 0
2727
ModelingToolkit.derivative(::typeof(IfElse.ifelse), args::NTuple{3,Any}, ::Val{2}) = IfElse.ifelse(args[1],1,0)
2828
ModelingToolkit.derivative(::typeof(IfElse.ifelse), args::NTuple{3,Any}, ::Val{3}) = IfElse.ifelse(args[1],0,1)

src/solve.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ Currently only works if all equations are linear.
8484
"""
8585
function solve_for(eqs, vars)
8686
A, b = A_b(eqs, vars)
87+
#TODO: we need to make sure that `solve_for(eqs, vars)` contains no `vars`
8788
_solve(A, b)
8889
end
8990

src/systems/diffeqs/odesystem.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ function ODESystem(eqs, iv=nothing; kwargs...)
138138
end
139139
end
140140
end
141+
iv = value(iv)
141142
iv === nothing && throw(ArgumentError("Please pass in independent variables."))
142143
for eq in eqs
143144
collect_vars!(allstates, ps, eq.lhs, iv)

0 commit comments

Comments
 (0)