IMP Manual  develop.db77dba,2019/05/20
Runtime checks

IMP implements lots of runtime checks to ensure that

• it is being used correctly (USAGE checks); for example, input parameters are checked to make sure they are within the expected range.
• it is working correctly (INTERNAL or debug checks).

The maximum check level is set when IMP is built. It is generally recommended to build with only USAGE checks, since INTERNAL checks typically result in much slower code.

Runtime checks can also be turned on and off globally at runtime using IMP::set_check_level() or for individual objects.

Note that while it is possible to turn off USAGE checks it is generally not recommended. If IMP runs markedly more slowly with USAGE checks turned on, then this is a bug and it should be reported.