C++ classes for linking optimization with complex simulations
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.
optimization simulation object-oriented design