added src files

- Pick a column limit and stick with it. Use clang-format to enforce a consistent style. Pick one of the base configs, and tweak until you like the results.

-Unless you are going to make a copy via a move, pass std::shared_ptr by const&. Passing by value causes ref-count jiggling that you don't need. Atomic ops are cheap, but they aren't free.

- Namespace qualify int64_t with std::

- Do you mean to copy the mapped_vector? If not, pass by const&

- Avoid single letter variables like 'c' and 'i'. They are impossible to search for, and offer no help to a reader. I know that is how the math is written, but you will thank yourself later.