Common Versatile Multi-purpose Library for C++
The purpose of this C++ library is to offer common useful features that are not
already found in the
Standard Template Library or in
BOOST. It is assumed that users of the
library are familiar with both, and both are required by this library.
See the Release Notes for changes and open
issues per release.
Namespaces
Everything except the OMPTL lives in the namespace cvmlcpp. The OMPTL
lives in a separate namespace omptl.
Compiling and Linking
Compiling requires the presence of boost's
headers. You may need to link programs using cvmlcpp against libcvmlcpp,
i.e. use -lcvmlcpp, but this usually not needed.
Cvmlcpp uses a simple build system, this can also be
used for external projects.
Library Structure
array [Array toolkit] |
BlitzArray |
Wrapper providing compatibility between CVMLCPP
and the
array
class of the
blitz++
object-oriented scientific computing library |
ArrayIO |
IO for arrays. |
|
base [Basic structures] |
Allocators |
Memory allocators. |
Copy-On-Write |
Memory-efficient resource-management. |
CyclicBuffer |
A cyclic container, useful for storing the
last N values from a given source. |
DirectoryTokenizer |
Recursive scanning of directories. |
Enums |
Commonly used enumerations such as
X Y Z |
Functors |
Various useful functors, such as 'Select1st'. |
Holder |
A framework for managing polymorphic objects
in containers. |
IDGenerators |
Various ways of generating unique identifiers
for different purposes. |
Log |
Log file manager. |
Matrix |
Regular and compressing resizable
N-dimensional Matrices. |
Meta |
Meta-Programming tools. |
StopWatch |
Time measurement. |
Storage |
Generic storage facility for key/value pairs. |
StringTools |
Conversion of objects and ranges from and to
std::string. |
Vectors |
Mathematic Vectors and corresponding operators. |
|
math [Mathematics Kit] |
Euclid |
Points, vectors, lines and triangles. |
Math |
Various Mathematical add-ons, including
Constants such as Pi, functions such as
log2(), procedures such as Newton-Raphson and
Runge-Kutta 4. |
Polynomial |
Convenient representation of polynomials,
offers evaluation and derivation. |
Splines |
Interpolation. |
|
signal [Signal Processing Kit] |
Channel |
A model of DMC commonucation channels. |
Communication |
A toolkit for communication over a noisy channel using LDPC codes. |
Fourier |
Fourier transforms, frontend for
FFTW. |
Histogram |
A histogram, behaving much like a container. |
LDPCCode |
Low-Density Parity Check Error-Correcting Codes
for communication. |
Processing |
Standard functions such as convolution. |
|
volume [Volume Processing Kit] |
DTree |
Regular spatial trees such as Quadtrees and
Octrees. |
Facet |
Facet templates for Geometry. |
Geometry |
Surface-models of 3D objects. |
VolumeIO |
IO for volume structures such as
STL
files and 3D voxel arrays. |
GeometryTools |
Tools for Geometries. |
SurfaceExtractor |
Convert voxel data to a surface-model. |
Voxelizer |
Convert a surface-model to voxel data. |
VoxelTools |
Voxel-data processing tools. |
|
omptl [OpenMP Template Library] |
|
Contributions
Information about making contributions can be found at the page for
implementors.
Disclaimer
Use at your own risk....
|