sosy-lab / java-smt

JavaSMT - Unified Java API for SMT solvers.
Apache License 2.0
180 stars 46 forks source link

Bitwuzla is unusualy slow for FP query based on IEEE conversion #371

Closed baierd closed 2 weeks ago

baierd commented 5 months ago

Bitwuzla is very slow for the tests in FloatingPointFormulaManagerTest based on the getListOfFloats() method. We should extract examples and inform the devs of Bitwuzla about this.

daniel-raffler commented 5 months ago

I've added some test in a new branch (here) to narrow down the issue. The results are somewhat inconclusive, but the problem does not appear to be with the bv to fp conversion itself. Instead the issue is that the test creates a new ProverEnvironment for each of the floating point values that is tested. If we reuse the same ProverEnvironment for all the test values the issues goes away. On the other hand we only seem to be getting this big of a performance penalty if floating point values are used. A similar test that only uses bitvectors runs somewhat slower if each value gets its own ProverEnvironment. However, the difference is nowhere near as pronounced.

baierd commented 1 month ago

Whats the current state of this issue and what can we do? @daniel-raffler could you investigate please?