A number of macros is provided for user configuration. Defining or undefining such macros triggers variations in some library functionality.
Under a Linux/Unix system, they are (un)set by configure
; run
for a list of corresponding command-line options.
Under a Windows system, they must be (un)defined by editing the file <ql/userconfig.hpp> and commenting or uncommenting the relevant lines.
Such macros include:
If defined, function information is added to the error messages thrown by the library. Undefined by default.
If defined, file and line information is added to the error messages thrown by the library. Undefined by default.
If enabled, tracing messages might be emitted by the library depending on run-time settings. Enabling this option can degrade performance. Undefined by default.
If defined, negative yield rates are allowed in a few places where they are currently forbidden. It is still not clear whether this is safe. Undefined by default.
If defined, extra run-time checks are added to a few functions. This can prevent their inlining and degrade performance. Undefined by default.
If defined, indexed coupons (see the documentation) are used in floating legs. If undefined (the default), par coupons are used.
If defined, singletons will return different instances for different sessions. You will have to provide and link with the library a sessionId() function in namespace QuantLib, returning a different session id for each session.