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