Closed kunchtler closed 1 year ago
Hi, The problem does not come from ibex. The problem comes from the way g++ optimizes constant evaluation in your constraint declaration, depending on whether you use "-frounding-math" or not. If you replace the expression 19./29 4 by 2.62068965517241 and 13./29 4 by 1.79310344827586, you get the same result with or without "-frounding-math". So the behavior of the solver is the same regardless of this compiler option. Gilles
Hello, I've encountered a bug regarding a certain compilation flag that doesn't return all solutions when solving a certain system.
I am using g++ 10.3.0 on Ubuntu 20.04.4 LTS, with the latest version of ibex (2.8.9).
The issue arises when compiling the following piece of code with the "-frounding-math" flag.
First the expected behaviour. When compiling it with the makefile as explained in the documentation ( http://www.ibex-lib.org/doc/install-cmake.html#install-compiling-running ), the following compilation command gets executed (without "-frounding-math").
When executing the executable, I get the output :
2 solution boxes are printed, which is the expected behaviour.
However, when adding at the end of the compilation command the flag "-frounding-math", I get the output :
The second solution box is nowhere to be seen (even as a boundary or unknown kind of box).
This behaviour doesn't happen for all constants appearing in the expression of f and g, and it doesn't happen either when replacing "ibex::pow(t, 2)" with "t*t". My guess is that it is a problem within the function pow or sqr itself.
Thank you in advance !