The CWP Object-Oriented Optimization Library (COOOL) consists of a collection of C++ classes (encapsulations of abstract ideas), a variety of optimization algorithms implemented using these classes, and a collection of test functions, which can be used to evaluate new optimization algorithms.
To use one of the optimization algorithms, a user simply codes an objective function according to a simple model of input/output described below-in any language. COOOL is able to communicate with such a user-provided functions to obtain function values as well as gradient information (if the latter is available). Moreover, the object classes themselves can facilitate the development of new optimization and numerical linear algebra software since the routine aspects of such coding will benefit from the reusability of code inherent in the object-oriented philosophy.
In this paper we give a brief description of the COOOL library: what it contains, what it is useful for and how to obtain it. A longer technical report on the library by the same authors (hereafter referred to as DGS) is available as a postscript or HTML document from the Center for Wave Phenomena. See the section on How to Get COOOL for details on how to obtain it.