Introduction

UTILIB is a general-purpose C++ library that includes a variety of algorithmic utilities for software development. These utilities define useful datatypes and classes as well as generic routines. In particular, UTILIB provides a variety of services that facilitate the portability of codes, and in particular porting to parallel computing platforms at Sandia. This library has proven useful in the development of several codes at Sandia, including the SGOPT global optimization library, the PICO parallel branch-and-bound library, and the DAKOTA optimization toolkit.

In its current form, this documentation provides more of a reference manual than a user's guide. There are several reasons for this:

Consequently, the documentation provided in this document provides a sketch of the detail needed to fully explain the functionality of this software. Further, some of the classes and functions are only partially documented, which reflects the fact that I expect them to be revised in the future. However, I hope it will be sufficient to get started using these libraries.

It is worth noting some points about the design philosophy for the classes in UTILIB:

The components of the UTILIB library include

These components of the libraries are described in greater detail in the following sections.