AbstractAccording to the Object-Oriented Programming paradigm, a computer program should be organized around the fundamental objects it manipulates. In the C++ programming languages, these objects are embodied in classes. The Hilbert Class Library (HCL) is a collection of C++ classes designed for implementing numerical optimization algorithms in the context of Hilbert spaces. HCL includes base classes for defining vectors, linear operators, nonlinear operators and functionals, and related mathematical objects. Using these base classes, algorithms can be coded in a natural style that does not refer to application-specific details; nonetheless, the code can be applied to arbitrarily complex applications. Thus, HCL is intended to provide a way...