You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since this was the first semi-substantial piece of Julia code I ever wrote, I did a few unidiomatic things early on. One of these, perhaps, is not making much use of the wide array of packages out there to help me. One of the most glaring places this shows up is the untyped implementation of intervals that I wrote. It might be reasonable in something like C++, but Julia has nice packages like IntervalArithmetic.jl that could make the job way easier. Since this package supports arithmetic on interval types, it might even reduce the need for a lot of type checks to see if we have a single vector or interval. It would be good to try porting ControlTimingSafety.jl to use IntervalArithmetic.jl and see if there's any performance hit. If not, or if it's not very big, it might be advantageous to make the switch.
The text was updated successfully, but these errors were encountered:
I think IntervalArithmetic is the right package to use here. We can use its IntervalBox type for reachable sets, which support matrix-IntervalBox multiplication just like vectors, and a hull function to compute the very kind of hull we use. Seems like switching to this package could simplify our code significantly.
I'm working on making this change now. It looks like despite doing a lot more memory allocations, it's giving a 2–3× speedup, which is very impressive. More testing is still needed before I think about opening a PR for it though.
Since this was the first semi-substantial piece of Julia code I ever wrote, I did a few unidiomatic things early on. One of these, perhaps, is not making much use of the wide array of packages out there to help me. One of the most glaring places this shows up is the untyped implementation of intervals that I wrote. It might be reasonable in something like C++, but Julia has nice packages like IntervalArithmetic.jl that could make the job way easier. Since this package supports arithmetic on interval types, it might even reduce the need for a lot of type checks to see if we have a single vector or interval. It would be good to try porting ControlTimingSafety.jl to use IntervalArithmetic.jl and see if there's any performance hit. If not, or if it's not very big, it might be advantageous to make the switch.
The text was updated successfully, but these errors were encountered: