Library of Practical Abstractions

Library of Practical Abstractions

Eric Sven Ristad and Peter N. Yianilos.

Summary:

The library of practical abstractions (LIBPA) provides efficient implementations of conceptually simple abstractions, in the C programming language. We believe that the best library code is conceptually simple so that it will be easily understood by the application programmer; parameterized by type so that it enjoys wide applicability; and at least as efficient as a straightforward special-purpose implementation. You will find that our software satisfies the highest standards of software design, implementation, testing, and benchmarking.

The current LIBPA release is a source code distribution. It consists of modules for portable memory management, one dimensional arrays of arbitrary types, compact symbol tables, hash tables for arbitrary types, a trie module for length-delimited strings over arbitrary alphabets, single precision floating point numbers with extended exponents, and logarithmic representations of probability values using either fixed or floating point numbers.

We have used LIBPA to implement a wide range of statistical models for both continuous and discrete domains. The time and space efficiency of LIBPA has allowed us to build larger statistical models than previously possible, and to investigate more computationally-intensive techniques. We have found LIBPA to be indispensable in our own research, and hope that you will find it useful in yours. If you find LIBPA useful, please let us know!