Overview of the core library

At the core of the vif library is the vector class, vec. This is basically an enhanced std::vector, and it therefore shares most of its features and strengths. On top of the std::vector interface, the vif vectors have extra functionalities to simplify data analysis and calculations, including overloaded mathematical operators, multi-dimensional indexing, and the ability to create “views” to access and edit subsets of a given vector.

Here we will first describe the properties of the vector class, and then describe the vector views. Lastly, a guide for writing “generic” functions that work with any vector type is provided.