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.
ACM Transactions on Mathematical Software
Petro, M. J.,
Symes, W. W.
C++ classes for linking optimization with complex simulations.
ACM Transactions on Mathematical Software,
Retrieved from: https://digitalcommons.mtu.edu/math-fp/26