# ScipPrintLevel -- adjust how much solving information is displayed in MonomialIntegerPrograms

## Description

ScipPrintLevel is a global symbol defined in Monomial Integer Programs using exportMutable. After the package has been loaded, the user can change the value of ScipPrintLevel at any time, and the specified behavior will immediately apply to all methods implemented in the package.

Meaningful options for ScipPrintLevel are:

0 return the answers to computations only, suppressing all other printing

1 return the answer, and print to screen the location of the temporary directory which contains all the files related to the computation. By default this is a subdirectory of /tmp/, see temporaryFileName.

2 all the above, plus display any error or warning messages generated by SCIP during the computation, i.e. anything sent by SCIP to stderr. See note below about warning messages.

3 all the above, plus print the problem file generated with this package, used as the input to SCIP

4 all the above, plus print the solution file generated by SCIP after solving the IP

5 all the above, plus print any other information sent by SCIP to stdout during the solve, if any

The default value of ScipPrintLevel is 0. To load the package with a different default value for ScipPrintLevel, imitate the following example.

 i1 : loadPackage("MonomialIntegerPrograms", Configuration => {"CustomScipPrintLevel" => "2"}, Reload => true); --loading configuration for package "MonomialIntegerPrograms" from file /home/lily/.Macaulay2/init-MonomialIntegerPrograms.m2 Using default executable name "scip". To change this, load package using CustomPath option.

Replace "2" above with any custom choice. Note that the string "2" is used, not an integer. You may or may not have to include the "Reload => true" option depending on if the package is already loaded.

Why am I getting warnings/why does the solver report infeasibility for the degree count?

This often happens when ScipPrintLevel is set to 2 or above and is not an error, but a consequence of the normal solving behavior of SCIP. Computing the degree of a monomial ideal is done by counting the number of feasible solutions to a certain integer program. SCIP is generally programmed to find a single optimal or feasible solution and then terminate, so to count them it uses the following "trick": Every time SCIP encounters a feasible solution or branch, it is recorded, then a constraint is added to make the new solution/branch infeasible, so the search can continue. Eventually, all the solutions are recorded and the entire problem has been made "infeasible." Thus the solving details for the degree problem print a final result of "problem is infeasible," but the correct count has been taken. For more details, see this specific SCIP documentation page: https://scip.zib.de/doc/html/COUNTER.php.