M Gockenbach and W Symes (1999)
An Overview of HCL1.0
Rice University, Department of Computational and Applied Mathematics, 6100 Main Street, Houston, TX 77005.
The Hilbert Class Library (HCL) is a collection of C++ classes which apply object-oriented programming principles to implement mathematical objects such as vectors, linear and nonlinear operators, and functions. HCL provides a convenient environment for implementing algorithms for optimization and linear algebra at a natural, abstract level, without reference to the implementations of data structures, simulators, and other complex, application-specific details. Because coordinate representations, data storage formats, and other domain-specific idiosyncrasies are not entangled in these implementations, the resulting code is reusable across applications of widely varying size and structure. The design of HCL also results in several very important capabilities, such as the ability to treat very large out-of-core data sets as vector objects, and to manipulate linear operators not defined explicitly by matrices, which distinguish HCL from other object oriented numerics libraries.