# 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] |
omptl_algorithm | An OpenMP based parallelization of the STL's algorithm library.
omptl_numeric | An OpenMP based parallelization of the STL's numeric library.
## Contributions Information about making contributions can be found at the page for implementors. ## Disclaimer Use at your own risk....