C++ classes for linking optimization with complex simulations

Document Type


Publication Date



The object-oriented programming paradigm can be used to overcome the incompatibilities between off-the-shelf optimization software and application software. The Hilbert Class Library (HCL) defines the fundamental mathematical objects arising in optimization problems, such as vectors, linear operators, and so forth, as C++ classes, making it possible to write optimization code in a natural fashion, while allowing application software such as simulators to use the most convenient data structures and programming style. In spite of the poor reputation C++ has for runtime performance, the use of mixed-language programming allows performance equal to that achieved by standard Fortran packages, as comparisons with the popular code LBFGS and ARPACK demonstrate.

Publisher's Statement

© 1999 ACM. Publisher's version of record: https://dx.doi.org/10.1145/317275.317280

Publication Title

ACM Transactions on Mathematical Software