c4Hardware is a highly flexible library of C++ classes (available for free download) for the emulation of hardware implementations of algorithms. It provides a high level interface to matrix, vector, and scalar operations to allow rapid application development without requiring knowledge of the underlying operations. Futhermore, it allows custom data types to be plugged-in with little change to the high level application. This allows bit-accurate modelling and analysis of algorithms under various limited precision numerical representations.
c4HDL is the companion library that provides low level bit-accurate emulation of numeric types. While intended as plug-ins for c4Hardware, they may also be used invidually.