About integer overflow problems


One problem that may occur when solving a linear pseudo boolean formula is integer overflow. Usually, programs use integers of size corresponding to the processor registers. On the usual 32 bits platforms, this means that the biggest positive integer is only 2,147,483,647 when using the int type (C/C++/Java). This limit is fairly easy to reach. Using 64 bits integers gives a more comfortable limit but doesn't really solve the problem.

As far as PB solver are concerned, integer overflow can occur either during the input of the formula or during the resolution of the formula and will have different effect on the solver capabilities:
Such integer overflows are a concern for the evaluation because we expect to get some wrong answer from time to time on a few benchmarks. On the other hand, integer overflows are easy to fix and are related to the implementation and not to the algorithm used by the solver. One just has to use a multiple precision integer library to get rid of the problem. Of course, computations will be a little bit slower with this kind of library.

Our policy for this evaluation is
The registration form asks you two questions. The first one is about the size of integers used inside your solver. This gives an idea of the integer overflow problem during the input of the formula. The second question asks you if your solver may overflow an integer when it handles multiple constraints even when each constraint individually wouldn't do harm. This is indeed another way to ask you if your implementation may face an integer overflow during the resolution of the formula.