*STILL UNDER DEVELOPMENT
CirDeVec is a hybrid data-structure that is heavily inspired by the behaviour of circular buffers, deques, and vectors.
- Repository folders structure: a look at how the files are distributed in directories.
- Download repository: details on how to download this repository.
- Update repository: details on how to update this repository.
- Extra-tools: a list of non-strictly-necessary tools that enable extra features.
- Dependencies: a list of dependencies and their use inside this project.
- Inclusion: check this if you want to know how to include this library.
- Include statement: bring me in!
- Header file: where's the header!?
- CMake: for bug-proof coders only.
- Integrations: check this if you want to try out the unit-testing or the benchmarking modules.
- Implementation: check this if you want know a little more about the implementation.
- The concept: a little overview at the basic concept of the implementation.
- API: some informations about the API of CirDeVec.
- Efficiency: some informations about the efficiency of CirDeVec.
- Cache friendliness: the internal representation aims to be cache friendly.
Give a look at the kriasoft's Folder Structure Conventions first if you need to, since the structure of this repository is based on that.
.
├── build/ # Local folder for project builds
├── cmake/ # CMake script files
├── deps/ # Dependency libraries (3rd party submodules)
├── docs/ # Documentation markdown files
├── include/ # Header files
├── tests/ # Automated tests
├── CMakeLists.txt # CMake main script file
├── Doxyfile # Doxygen configuration file
├── LICENSE.md # License markdown file
└── README.md # Readme markdown file (YOU ARE HERE)
Using the command below you can download the content of this repository in an automatically created CirDeVec folder inside your current directory. (Git is needed)
$ git clone https://github.com/MuAlphaOmegaEpsilon/CirDeVec
If you already downloaded the CirDeVec repository, maybe some time ago, you might want to update it. You can use the command below.
# If you aren't already inside the CirDeVec repository folder
$ cd CirDeVec
# Update the repository
$ git pull origin master
Here is a list of extra-tools needed for certain purposes; a list of commands to install the tools on Ubuntu/Debian systems is also given down below:
- Build-essential (Linux only): a collection of tools to build C and C++ projects.
sudo apt-get install build-essential
- : it automates the download of both, the repository itself and the library needed for benchmarking.
sudo apt-get install git
- : used to create makefiles and such in an automated fashion.
sudo apt-get install cmake
- : it generates documentation from source code.
sudo apt-get install doxygen
-
Google Benchmark library: if you wish to benchmark the CirDeVec performance against other data structures, you need to download this.
# If you aren't already inside the CirDeVec repository folder $ cd CirDeVec # Download the dependencies $ git submodule update --init