C++ classes for linking optimization with complex simulations

  • Authors:
  • Mark S. Gockenbach;Matthew J. Petro;William W. Symes

  • Affiliations:
  • Michigan Technical Univ., Houghton;Univ. of Wisconsin, Madison;Rice Univ., Houston, TX

  • Venue:
  • ACM Transactions on Mathematical Software (TOMS)
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.