The boxes generated by the bisection process are stored in an interval matrix:
Box_Solve_General_Interval(M,m)while the corresponding simplified Jacobian matrix is stored in the integer matrix of size (M, m n):
Gradient_Solve_General_Intervalcalled the simplified jacobian: the entry of this matrix indicates for function and variable that the gradient is always positive (1), the gradient is always negative (-1), the function does not depend upon the variable (0), the gradient may have not a constant sign within the range of the variable (2). The purpose of storing the simplified gradient for each box is to avoid to re-compute a gradient as soon as it has been determined that a father of the box has already a gradient with a constant sign. This has the drawback that for large problems this storage will be also large: hence it is possible to avoid this storage by setting the variable ALIAS_Store_Gradient to 0 (its default value is 1).
The algorithm try to manage the storage in order to solve the problem with the given number M. As seen in section 126.96.36.199 two storage modes are available, the Direct Storage and the Reverse Storage modes, which are obtained by setting the global variable Reverse_Storage to 0 (the default value) or 1.
For both modes the algorithm will first run until the bisection of the current box leads to a total number of boxes which exceed the allowed total number. It will then delete the boxes in the list which have been already bisected, thereby freeing some storage space (usually larger for the reverse mode than for the direct mode) and will start again.