IO API
Hierarchical Data Format 5 (HDF5) is a unique open source software suite for managing data collections of all sizes and complexity. This header only library provides templates of [CREATE|READ|WRITE|APPEND] operations for popular Linear Algebra packages such as Armadillo C++.
 h5::create(fd, path, max_dims, chunk_dims, deflate );fd - file descriptor, path - how you reach dataset within file, max_dims – tells the size of dataset, the value H5S_UNLIMITED marks given dimension extendable, chunk_dims tells the size of elementary IO operations if specified the rank of max_dims and chunk_dims must match. Empty set:{} indicates no-chunked operations. And finally deflate controls the level of GZIP compression
 h5::read<T>( [ds | path], {offset}, {size} );Templated [full|partial] READ operations for T:= std::vector<S> | arma::Row<T> | arma::Col<T> | arma::Mat<T> | arma::Cube<T> objects from opened ds dataset descriptor or path. Returned objects are RVO optimized and for calls within loops raw pointer templates provide means to load datasets from offset and given size
 h5::write<T>( [ds | path], Object<T>, {offset},{size} );Templated WRITE operations Object:= std::vector<S> | arma::Row<T> | arma::Col<T> | arma::Mat<T> | arma::Cube<T>
 h5::append(context, record);Dataset APPEND operations for streamed data access with examples
 h5::open | h5::close | h5::create | h5::muteThe open | close, create operations listed here are to create a place holder, an hdf5 file, for your datasets. In POSIX sense this is an entire image of a file system and the dataset is a file within. These datasets can be manipulated with Create|Read|Write|Append operation. File IO operations are straight maps from already existing HDF5 calls, hence they are freely interchangeable