add support for MultiFloats#162
Conversation
|
I remember having that exact issue and decided not to support MultiFloats. I can't remember exactly why though. Keeping |
|
I see, we get a test failure in the unbounded example. It should be easy to fix though, one can simply do it manually if it's a single operation with Inf. Redesigning Tulip to use booleans would be a lot of work. |
|
I've tried a new approach now, defining some functions to do Inf arithmetic manually for non-IEEE floats. I think it's the optimal solution, as it doesn't affect currently working cases. I just don't know whether I found all the places in the code where Inf arithmetic is needed. Tests pass, but I don't know how comprehensive they are. |
Tulip relies on IEEE 754 treatment of Infs, and therefore doesn't work with non-IEEE types like MultiFloats: https://github.com/dzhang314/MultiFloats.jl
For example, here Tulip relies on diving an Inf by a normal number remaining an Inf, but MultiFloats turn it into a NaN.
Tulip.jl/src/Presolve/Presolve.jl
Lines 282 to 283 in 59e77f0
Luckily the fix is simple: if we regard NaNs as Infs then everything works. I'd be happy to add tests if you're ok with this solution.