files containing functions linked to R begin with an r
woweights represents "without weights" and describes files and functions without precomputed weights as inputs
wweights represents "with weights" and describes files and functions with precomputed weights as inputs
upd marks files targeting the update_rst case
Rcpp objects are not passed as const, as Rcpp does not enforce const correctness
one call functions are only targeting undirected graphs, since vertices without outbound edges would always be declared unconnected in a directed graph
the package uses overloading for polymorphism
many files contain one function with multiple overloaded versions
serial executions run the code without OpenMP, not with OpenMP and num_threads(1)
the paradigm of choice is functional, avoiding object-oriented programming
functions use structs neither for inputs nor for outputs, to not hide the type of passed data
a part of the code violates the Do Not Repeat Yourself principle because of (i) computational optimization, (ii) a clean distinction between type combinations, and (iii) an easy modification of individual pipelines without having to dissect broader functions
future versions may use a combination of overloading and templates for polymorphism
thread-safe R vectors could increase the efficiency of this package, as some data would not have to be copied to C++ std vectors
inline functions are exclusively defined in header files