diff --git a/README.md b/README.md index 96723b4e..b91d1ffe 100644 --- a/README.md +++ b/README.md @@ -2,114 +2,31 @@ This repository provides code for machine learning algorithms for edge devices developed at [Microsoft Research India](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/). -Machine learning models for edge devices need to have a small footprint in terms of storage, prediction latency and energy. One example of a ubiquitous real-world application where such models are desirable is resource-scarce devices and sensors in the Internet of Things (IoT) setting. Making real-time predictions locally on IoT devices without connecting to the cloud requires models that fit in a few kilobytes. +Machine learning models for edge devices need to have a small footprint in terms of storage, prediction latency, and energy. One example of a ubiquitous real-world application where such models are desirable is resource-scarce devices and sensors in the Internet of Things (IoT) setting. Making real-time predictions locally on IoT devices without connecting to the cloud requires models that fit in a few kilobytes. -This repository contains two such algorithms **Bonsai** and **ProtoNN** that shine in this setting. These algorithms can train models for classical supervised learning problems with memory requirements that are orders of magnitude lower than other modern ML algorithms. The trained models can be loaded onto edge devices such as IoT devices/sensors, and used to make fast and accurate predictions completely offline. - -For details, please see our [wiki page](https://github.com/Microsoft/EdgeML/wiki/) and our ICML'17 publications on [Bonsai](publications/Bonsai.pdf) and [ProtoNN](publications/ProtoNN.pdf) algorithms. +This repository contains algorithms that shine in this setting in terms of both model size and compute, namely: + - **Bonsai**: Strong and shallow non-linear tree based classifier. + - **ProtoNN**: **Proto**type based k-nearest neighbors (k**NN**) classifier. + - **EMI-RNN**: Training routine to recover the critical signature from time series data for faster and accurate RNN predictions. + - **Fast(G)RNN**: **F**ast, **A**ccurate, **S**table and **T**iny (**G**ated) RNN cells. -Initial Code Contributors: [Chirag Gupta](https://aigen.github.io/), [Aditya Kusupati](https://adityakusupati.github.io/), [Ashish Kumar](https://ashishkumar1993.github.io/), and [Harsha Simhadri](http://harsha-simhadri.org). +These algorithms can train models for classical supervised learning problems with memory requirements that are orders of magnitude lower than other modern ML algorithms. The trained models can be loaded onto edge devices such as IoT devices/sensors, and used to make fast and accurate predictions completely offline. -We welcome contributions, comments and criticism. For questions, please [email Harsha](mailto:harshasi@microsoft.com). +The tf directrory contains code, examples and scripts for all these algorithms in TensorFlow. The cpp directory has training and inference code for Bonsai and ProtoNN algorithms in C++. Please see install/run instruction in the Readme pages within these directories. + +For details, please see our [wiki page](https://github.com/Microsoft/EdgeML/wiki/) and our ICML'17 publications on [Bonsai](docs/publications/Bonsai.pdf) and [ProtoNN](docs/publications/ProtoNN.pdf) algorithms, NIPS'18 publications on [EMI-RNN](docs/publications/EMI-RNN.pdf) and [Fast(G)RNN](docs/publications/FastGRNN.pdf). + +Core Contributors: + - [Aditya Kusupati](https://adityakusupati.github.io/) + - [Ashish Kumar](https://ashishkumar1993.github.io/) + - [Chirag Gupta](https://aigen.github.io/) + - [Don Dennis](https://dkdennis.xyz) + - [Harsha Vardhan Simhadri](http://harsha-simhadri.org) + +We welcome contributions, comments, and criticism. For questions, please [email Harsha](mailto:harshasi@microsoft.com). [People](https://github.com/Microsoft/EdgeML/wiki/People/) who have contributed to this [project](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/). -### Requirements -* Linux: - * gcc version 5.4. Other gcc versions above 5.0 could also work. - * We developed the code on Ubuntu 16.04LTS. Other linux versions could also work. - * You can either use the Makefile in the root, or cmake via the build directory (see below). - -* Windows 10: - * Visual Studio 2015. Use cmake (see below). - * For Anniversary Update or later, one can use the Windows Subsystem for Linux, and the instructions for Linux build. - -* On both Linux and Windows 10, you need an implementation of BLAS, sparseBLAS and vector math calls. - We link with the implementation provided by the [Intel(R) Math Kernel Library](https://software.intel.com/en-us/mkl). - Please download later versions (2017v3+) of MKL as far as possible. - The code can be made to work with other math libraries with a few modifications. - -### Building using Makefile - -After cloning this repository, set compiler and flags appropriately in `config.mk`. Then execute the following in bash: - -```bash -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:: -make -Bj -``` -Typically, MKL_PATH = /opt/intel/mkl/lib/intel64_lin/, and EDGEML_ROOT is '.'. - -This will build four executables _BonsaiTrain_, _BonsaiPredict_, _ProtoNNTrain_ and _ProtoNNPredict_ in . -Sample data to try these executables is not included in this repository, but instructions to do so are given below. - -### Building using CMake - -For Linux, in the directory: - -```bash -mkdir build -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: -cd build -cmake .. -make -Bj -``` - -For Windows 10, in the directory, modify `CMakeLists.txt` file to change by changing the -line -```set(MKL_ROOT "")``` - -Then, generate Visual Studio 2015 solution using: - -```mkdir build -cd build -cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release .. -``` -Finally, open `EdgeML.sln` in VS2015, build and run. - -For both Linux and Windows10, cmake builds will generate four executables _BonsaiTrain_, _BonsaiPredict_, _ProtoNNTrain_ and _ProtoNNPredict_ in . - -### Download a sample dataset -Follow the bash commands given below to download a sample dataset, USPS10, to the root of the repository. Bonsai and ProtoNN come with sample scripts to run on the usps10 dataset. EDGEML_ROOT is defined in the previous section. - -```bash -cd -mkdir usps10 -cd usps10 -wget http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/usps.bz2 -wget http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/usps.t.bz2 -bzip2 -d usps.bz2 -bzip2 -d usps.t.bz2 -mv usps train.txt -mv usps.t test.txt -mkdir ProtoNNResults -cd -``` -This will create a sample train and test dataset, on which -you can train and test Bonsai and ProtoNN algorithms. As specified, we create an output folder for ProtoNN. Bonsai on the other hand creates its own output folder. -For instructions to actually run the algorithms, see [Bonsai Readme](docs/README_BONSAI_OSS.md) and [ProtoNN Readme](docs/README_PROTONN_OSS.ipynb). - -### Makefile flags -You could change the behavior of the code by setting these flags in `config.mk` and rebuilding with `make -Bj` when building with the default Makefile in . When building with CMake, change these flags in `CMakeLists.txt` in . All these flags can be set for both ProtoNN and Bonsai. -The following are supported currently by both ProtoNN and Bonsai. - - SINGLE/DOUBLE: Single/Double precision floating-point. Single is most often sufficient. Double might help with reproducibility. - ZERO_BASED_IO: Read datasets with 0-based labels and indices instead of the default 1-based. - TIMER: Timer logs. Print running time of various calls. - CONCISE: To be used with TIMER to limit the information printed to those deltas above a threshold. - -The following currently only change the behavior of ProtoNN, but one can write corresponding code for Bonsai. - - LOGGER: Debugging logs. Currently prints min, max and norm of matrices. - LIGHT_LOGGER: Less verbose version of LOGGER. Can be used to track call flow. - XML: Enable training with large sparse datasets with many labels. This is in beta. - VERBOSE: Print additional informative output to stdout. - DUMP: Dump models after each optimization iteration instead of just in the end. - VERIFY: Legacy verification code for comparison with Matlab version. - -Additionally, there is one of two flags that has to be set in the Makefile: - - MKL_PAR_LDFLAGS: Linking with parallel version of MKL. - MKL_SEQ_LDFLAGS: Linking with sequential version of MKL. ### Microsoft Open Source Code of Conduct This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. diff --git a/CMakeLists.txt b/cpp/CMakeLists.txt similarity index 100% rename from CMakeLists.txt rename to cpp/CMakeLists.txt diff --git a/License.txt b/cpp/License.txt similarity index 100% rename from License.txt rename to cpp/License.txt diff --git a/Makefile b/cpp/Makefile similarity index 100% rename from Makefile rename to cpp/Makefile diff --git a/cpp/README.md b/cpp/README.md new file mode 100644 index 00000000..105a2dfe --- /dev/null +++ b/cpp/README.md @@ -0,0 +1,107 @@ +## Edge Machine Learning - C++ Library + +This library consists of two machine learning algortihms **Bonsai** and **ProtoNN** implemented in C++ for speed and scalability. + +### Requirements +* Linux: + * gcc version 5.4. Other gcc versions above 5.0 could also work. + * We developed the code on Ubuntu 16.04LTS. Other linux versions could also work. + * You can either use the Makefile in the root, or cmake via the build directory (see below). + +* Windows 10: + * Visual Studio 2015. Use cmake (see below). + * For Anniversary Update or later, one can use the Windows Subsystem for Linux, and the instructions for Linux build. + +* On both Linux and Windows 10, you need an implementation of BLAS, sparseBLAS and vector math calls. + We link with the implementation provided by the [Intel(R) Math Kernel Library](https://software.intel.com/en-us/mkl). + Please download later versions (2017v3+) of MKL as far as possible. + The code can be made to work with other math libraries with a few modifications. + +### Building using Makefile + +After cloning this repository, set compiler and flags appropriately in `config.mk`. Then execute the following in bash: + +```bash +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:: +make -Bj +``` +Typically, MKL_PATH = /opt/intel/mkl/lib/intel64_lin/, and EDGEML_ROOT is '.'. + +This will build four executables _BonsaiTrain_, _BonsaiPredict_, _ProtoNNTrain_ and _ProtoNNPredict_ in . +Sample data to try these executables is not included in this repository, but instructions to do so are given below. + +### Building using CMake + +For Linux, in the directory: + +```bash +mkdir build +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: +cd build +cmake .. +make -Bj +``` + +For Windows 10, in the directory, modify `CMakeLists.txt` file to change by changing the +line +```set(MKL_ROOT "")``` + +Then, generate Visual Studio 2015 solution using: + +```mkdir build +cd build +cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release .. +``` +Finally, open `EdgeML.sln` in VS2015, build and run. + +For both Linux and Windows10, cmake builds will generate four executables _BonsaiTrain_, _BonsaiPredict_, _ProtoNNTrain_ and _ProtoNNPredict_ in . + +### Download a sample dataset +Follow the bash commands given below to download a sample dataset, USPS10, to the root of the repository. Bonsai and ProtoNN come with sample scripts to run on the usps10 dataset. EDGEML_ROOT is defined in the previous section. + +```bash +cd +mkdir usps10 +cd usps10 +wget http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/usps.bz2 +wget http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/usps.t.bz2 +bzip2 -d usps.bz2 +bzip2 -d usps.t.bz2 +mv usps train.txt +mv usps.t test.txt +mkdir ProtoNNResults +cd +``` +This will create a sample train and test dataset, on which +you can train and test Bonsai and ProtoNN algorithms. As specified, we create an output folder for ProtoNN. Bonsai on the other hand creates its own output folder. +For instructions to actually run the algorithms, see [Bonsai Readme](docs/README_BONSAI_OSS.md) and [ProtoNN Readme](docs/README_PROTONN_OSS.ipynb). + +### Makefile flags +You could change the behavior of the code by setting these flags in `config.mk` and rebuilding with `make -Bj` when building with the default Makefile in . When building with CMake, change these flags in `CMakeLists.txt` in . All these flags can be set for both ProtoNN and Bonsai. +The following are supported currently by both ProtoNN and Bonsai. + + SINGLE/DOUBLE: Single/Double precision floating-point. Single is most often sufficient. Double might help with reproducibility. + ZERO_BASED_IO: Read datasets with 0-based labels and indices instead of the default 1-based. + TIMER: Timer logs. Print running time of various calls. + CONCISE: To be used with TIMER to limit the information printed to those deltas above a threshold. + +The following currently only change the behavior of ProtoNN, but one can write corresponding code for Bonsai. + + LOGGER: Debugging logs. Currently prints min, max and norm of matrices. + LIGHT_LOGGER: Less verbose version of LOGGER. Can be used to track call flow. + XML: Enable training with large sparse datasets with many labels. This is in beta. + VERBOSE: Print additional informative output to stdout. + DUMP: Dump models after each optimization iteration instead of just in the end. + VERIFY: Legacy verification code for comparison with Matlab version. + +Additionally, there is one of two flags that has to be set in the Makefile: + + MKL_PAR_LDFLAGS: Linking with parallel version of MKL. + MKL_SEQ_LDFLAGS: Linking with sequential version of MKL. + +### Microsoft Open Source Code of Conduct +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT license. \ No newline at end of file diff --git a/ThirdPartyNotice.txt b/cpp/ThirdPartyNotice.txt similarity index 100% rename from ThirdPartyNotice.txt rename to cpp/ThirdPartyNotice.txt diff --git a/config.mk b/cpp/config.mk similarity index 100% rename from config.mk rename to cpp/config.mk diff --git a/docs/README_BONSAI_OSS.md b/cpp/docs/README_BONSAI_OSS.md similarity index 96% rename from docs/README_BONSAI_OSS.md rename to cpp/docs/README_BONSAI_OSS.md index b2c66f8f..bf1ae5d4 100644 --- a/docs/README_BONSAI_OSS.md +++ b/cpp/docs/README_BONSAI_OSS.md @@ -1,6 +1,6 @@ # Bonsai -[Bonsai](publications/Bonsai.pdf) is a novel tree based algorithm for efficient prediction on IoT devices – such as those based on the Arduino Uno board having an 8 bit ATmega328P microcontroller operating at 16 MHz with no native floating point support, 2 KB RAM and 32 KB read-only flash. +[Bonsai](../../docs/publications/Bonsai.pdf) is a novel tree based algorithm for efficient prediction on IoT devices – such as those based on the Arduino Uno board having an 8 bit ATmega328P microcontroller operating at 16 MHz with no native floating point support, 2 KB RAM and 32 KB read-only flash. Bonsai maintains prediction accuracy while minimizing model size and prediction costs by: diff --git a/docs/README_BONSAI_TLC.md b/cpp/docs/README_BONSAI_TLC.md similarity index 100% rename from docs/README_BONSAI_TLC.md rename to cpp/docs/README_BONSAI_TLC.md diff --git a/docs/README_PROTONN_OSS.ipynb b/cpp/docs/README_PROTONN_OSS.ipynb similarity index 98% rename from docs/README_PROTONN_OSS.ipynb rename to cpp/docs/README_PROTONN_OSS.ipynb index 07150e17..4f37ff6e 100644 --- a/docs/README_PROTONN_OSS.ipynb +++ b/cpp/docs/README_PROTONN_OSS.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ProtoNN: Compressed and accurate KNN for resource-constrained devices ([paper](publications/ProtoNN.pdf))\n", + "# ProtoNN: Compressed and accurate KNN for resource-constrained devices ([paper](../../docs/publications/ProtoNN.pdf))\n", "ProtoNN is an algorithm developed for binary, multiclass and multilabel supervised learning. ProtoNN models are time and memory efficient and are thus ideal for resource-constrained scenarios like Internet of Things (IoT). \n", "\n", "## Overview of algorithm\n", @@ -123,7 +123,7 @@ "- **-O**: Folder to store output (see output section below). \n", "- **-F**: Input format for data (same as described in training section).\n", "- **-e**: Number of test points.\n", - "- **-b**: [Optional] If unspecified, testing happens for each data-point separately (to simulate a real-world scenario). For faster prediction when prototyping, use the parameter to specify a batch on which prediction happens in one go. \n", + "- **-b**: [Optional] If unspecified, testing happens for each data-point separately (to simulate a real-world scenario). For faster prediction when prototyping, use the parameter to specify a batch on which prediction happens in one go. \n", "\t\n", "\n", "\n", @@ -135,7 +135,6 @@ "\n", "## Interpreting the output\n", "##### Output of ProtoNNTrainer:\n", - "- The following information is printed to **std::cout**: \n", " - The chosen value of $\\gamma$.\n", " - **Training, testing accuracy, and training objective value**, thrice for each iteration, once after optimizing each parameter. For multilabel problems, **prec@1** is output instead. \n", @@ -158,7 +157,6 @@ "\n", "##### Output of ProtoNNPredictor:\n", "On execution, the test accuracy, or precision@1,3,5 will be output to stdout. Additionally, a folder will be created in the output directory that will indicate to the user the list of parameters with which the model model to be tested was trained. In this folder, there will be one file detailedPrediction. This file contains for each test point the true labels of that point as well as the scores of the top 5 predicted labels. \n", - "\n", "## Choosing hyperparameters\n", "##### Model size as a function of hyperparameters\n", @@ -176,7 +174,7 @@ "Suppose each value is a single-precision floating point (4 bytes), then the total space required by ProtoNN is $4\\cdot(S_W + S_B + S_Z)$. This value is computed and output to screen on running ProtoNN. \n", "\n", "##### Pointers on choosing hyperparameters\n", - "Choosing the right hyperparameters may seem to be a daunting task in the beginning but becomes much easier with a little bit of thought. To get an idea of default parameters on some sample datasets, see the ([paper](publications/ProtoNN.pdf)). Few rules of thumb:\n", + "Choosing the right hyperparameters may seem to be a daunting task in the beginning but becomes much easier with a little bit of thought. To get an idea of default parameters on some sample datasets, see the ([paper](../../docs/publications/ProtoNN.pdf)). Few rules of thumb:\n", "- $S_B$ is typically small, and hence $\\lambda_B \\approx 1.0$. \n", "- One can set $m$ to $min(10\\cdot L, 0.01\\cdot numTrainingPoints)$, and $d$ to $15$ for an initial experiment. Typically, you want to cross-validate for $m$ and $d$. \n", "- Depending on $L$ and $D$, $S_W$ or $S_Z$ is the biggest contributors to model size. $\\lambda_W$ and $\\lambda_Z$ can be adjusted accordingly or cross-validated for. \n", @@ -218,7 +216,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.1" + "version": "3.5.5" } }, "nbformat": 4, diff --git a/docs/README_PROTONN_TLC.md b/cpp/docs/README_PROTONN_TLC.md similarity index 100% rename from docs/README_PROTONN_TLC.md rename to cpp/docs/README_PROTONN_TLC.md diff --git a/drivers/Bonsai/CMakeLists.txt b/cpp/drivers/Bonsai/CMakeLists.txt similarity index 100% rename from drivers/Bonsai/CMakeLists.txt rename to cpp/drivers/Bonsai/CMakeLists.txt diff --git a/drivers/Bonsai/ingestTest/BonsaiIngestTest.cpp b/cpp/drivers/Bonsai/ingestTest/BonsaiIngestTest.cpp similarity index 100% rename from drivers/Bonsai/ingestTest/BonsaiIngestTest.cpp rename to cpp/drivers/Bonsai/ingestTest/BonsaiIngestTest.cpp diff --git a/drivers/Bonsai/ingestTest/CMakeLists.txt b/cpp/drivers/Bonsai/ingestTest/CMakeLists.txt similarity index 100% rename from drivers/Bonsai/ingestTest/CMakeLists.txt rename to cpp/drivers/Bonsai/ingestTest/CMakeLists.txt diff --git a/drivers/Bonsai/predictor/BonsaiPredictDriver.cpp b/cpp/drivers/Bonsai/predictor/BonsaiPredictDriver.cpp similarity index 100% rename from drivers/Bonsai/predictor/BonsaiPredictDriver.cpp rename to cpp/drivers/Bonsai/predictor/BonsaiPredictDriver.cpp diff --git a/drivers/Bonsai/predictor/CMakeLists.txt b/cpp/drivers/Bonsai/predictor/CMakeLists.txt similarity index 100% rename from drivers/Bonsai/predictor/CMakeLists.txt rename to cpp/drivers/Bonsai/predictor/CMakeLists.txt diff --git a/drivers/Bonsai/predictor/Makefile b/cpp/drivers/Bonsai/predictor/Makefile similarity index 100% rename from drivers/Bonsai/predictor/Makefile rename to cpp/drivers/Bonsai/predictor/Makefile diff --git a/drivers/Bonsai/trainer/BonsaiLocalDriver.cpp b/cpp/drivers/Bonsai/trainer/BonsaiLocalDriver.cpp similarity index 100% rename from drivers/Bonsai/trainer/BonsaiLocalDriver.cpp rename to cpp/drivers/Bonsai/trainer/BonsaiLocalDriver.cpp diff --git a/drivers/Bonsai/trainer/BonsaiTrainDriver.cpp b/cpp/drivers/Bonsai/trainer/BonsaiTrainDriver.cpp similarity index 100% rename from drivers/Bonsai/trainer/BonsaiTrainDriver.cpp rename to cpp/drivers/Bonsai/trainer/BonsaiTrainDriver.cpp diff --git a/drivers/Bonsai/trainer/CMakeLists.txt b/cpp/drivers/Bonsai/trainer/CMakeLists.txt similarity index 100% rename from drivers/Bonsai/trainer/CMakeLists.txt rename to cpp/drivers/Bonsai/trainer/CMakeLists.txt diff --git a/drivers/Bonsai/trainer/Makefile b/cpp/drivers/Bonsai/trainer/Makefile similarity index 100% rename from drivers/Bonsai/trainer/Makefile rename to cpp/drivers/Bonsai/trainer/Makefile diff --git a/drivers/CMakeLists.txt b/cpp/drivers/CMakeLists.txt similarity index 100% rename from drivers/CMakeLists.txt rename to cpp/drivers/CMakeLists.txt diff --git a/drivers/ProtoNN/CMakeLists.txt b/cpp/drivers/ProtoNN/CMakeLists.txt similarity index 100% rename from drivers/ProtoNN/CMakeLists.txt rename to cpp/drivers/ProtoNN/CMakeLists.txt diff --git a/drivers/ProtoNN/ingestTest/CMakeLists.txt b/cpp/drivers/ProtoNN/ingestTest/CMakeLists.txt similarity index 100% rename from drivers/ProtoNN/ingestTest/CMakeLists.txt rename to cpp/drivers/ProtoNN/ingestTest/CMakeLists.txt diff --git a/drivers/ProtoNN/ingestTest/ProtoNNIngestTest.cpp b/cpp/drivers/ProtoNN/ingestTest/ProtoNNIngestTest.cpp similarity index 100% rename from drivers/ProtoNN/ingestTest/ProtoNNIngestTest.cpp rename to cpp/drivers/ProtoNN/ingestTest/ProtoNNIngestTest.cpp diff --git a/drivers/ProtoNN/predictor/CMakeLists.txt b/cpp/drivers/ProtoNN/predictor/CMakeLists.txt similarity index 100% rename from drivers/ProtoNN/predictor/CMakeLists.txt rename to cpp/drivers/ProtoNN/predictor/CMakeLists.txt diff --git a/drivers/ProtoNN/predictor/Makefile b/cpp/drivers/ProtoNN/predictor/Makefile similarity index 100% rename from drivers/ProtoNN/predictor/Makefile rename to cpp/drivers/ProtoNN/predictor/Makefile diff --git a/drivers/ProtoNN/predictor/ProtoNNPredictDriver.cpp b/cpp/drivers/ProtoNN/predictor/ProtoNNPredictDriver.cpp similarity index 100% rename from drivers/ProtoNN/predictor/ProtoNNPredictDriver.cpp rename to cpp/drivers/ProtoNN/predictor/ProtoNNPredictDriver.cpp diff --git a/drivers/ProtoNN/trainer/CMakeLists.txt b/cpp/drivers/ProtoNN/trainer/CMakeLists.txt similarity index 100% rename from drivers/ProtoNN/trainer/CMakeLists.txt rename to cpp/drivers/ProtoNN/trainer/CMakeLists.txt diff --git a/drivers/ProtoNN/trainer/Makefile b/cpp/drivers/ProtoNN/trainer/Makefile similarity index 100% rename from drivers/ProtoNN/trainer/Makefile rename to cpp/drivers/ProtoNN/trainer/Makefile diff --git a/drivers/ProtoNN/trainer/ProtoNNTrainDriver.cpp b/cpp/drivers/ProtoNN/trainer/ProtoNNTrainDriver.cpp similarity index 100% rename from drivers/ProtoNN/trainer/ProtoNNTrainDriver.cpp rename to cpp/drivers/ProtoNN/trainer/ProtoNNTrainDriver.cpp diff --git a/eigen/.hg_archival.txt b/cpp/eigen/.hg_archival.txt similarity index 100% rename from eigen/.hg_archival.txt rename to cpp/eigen/.hg_archival.txt diff --git a/eigen/.hgeol b/cpp/eigen/.hgeol similarity index 100% rename from eigen/.hgeol rename to cpp/eigen/.hgeol diff --git a/eigen/.hgignore b/cpp/eigen/.hgignore similarity index 100% rename from eigen/.hgignore rename to cpp/eigen/.hgignore diff --git a/eigen/.hgtags b/cpp/eigen/.hgtags similarity index 100% rename from eigen/.hgtags rename to cpp/eigen/.hgtags diff --git a/eigen/CMakeLists.txt b/cpp/eigen/CMakeLists.txt similarity index 100% rename from eigen/CMakeLists.txt rename to cpp/eigen/CMakeLists.txt diff --git a/eigen/COPYING.BSD b/cpp/eigen/COPYING.BSD similarity index 100% rename from eigen/COPYING.BSD rename to cpp/eigen/COPYING.BSD diff --git a/eigen/COPYING.GPL b/cpp/eigen/COPYING.GPL similarity index 100% rename from eigen/COPYING.GPL rename to cpp/eigen/COPYING.GPL diff --git a/eigen/COPYING.LGPL b/cpp/eigen/COPYING.LGPL similarity index 100% rename from eigen/COPYING.LGPL rename to cpp/eigen/COPYING.LGPL diff --git a/eigen/COPYING.MINPACK b/cpp/eigen/COPYING.MINPACK similarity index 100% rename from eigen/COPYING.MINPACK rename to cpp/eigen/COPYING.MINPACK diff --git a/eigen/COPYING.MPL2 b/cpp/eigen/COPYING.MPL2 similarity index 100% rename from eigen/COPYING.MPL2 rename to cpp/eigen/COPYING.MPL2 diff --git a/eigen/COPYING.README b/cpp/eigen/COPYING.README similarity index 100% rename from eigen/COPYING.README rename to cpp/eigen/COPYING.README diff --git a/eigen/CTestConfig.cmake b/cpp/eigen/CTestConfig.cmake similarity index 100% rename from eigen/CTestConfig.cmake rename to cpp/eigen/CTestConfig.cmake diff --git a/eigen/CTestCustom.cmake.in b/cpp/eigen/CTestCustom.cmake.in similarity index 100% rename from eigen/CTestCustom.cmake.in rename to cpp/eigen/CTestCustom.cmake.in diff --git a/eigen/Eigen/CMakeLists.txt b/cpp/eigen/Eigen/CMakeLists.txt similarity index 100% rename from eigen/Eigen/CMakeLists.txt rename to cpp/eigen/Eigen/CMakeLists.txt diff --git a/eigen/Eigen/Cholesky b/cpp/eigen/Eigen/Cholesky similarity index 100% rename from eigen/Eigen/Cholesky rename to cpp/eigen/Eigen/Cholesky diff --git a/eigen/Eigen/CholmodSupport b/cpp/eigen/Eigen/CholmodSupport similarity index 100% rename from eigen/Eigen/CholmodSupport rename to cpp/eigen/Eigen/CholmodSupport diff --git a/eigen/Eigen/Core b/cpp/eigen/Eigen/Core similarity index 100% rename from eigen/Eigen/Core rename to cpp/eigen/Eigen/Core diff --git a/eigen/Eigen/Dense b/cpp/eigen/Eigen/Dense similarity index 100% rename from eigen/Eigen/Dense rename to cpp/eigen/Eigen/Dense diff --git a/eigen/Eigen/Eigen b/cpp/eigen/Eigen/Eigen similarity index 100% rename from eigen/Eigen/Eigen rename to cpp/eigen/Eigen/Eigen diff --git a/eigen/Eigen/Eigenvalues b/cpp/eigen/Eigen/Eigenvalues similarity index 100% rename from eigen/Eigen/Eigenvalues rename to cpp/eigen/Eigen/Eigenvalues diff --git a/eigen/Eigen/Geometry b/cpp/eigen/Eigen/Geometry similarity index 100% rename from eigen/Eigen/Geometry rename to cpp/eigen/Eigen/Geometry diff --git a/eigen/Eigen/Householder b/cpp/eigen/Eigen/Householder similarity index 100% rename from eigen/Eigen/Householder rename to cpp/eigen/Eigen/Householder diff --git a/eigen/Eigen/IterativeLinearSolvers b/cpp/eigen/Eigen/IterativeLinearSolvers similarity index 100% rename from eigen/Eigen/IterativeLinearSolvers rename to cpp/eigen/Eigen/IterativeLinearSolvers diff --git a/eigen/Eigen/Jacobi b/cpp/eigen/Eigen/Jacobi similarity index 100% rename from eigen/Eigen/Jacobi rename to cpp/eigen/Eigen/Jacobi diff --git a/eigen/Eigen/LU b/cpp/eigen/Eigen/LU similarity index 100% rename from eigen/Eigen/LU rename to cpp/eigen/Eigen/LU diff --git a/eigen/Eigen/MetisSupport b/cpp/eigen/Eigen/MetisSupport similarity index 100% rename from eigen/Eigen/MetisSupport rename to cpp/eigen/Eigen/MetisSupport diff --git a/eigen/Eigen/OrderingMethods b/cpp/eigen/Eigen/OrderingMethods similarity index 100% rename from eigen/Eigen/OrderingMethods rename to cpp/eigen/Eigen/OrderingMethods diff --git a/eigen/Eigen/PaStiXSupport b/cpp/eigen/Eigen/PaStiXSupport similarity index 100% rename from eigen/Eigen/PaStiXSupport rename to cpp/eigen/Eigen/PaStiXSupport diff --git a/eigen/Eigen/PardisoSupport b/cpp/eigen/Eigen/PardisoSupport similarity index 100% rename from eigen/Eigen/PardisoSupport rename to cpp/eigen/Eigen/PardisoSupport diff --git a/eigen/Eigen/QR b/cpp/eigen/Eigen/QR similarity index 100% rename from eigen/Eigen/QR rename to cpp/eigen/Eigen/QR diff --git a/eigen/Eigen/QtAlignedMalloc b/cpp/eigen/Eigen/QtAlignedMalloc similarity index 100% rename from eigen/Eigen/QtAlignedMalloc rename to cpp/eigen/Eigen/QtAlignedMalloc diff --git a/eigen/Eigen/SPQRSupport b/cpp/eigen/Eigen/SPQRSupport similarity index 100% rename from eigen/Eigen/SPQRSupport rename to cpp/eigen/Eigen/SPQRSupport diff --git a/eigen/Eigen/SVD b/cpp/eigen/Eigen/SVD similarity index 100% rename from eigen/Eigen/SVD rename to cpp/eigen/Eigen/SVD diff --git a/eigen/Eigen/Sparse b/cpp/eigen/Eigen/Sparse similarity index 100% rename from eigen/Eigen/Sparse rename to cpp/eigen/Eigen/Sparse diff --git a/eigen/Eigen/SparseCholesky b/cpp/eigen/Eigen/SparseCholesky similarity index 100% rename from eigen/Eigen/SparseCholesky rename to cpp/eigen/Eigen/SparseCholesky diff --git a/eigen/Eigen/SparseCore b/cpp/eigen/Eigen/SparseCore similarity index 100% rename from eigen/Eigen/SparseCore rename to cpp/eigen/Eigen/SparseCore diff --git a/eigen/Eigen/SparseLU b/cpp/eigen/Eigen/SparseLU similarity index 100% rename from eigen/Eigen/SparseLU rename to cpp/eigen/Eigen/SparseLU diff --git a/eigen/Eigen/SparseQR b/cpp/eigen/Eigen/SparseQR similarity index 100% rename from eigen/Eigen/SparseQR rename to cpp/eigen/Eigen/SparseQR diff --git a/eigen/Eigen/StdDeque b/cpp/eigen/Eigen/StdDeque similarity index 100% rename from eigen/Eigen/StdDeque rename to cpp/eigen/Eigen/StdDeque diff --git a/eigen/Eigen/StdList b/cpp/eigen/Eigen/StdList similarity index 100% rename from eigen/Eigen/StdList rename to cpp/eigen/Eigen/StdList diff --git a/eigen/Eigen/StdVector b/cpp/eigen/Eigen/StdVector similarity index 100% rename from eigen/Eigen/StdVector rename to cpp/eigen/Eigen/StdVector diff --git a/eigen/Eigen/SuperLUSupport b/cpp/eigen/Eigen/SuperLUSupport similarity index 100% rename from eigen/Eigen/SuperLUSupport rename to cpp/eigen/Eigen/SuperLUSupport diff --git a/eigen/Eigen/UmfPackSupport b/cpp/eigen/Eigen/UmfPackSupport similarity index 100% rename from eigen/Eigen/UmfPackSupport rename to cpp/eigen/Eigen/UmfPackSupport diff --git a/eigen/Eigen/src/Cholesky/LDLT.h b/cpp/eigen/Eigen/src/Cholesky/LDLT.h similarity index 100% rename from eigen/Eigen/src/Cholesky/LDLT.h rename to cpp/eigen/Eigen/src/Cholesky/LDLT.h diff --git a/eigen/Eigen/src/Cholesky/LLT.h b/cpp/eigen/Eigen/src/Cholesky/LLT.h similarity index 100% rename from eigen/Eigen/src/Cholesky/LLT.h rename to cpp/eigen/Eigen/src/Cholesky/LLT.h diff --git a/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h b/cpp/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/Cholesky/LLT_LAPACKE.h rename to cpp/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h diff --git a/eigen/Eigen/src/CholmodSupport/CholmodSupport.h b/cpp/eigen/Eigen/src/CholmodSupport/CholmodSupport.h similarity index 100% rename from eigen/Eigen/src/CholmodSupport/CholmodSupport.h rename to cpp/eigen/Eigen/src/CholmodSupport/CholmodSupport.h diff --git a/eigen/Eigen/src/Core/Array.h b/cpp/eigen/Eigen/src/Core/Array.h similarity index 100% rename from eigen/Eigen/src/Core/Array.h rename to cpp/eigen/Eigen/src/Core/Array.h diff --git a/eigen/Eigen/src/Core/ArrayBase.h b/cpp/eigen/Eigen/src/Core/ArrayBase.h similarity index 100% rename from eigen/Eigen/src/Core/ArrayBase.h rename to cpp/eigen/Eigen/src/Core/ArrayBase.h diff --git a/eigen/Eigen/src/Core/ArrayWrapper.h b/cpp/eigen/Eigen/src/Core/ArrayWrapper.h similarity index 100% rename from eigen/Eigen/src/Core/ArrayWrapper.h rename to cpp/eigen/Eigen/src/Core/ArrayWrapper.h diff --git a/eigen/Eigen/src/Core/Assign.h b/cpp/eigen/Eigen/src/Core/Assign.h similarity index 100% rename from eigen/Eigen/src/Core/Assign.h rename to cpp/eigen/Eigen/src/Core/Assign.h diff --git a/eigen/Eigen/src/Core/AssignEvaluator.h b/cpp/eigen/Eigen/src/Core/AssignEvaluator.h similarity index 100% rename from eigen/Eigen/src/Core/AssignEvaluator.h rename to cpp/eigen/Eigen/src/Core/AssignEvaluator.h diff --git a/eigen/Eigen/src/Core/Assign_MKL.h b/cpp/eigen/Eigen/src/Core/Assign_MKL.h similarity index 100% rename from eigen/Eigen/src/Core/Assign_MKL.h rename to cpp/eigen/Eigen/src/Core/Assign_MKL.h diff --git a/eigen/Eigen/src/Core/BandMatrix.h b/cpp/eigen/Eigen/src/Core/BandMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/BandMatrix.h rename to cpp/eigen/Eigen/src/Core/BandMatrix.h diff --git a/eigen/Eigen/src/Core/Block.h b/cpp/eigen/Eigen/src/Core/Block.h similarity index 100% rename from eigen/Eigen/src/Core/Block.h rename to cpp/eigen/Eigen/src/Core/Block.h diff --git a/eigen/Eigen/src/Core/BooleanRedux.h b/cpp/eigen/Eigen/src/Core/BooleanRedux.h similarity index 100% rename from eigen/Eigen/src/Core/BooleanRedux.h rename to cpp/eigen/Eigen/src/Core/BooleanRedux.h diff --git a/eigen/Eigen/src/Core/CommaInitializer.h b/cpp/eigen/Eigen/src/Core/CommaInitializer.h similarity index 100% rename from eigen/Eigen/src/Core/CommaInitializer.h rename to cpp/eigen/Eigen/src/Core/CommaInitializer.h diff --git a/eigen/Eigen/src/Core/ConditionEstimator.h b/cpp/eigen/Eigen/src/Core/ConditionEstimator.h similarity index 100% rename from eigen/Eigen/src/Core/ConditionEstimator.h rename to cpp/eigen/Eigen/src/Core/ConditionEstimator.h diff --git a/eigen/Eigen/src/Core/CoreEvaluators.h b/cpp/eigen/Eigen/src/Core/CoreEvaluators.h similarity index 100% rename from eigen/Eigen/src/Core/CoreEvaluators.h rename to cpp/eigen/Eigen/src/Core/CoreEvaluators.h diff --git a/eigen/Eigen/src/Core/CoreIterators.h b/cpp/eigen/Eigen/src/Core/CoreIterators.h similarity index 100% rename from eigen/Eigen/src/Core/CoreIterators.h rename to cpp/eigen/Eigen/src/Core/CoreIterators.h diff --git a/eigen/Eigen/src/Core/CwiseBinaryOp.h b/cpp/eigen/Eigen/src/Core/CwiseBinaryOp.h similarity index 100% rename from eigen/Eigen/src/Core/CwiseBinaryOp.h rename to cpp/eigen/Eigen/src/Core/CwiseBinaryOp.h diff --git a/eigen/Eigen/src/Core/CwiseNullaryOp.h b/cpp/eigen/Eigen/src/Core/CwiseNullaryOp.h similarity index 100% rename from eigen/Eigen/src/Core/CwiseNullaryOp.h rename to cpp/eigen/Eigen/src/Core/CwiseNullaryOp.h diff --git a/eigen/Eigen/src/Core/CwiseTernaryOp.h b/cpp/eigen/Eigen/src/Core/CwiseTernaryOp.h similarity index 100% rename from eigen/Eigen/src/Core/CwiseTernaryOp.h rename to cpp/eigen/Eigen/src/Core/CwiseTernaryOp.h diff --git a/eigen/Eigen/src/Core/CwiseUnaryOp.h b/cpp/eigen/Eigen/src/Core/CwiseUnaryOp.h similarity index 100% rename from eigen/Eigen/src/Core/CwiseUnaryOp.h rename to cpp/eigen/Eigen/src/Core/CwiseUnaryOp.h diff --git a/eigen/Eigen/src/Core/CwiseUnaryView.h b/cpp/eigen/Eigen/src/Core/CwiseUnaryView.h similarity index 100% rename from eigen/Eigen/src/Core/CwiseUnaryView.h rename to cpp/eigen/Eigen/src/Core/CwiseUnaryView.h diff --git a/eigen/Eigen/src/Core/DenseBase.h b/cpp/eigen/Eigen/src/Core/DenseBase.h similarity index 100% rename from eigen/Eigen/src/Core/DenseBase.h rename to cpp/eigen/Eigen/src/Core/DenseBase.h diff --git a/eigen/Eigen/src/Core/DenseCoeffsBase.h b/cpp/eigen/Eigen/src/Core/DenseCoeffsBase.h similarity index 100% rename from eigen/Eigen/src/Core/DenseCoeffsBase.h rename to cpp/eigen/Eigen/src/Core/DenseCoeffsBase.h diff --git a/eigen/Eigen/src/Core/DenseStorage.h b/cpp/eigen/Eigen/src/Core/DenseStorage.h similarity index 100% rename from eigen/Eigen/src/Core/DenseStorage.h rename to cpp/eigen/Eigen/src/Core/DenseStorage.h diff --git a/eigen/Eigen/src/Core/Diagonal.h b/cpp/eigen/Eigen/src/Core/Diagonal.h similarity index 100% rename from eigen/Eigen/src/Core/Diagonal.h rename to cpp/eigen/Eigen/src/Core/Diagonal.h diff --git a/eigen/Eigen/src/Core/DiagonalMatrix.h b/cpp/eigen/Eigen/src/Core/DiagonalMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/DiagonalMatrix.h rename to cpp/eigen/Eigen/src/Core/DiagonalMatrix.h diff --git a/eigen/Eigen/src/Core/DiagonalProduct.h b/cpp/eigen/Eigen/src/Core/DiagonalProduct.h similarity index 100% rename from eigen/Eigen/src/Core/DiagonalProduct.h rename to cpp/eigen/Eigen/src/Core/DiagonalProduct.h diff --git a/eigen/Eigen/src/Core/Dot.h b/cpp/eigen/Eigen/src/Core/Dot.h similarity index 100% rename from eigen/Eigen/src/Core/Dot.h rename to cpp/eigen/Eigen/src/Core/Dot.h diff --git a/eigen/Eigen/src/Core/EigenBase.h b/cpp/eigen/Eigen/src/Core/EigenBase.h similarity index 100% rename from eigen/Eigen/src/Core/EigenBase.h rename to cpp/eigen/Eigen/src/Core/EigenBase.h diff --git a/eigen/Eigen/src/Core/ForceAlignedAccess.h b/cpp/eigen/Eigen/src/Core/ForceAlignedAccess.h similarity index 100% rename from eigen/Eigen/src/Core/ForceAlignedAccess.h rename to cpp/eigen/Eigen/src/Core/ForceAlignedAccess.h diff --git a/eigen/Eigen/src/Core/Fuzzy.h b/cpp/eigen/Eigen/src/Core/Fuzzy.h similarity index 100% rename from eigen/Eigen/src/Core/Fuzzy.h rename to cpp/eigen/Eigen/src/Core/Fuzzy.h diff --git a/eigen/Eigen/src/Core/GeneralProduct.h b/cpp/eigen/Eigen/src/Core/GeneralProduct.h similarity index 100% rename from eigen/Eigen/src/Core/GeneralProduct.h rename to cpp/eigen/Eigen/src/Core/GeneralProduct.h diff --git a/eigen/Eigen/src/Core/GenericPacketMath.h b/cpp/eigen/Eigen/src/Core/GenericPacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/GenericPacketMath.h rename to cpp/eigen/Eigen/src/Core/GenericPacketMath.h diff --git a/eigen/Eigen/src/Core/GlobalFunctions.h b/cpp/eigen/Eigen/src/Core/GlobalFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/GlobalFunctions.h rename to cpp/eigen/Eigen/src/Core/GlobalFunctions.h diff --git a/eigen/Eigen/src/Core/IO.h b/cpp/eigen/Eigen/src/Core/IO.h similarity index 100% rename from eigen/Eigen/src/Core/IO.h rename to cpp/eigen/Eigen/src/Core/IO.h diff --git a/eigen/Eigen/src/Core/Inverse.h b/cpp/eigen/Eigen/src/Core/Inverse.h similarity index 100% rename from eigen/Eigen/src/Core/Inverse.h rename to cpp/eigen/Eigen/src/Core/Inverse.h diff --git a/eigen/Eigen/src/Core/Map.h b/cpp/eigen/Eigen/src/Core/Map.h similarity index 100% rename from eigen/Eigen/src/Core/Map.h rename to cpp/eigen/Eigen/src/Core/Map.h diff --git a/eigen/Eigen/src/Core/MapBase.h b/cpp/eigen/Eigen/src/Core/MapBase.h similarity index 100% rename from eigen/Eigen/src/Core/MapBase.h rename to cpp/eigen/Eigen/src/Core/MapBase.h diff --git a/eigen/Eigen/src/Core/MathFunctions.h b/cpp/eigen/Eigen/src/Core/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/MathFunctions.h diff --git a/eigen/Eigen/src/Core/MathFunctionsImpl.h b/cpp/eigen/Eigen/src/Core/MathFunctionsImpl.h similarity index 100% rename from eigen/Eigen/src/Core/MathFunctionsImpl.h rename to cpp/eigen/Eigen/src/Core/MathFunctionsImpl.h diff --git a/eigen/Eigen/src/Core/Matrix.h b/cpp/eigen/Eigen/src/Core/Matrix.h similarity index 100% rename from eigen/Eigen/src/Core/Matrix.h rename to cpp/eigen/Eigen/src/Core/Matrix.h diff --git a/eigen/Eigen/src/Core/MatrixBase.h b/cpp/eigen/Eigen/src/Core/MatrixBase.h similarity index 100% rename from eigen/Eigen/src/Core/MatrixBase.h rename to cpp/eigen/Eigen/src/Core/MatrixBase.h diff --git a/eigen/Eigen/src/Core/NestByValue.h b/cpp/eigen/Eigen/src/Core/NestByValue.h similarity index 100% rename from eigen/Eigen/src/Core/NestByValue.h rename to cpp/eigen/Eigen/src/Core/NestByValue.h diff --git a/eigen/Eigen/src/Core/NoAlias.h b/cpp/eigen/Eigen/src/Core/NoAlias.h similarity index 100% rename from eigen/Eigen/src/Core/NoAlias.h rename to cpp/eigen/Eigen/src/Core/NoAlias.h diff --git a/eigen/Eigen/src/Core/NumTraits.h b/cpp/eigen/Eigen/src/Core/NumTraits.h similarity index 100% rename from eigen/Eigen/src/Core/NumTraits.h rename to cpp/eigen/Eigen/src/Core/NumTraits.h diff --git a/eigen/Eigen/src/Core/PermutationMatrix.h b/cpp/eigen/Eigen/src/Core/PermutationMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/PermutationMatrix.h rename to cpp/eigen/Eigen/src/Core/PermutationMatrix.h diff --git a/eigen/Eigen/src/Core/PlainObjectBase.h b/cpp/eigen/Eigen/src/Core/PlainObjectBase.h similarity index 100% rename from eigen/Eigen/src/Core/PlainObjectBase.h rename to cpp/eigen/Eigen/src/Core/PlainObjectBase.h diff --git a/eigen/Eigen/src/Core/Product.h b/cpp/eigen/Eigen/src/Core/Product.h similarity index 100% rename from eigen/Eigen/src/Core/Product.h rename to cpp/eigen/Eigen/src/Core/Product.h diff --git a/eigen/Eigen/src/Core/ProductEvaluators.h b/cpp/eigen/Eigen/src/Core/ProductEvaluators.h similarity index 100% rename from eigen/Eigen/src/Core/ProductEvaluators.h rename to cpp/eigen/Eigen/src/Core/ProductEvaluators.h diff --git a/eigen/Eigen/src/Core/Random.h b/cpp/eigen/Eigen/src/Core/Random.h similarity index 100% rename from eigen/Eigen/src/Core/Random.h rename to cpp/eigen/Eigen/src/Core/Random.h diff --git a/eigen/Eigen/src/Core/Redux.h b/cpp/eigen/Eigen/src/Core/Redux.h similarity index 100% rename from eigen/Eigen/src/Core/Redux.h rename to cpp/eigen/Eigen/src/Core/Redux.h diff --git a/eigen/Eigen/src/Core/Ref.h b/cpp/eigen/Eigen/src/Core/Ref.h similarity index 100% rename from eigen/Eigen/src/Core/Ref.h rename to cpp/eigen/Eigen/src/Core/Ref.h diff --git a/eigen/Eigen/src/Core/Replicate.h b/cpp/eigen/Eigen/src/Core/Replicate.h similarity index 100% rename from eigen/Eigen/src/Core/Replicate.h rename to cpp/eigen/Eigen/src/Core/Replicate.h diff --git a/eigen/Eigen/src/Core/ReturnByValue.h b/cpp/eigen/Eigen/src/Core/ReturnByValue.h similarity index 100% rename from eigen/Eigen/src/Core/ReturnByValue.h rename to cpp/eigen/Eigen/src/Core/ReturnByValue.h diff --git a/eigen/Eigen/src/Core/Reverse.h b/cpp/eigen/Eigen/src/Core/Reverse.h similarity index 100% rename from eigen/Eigen/src/Core/Reverse.h rename to cpp/eigen/Eigen/src/Core/Reverse.h diff --git a/eigen/Eigen/src/Core/Select.h b/cpp/eigen/Eigen/src/Core/Select.h similarity index 100% rename from eigen/Eigen/src/Core/Select.h rename to cpp/eigen/Eigen/src/Core/Select.h diff --git a/eigen/Eigen/src/Core/SelfAdjointView.h b/cpp/eigen/Eigen/src/Core/SelfAdjointView.h similarity index 100% rename from eigen/Eigen/src/Core/SelfAdjointView.h rename to cpp/eigen/Eigen/src/Core/SelfAdjointView.h diff --git a/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h b/cpp/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h similarity index 100% rename from eigen/Eigen/src/Core/SelfCwiseBinaryOp.h rename to cpp/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h diff --git a/eigen/Eigen/src/Core/Solve.h b/cpp/eigen/Eigen/src/Core/Solve.h similarity index 100% rename from eigen/Eigen/src/Core/Solve.h rename to cpp/eigen/Eigen/src/Core/Solve.h diff --git a/eigen/Eigen/src/Core/SolveTriangular.h b/cpp/eigen/Eigen/src/Core/SolveTriangular.h similarity index 100% rename from eigen/Eigen/src/Core/SolveTriangular.h rename to cpp/eigen/Eigen/src/Core/SolveTriangular.h diff --git a/eigen/Eigen/src/Core/SolverBase.h b/cpp/eigen/Eigen/src/Core/SolverBase.h similarity index 100% rename from eigen/Eigen/src/Core/SolverBase.h rename to cpp/eigen/Eigen/src/Core/SolverBase.h diff --git a/eigen/Eigen/src/Core/StableNorm.h b/cpp/eigen/Eigen/src/Core/StableNorm.h similarity index 100% rename from eigen/Eigen/src/Core/StableNorm.h rename to cpp/eigen/Eigen/src/Core/StableNorm.h diff --git a/eigen/Eigen/src/Core/Stride.h b/cpp/eigen/Eigen/src/Core/Stride.h similarity index 100% rename from eigen/Eigen/src/Core/Stride.h rename to cpp/eigen/Eigen/src/Core/Stride.h diff --git a/eigen/Eigen/src/Core/Swap.h b/cpp/eigen/Eigen/src/Core/Swap.h similarity index 100% rename from eigen/Eigen/src/Core/Swap.h rename to cpp/eigen/Eigen/src/Core/Swap.h diff --git a/eigen/Eigen/src/Core/Transpose.h b/cpp/eigen/Eigen/src/Core/Transpose.h similarity index 100% rename from eigen/Eigen/src/Core/Transpose.h rename to cpp/eigen/Eigen/src/Core/Transpose.h diff --git a/eigen/Eigen/src/Core/Transpositions.h b/cpp/eigen/Eigen/src/Core/Transpositions.h similarity index 100% rename from eigen/Eigen/src/Core/Transpositions.h rename to cpp/eigen/Eigen/src/Core/Transpositions.h diff --git a/eigen/Eigen/src/Core/TriangularMatrix.h b/cpp/eigen/Eigen/src/Core/TriangularMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/TriangularMatrix.h rename to cpp/eigen/Eigen/src/Core/TriangularMatrix.h diff --git a/eigen/Eigen/src/Core/VectorBlock.h b/cpp/eigen/Eigen/src/Core/VectorBlock.h similarity index 100% rename from eigen/Eigen/src/Core/VectorBlock.h rename to cpp/eigen/Eigen/src/Core/VectorBlock.h diff --git a/eigen/Eigen/src/Core/VectorwiseOp.h b/cpp/eigen/Eigen/src/Core/VectorwiseOp.h similarity index 100% rename from eigen/Eigen/src/Core/VectorwiseOp.h rename to cpp/eigen/Eigen/src/Core/VectorwiseOp.h diff --git a/eigen/Eigen/src/Core/Visitor.h b/cpp/eigen/Eigen/src/Core/Visitor.h similarity index 100% rename from eigen/Eigen/src/Core/Visitor.h rename to cpp/eigen/Eigen/src/Core/Visitor.h diff --git a/eigen/Eigen/src/Core/arch/AVX/Complex.h b/cpp/eigen/Eigen/src/Core/arch/AVX/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/AVX/Complex.h diff --git a/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/AVX/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/AVX/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/AVX/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h b/cpp/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX/TypeCasting.h rename to cpp/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h diff --git a/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AVX512/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/AltiVec/Complex.h b/cpp/eigen/Eigen/src/Core/arch/AltiVec/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AltiVec/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/AltiVec/Complex.h diff --git a/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/Complex.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/Complex.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/Half.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/Half.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/Half.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/Half.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h diff --git a/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h b/cpp/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h similarity index 100% rename from eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h rename to cpp/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h diff --git a/eigen/Eigen/src/Core/arch/Default/Settings.h b/cpp/eigen/Eigen/src/Core/arch/Default/Settings.h similarity index 100% rename from eigen/Eigen/src/Core/arch/Default/Settings.h rename to cpp/eigen/Eigen/src/Core/arch/Default/Settings.h diff --git a/eigen/Eigen/src/Core/arch/NEON/Complex.h b/cpp/eigen/Eigen/src/Core/arch/NEON/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/NEON/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/NEON/Complex.h diff --git a/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/NEON/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/NEON/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/NEON/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/NEON/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/NEON/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/SSE/Complex.h b/cpp/eigen/Eigen/src/Core/arch/SSE/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/SSE/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/SSE/Complex.h diff --git a/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/SSE/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/SSE/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/SSE/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/SSE/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/SSE/PacketMath.h diff --git a/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h b/cpp/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h similarity index 100% rename from eigen/Eigen/src/Core/arch/SSE/TypeCasting.h rename to cpp/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h diff --git a/eigen/Eigen/src/Core/arch/ZVector/Complex.h b/cpp/eigen/Eigen/src/Core/arch/ZVector/Complex.h similarity index 100% rename from eigen/Eigen/src/Core/arch/ZVector/Complex.h rename to cpp/eigen/Eigen/src/Core/arch/ZVector/Complex.h diff --git a/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h b/cpp/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h similarity index 100% rename from eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h rename to cpp/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h diff --git a/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h b/cpp/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h similarity index 100% rename from eigen/Eigen/src/Core/arch/ZVector/PacketMath.h rename to cpp/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h diff --git a/eigen/Eigen/src/Core/functors/AssignmentFunctors.h b/cpp/eigen/Eigen/src/Core/functors/AssignmentFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/AssignmentFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/AssignmentFunctors.h diff --git a/eigen/Eigen/src/Core/functors/BinaryFunctors.h b/cpp/eigen/Eigen/src/Core/functors/BinaryFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/BinaryFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/BinaryFunctors.h diff --git a/eigen/Eigen/src/Core/functors/NullaryFunctors.h b/cpp/eigen/Eigen/src/Core/functors/NullaryFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/NullaryFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/NullaryFunctors.h diff --git a/eigen/Eigen/src/Core/functors/StlFunctors.h b/cpp/eigen/Eigen/src/Core/functors/StlFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/StlFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/StlFunctors.h diff --git a/eigen/Eigen/src/Core/functors/TernaryFunctors.h b/cpp/eigen/Eigen/src/Core/functors/TernaryFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/TernaryFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/TernaryFunctors.h diff --git a/eigen/Eigen/src/Core/functors/UnaryFunctors.h b/cpp/eigen/Eigen/src/Core/functors/UnaryFunctors.h similarity index 100% rename from eigen/Eigen/src/Core/functors/UnaryFunctors.h rename to cpp/eigen/Eigen/src/Core/functors/UnaryFunctors.h diff --git a/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/cpp/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h rename to cpp/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixVector.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixVector.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixVector.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixVector.h diff --git a/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h b/cpp/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h diff --git a/eigen/Eigen/src/Core/products/Parallelizer.h b/cpp/eigen/Eigen/src/Core/products/Parallelizer.h similarity index 100% rename from eigen/Eigen/src/Core/products/Parallelizer.h rename to cpp/eigen/Eigen/src/Core/products/Parallelizer.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointProduct.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointProduct.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointProduct.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointProduct.h diff --git a/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h b/cpp/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h similarity index 100% rename from eigen/Eigen/src/Core/products/SelfadjointRank2Update.h rename to cpp/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h diff --git a/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h b/cpp/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h rename to cpp/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h diff --git a/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h b/cpp/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h diff --git a/eigen/Eigen/src/Core/products/TriangularMatrixVector.h b/cpp/eigen/Eigen/src/Core/products/TriangularMatrixVector.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularMatrixVector.h rename to cpp/eigen/Eigen/src/Core/products/TriangularMatrixVector.h diff --git a/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h b/cpp/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h diff --git a/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h b/cpp/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularSolverMatrix.h rename to cpp/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h diff --git a/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h b/cpp/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h rename to cpp/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h diff --git a/eigen/Eigen/src/Core/products/TriangularSolverVector.h b/cpp/eigen/Eigen/src/Core/products/TriangularSolverVector.h similarity index 100% rename from eigen/Eigen/src/Core/products/TriangularSolverVector.h rename to cpp/eigen/Eigen/src/Core/products/TriangularSolverVector.h diff --git a/eigen/Eigen/src/Core/util/BlasUtil.h b/cpp/eigen/Eigen/src/Core/util/BlasUtil.h similarity index 100% rename from eigen/Eigen/src/Core/util/BlasUtil.h rename to cpp/eigen/Eigen/src/Core/util/BlasUtil.h diff --git a/eigen/Eigen/src/Core/util/Constants.h b/cpp/eigen/Eigen/src/Core/util/Constants.h similarity index 100% rename from eigen/Eigen/src/Core/util/Constants.h rename to cpp/eigen/Eigen/src/Core/util/Constants.h diff --git a/eigen/Eigen/src/Core/util/DisableStupidWarnings.h b/cpp/eigen/Eigen/src/Core/util/DisableStupidWarnings.h similarity index 100% rename from eigen/Eigen/src/Core/util/DisableStupidWarnings.h rename to cpp/eigen/Eigen/src/Core/util/DisableStupidWarnings.h diff --git a/eigen/Eigen/src/Core/util/ForwardDeclarations.h b/cpp/eigen/Eigen/src/Core/util/ForwardDeclarations.h similarity index 100% rename from eigen/Eigen/src/Core/util/ForwardDeclarations.h rename to cpp/eigen/Eigen/src/Core/util/ForwardDeclarations.h diff --git a/eigen/Eigen/src/Core/util/MKL_support.h b/cpp/eigen/Eigen/src/Core/util/MKL_support.h similarity index 100% rename from eigen/Eigen/src/Core/util/MKL_support.h rename to cpp/eigen/Eigen/src/Core/util/MKL_support.h diff --git a/eigen/Eigen/src/Core/util/Macros.h b/cpp/eigen/Eigen/src/Core/util/Macros.h similarity index 100% rename from eigen/Eigen/src/Core/util/Macros.h rename to cpp/eigen/Eigen/src/Core/util/Macros.h diff --git a/eigen/Eigen/src/Core/util/Memory.h b/cpp/eigen/Eigen/src/Core/util/Memory.h similarity index 100% rename from eigen/Eigen/src/Core/util/Memory.h rename to cpp/eigen/Eigen/src/Core/util/Memory.h diff --git a/eigen/Eigen/src/Core/util/Meta.h b/cpp/eigen/Eigen/src/Core/util/Meta.h similarity index 100% rename from eigen/Eigen/src/Core/util/Meta.h rename to cpp/eigen/Eigen/src/Core/util/Meta.h diff --git a/eigen/Eigen/src/Core/util/NonMPL2.h b/cpp/eigen/Eigen/src/Core/util/NonMPL2.h similarity index 100% rename from eigen/Eigen/src/Core/util/NonMPL2.h rename to cpp/eigen/Eigen/src/Core/util/NonMPL2.h diff --git a/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h b/cpp/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h similarity index 100% rename from eigen/Eigen/src/Core/util/ReenableStupidWarnings.h rename to cpp/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h diff --git a/eigen/Eigen/src/Core/util/StaticAssert.h b/cpp/eigen/Eigen/src/Core/util/StaticAssert.h similarity index 100% rename from eigen/Eigen/src/Core/util/StaticAssert.h rename to cpp/eigen/Eigen/src/Core/util/StaticAssert.h diff --git a/eigen/Eigen/src/Core/util/XprHelper.h b/cpp/eigen/Eigen/src/Core/util/XprHelper.h similarity index 100% rename from eigen/Eigen/src/Core/util/XprHelper.h rename to cpp/eigen/Eigen/src/Core/util/XprHelper.h diff --git a/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/cpp/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h rename to cpp/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h diff --git a/eigen/Eigen/src/Eigenvalues/ComplexSchur.h b/cpp/eigen/Eigen/src/Eigenvalues/ComplexSchur.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/ComplexSchur.h rename to cpp/eigen/Eigen/src/Eigenvalues/ComplexSchur.h diff --git a/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h b/cpp/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h rename to cpp/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h diff --git a/eigen/Eigen/src/Eigenvalues/EigenSolver.h b/cpp/eigen/Eigen/src/Eigenvalues/EigenSolver.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/EigenSolver.h rename to cpp/eigen/Eigen/src/Eigenvalues/EigenSolver.h diff --git a/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/cpp/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h rename to cpp/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h diff --git a/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/cpp/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h rename to cpp/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h diff --git a/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/cpp/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h rename to cpp/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h diff --git a/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/cpp/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h rename to cpp/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h diff --git a/eigen/Eigen/src/Eigenvalues/RealQZ.h b/cpp/eigen/Eigen/src/Eigenvalues/RealQZ.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/RealQZ.h rename to cpp/eigen/Eigen/src/Eigenvalues/RealQZ.h diff --git a/eigen/Eigen/src/Eigenvalues/RealSchur.h b/cpp/eigen/Eigen/src/Eigenvalues/RealSchur.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/RealSchur.h rename to cpp/eigen/Eigen/src/Eigenvalues/RealSchur.h diff --git a/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h b/cpp/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h rename to cpp/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h diff --git a/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/cpp/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h rename to cpp/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h diff --git a/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h b/cpp/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h rename to cpp/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h diff --git a/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h b/cpp/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h similarity index 100% rename from eigen/Eigen/src/Eigenvalues/Tridiagonalization.h rename to cpp/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h diff --git a/eigen/Eigen/src/Geometry/AlignedBox.h b/cpp/eigen/Eigen/src/Geometry/AlignedBox.h similarity index 100% rename from eigen/Eigen/src/Geometry/AlignedBox.h rename to cpp/eigen/Eigen/src/Geometry/AlignedBox.h diff --git a/eigen/Eigen/src/Geometry/AngleAxis.h b/cpp/eigen/Eigen/src/Geometry/AngleAxis.h similarity index 100% rename from eigen/Eigen/src/Geometry/AngleAxis.h rename to cpp/eigen/Eigen/src/Geometry/AngleAxis.h diff --git a/eigen/Eigen/src/Geometry/EulerAngles.h b/cpp/eigen/Eigen/src/Geometry/EulerAngles.h similarity index 100% rename from eigen/Eigen/src/Geometry/EulerAngles.h rename to cpp/eigen/Eigen/src/Geometry/EulerAngles.h diff --git a/eigen/Eigen/src/Geometry/Homogeneous.h b/cpp/eigen/Eigen/src/Geometry/Homogeneous.h similarity index 100% rename from eigen/Eigen/src/Geometry/Homogeneous.h rename to cpp/eigen/Eigen/src/Geometry/Homogeneous.h diff --git a/eigen/Eigen/src/Geometry/Hyperplane.h b/cpp/eigen/Eigen/src/Geometry/Hyperplane.h similarity index 100% rename from eigen/Eigen/src/Geometry/Hyperplane.h rename to cpp/eigen/Eigen/src/Geometry/Hyperplane.h diff --git a/eigen/Eigen/src/Geometry/OrthoMethods.h b/cpp/eigen/Eigen/src/Geometry/OrthoMethods.h similarity index 100% rename from eigen/Eigen/src/Geometry/OrthoMethods.h rename to cpp/eigen/Eigen/src/Geometry/OrthoMethods.h diff --git a/eigen/Eigen/src/Geometry/ParametrizedLine.h b/cpp/eigen/Eigen/src/Geometry/ParametrizedLine.h similarity index 100% rename from eigen/Eigen/src/Geometry/ParametrizedLine.h rename to cpp/eigen/Eigen/src/Geometry/ParametrizedLine.h diff --git a/eigen/Eigen/src/Geometry/Quaternion.h b/cpp/eigen/Eigen/src/Geometry/Quaternion.h similarity index 100% rename from eigen/Eigen/src/Geometry/Quaternion.h rename to cpp/eigen/Eigen/src/Geometry/Quaternion.h diff --git a/eigen/Eigen/src/Geometry/Rotation2D.h b/cpp/eigen/Eigen/src/Geometry/Rotation2D.h similarity index 100% rename from eigen/Eigen/src/Geometry/Rotation2D.h rename to cpp/eigen/Eigen/src/Geometry/Rotation2D.h diff --git a/eigen/Eigen/src/Geometry/RotationBase.h b/cpp/eigen/Eigen/src/Geometry/RotationBase.h similarity index 100% rename from eigen/Eigen/src/Geometry/RotationBase.h rename to cpp/eigen/Eigen/src/Geometry/RotationBase.h diff --git a/eigen/Eigen/src/Geometry/Scaling.h b/cpp/eigen/Eigen/src/Geometry/Scaling.h similarity index 100% rename from eigen/Eigen/src/Geometry/Scaling.h rename to cpp/eigen/Eigen/src/Geometry/Scaling.h diff --git a/eigen/Eigen/src/Geometry/Transform.h b/cpp/eigen/Eigen/src/Geometry/Transform.h similarity index 100% rename from eigen/Eigen/src/Geometry/Transform.h rename to cpp/eigen/Eigen/src/Geometry/Transform.h diff --git a/eigen/Eigen/src/Geometry/Translation.h b/cpp/eigen/Eigen/src/Geometry/Translation.h similarity index 100% rename from eigen/Eigen/src/Geometry/Translation.h rename to cpp/eigen/Eigen/src/Geometry/Translation.h diff --git a/eigen/Eigen/src/Geometry/Umeyama.h b/cpp/eigen/Eigen/src/Geometry/Umeyama.h similarity index 100% rename from eigen/Eigen/src/Geometry/Umeyama.h rename to cpp/eigen/Eigen/src/Geometry/Umeyama.h diff --git a/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h b/cpp/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h similarity index 100% rename from eigen/Eigen/src/Geometry/arch/Geometry_SSE.h rename to cpp/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h diff --git a/eigen/Eigen/src/Householder/BlockHouseholder.h b/cpp/eigen/Eigen/src/Householder/BlockHouseholder.h similarity index 100% rename from eigen/Eigen/src/Householder/BlockHouseholder.h rename to cpp/eigen/Eigen/src/Householder/BlockHouseholder.h diff --git a/eigen/Eigen/src/Householder/Householder.h b/cpp/eigen/Eigen/src/Householder/Householder.h similarity index 100% rename from eigen/Eigen/src/Householder/Householder.h rename to cpp/eigen/Eigen/src/Householder/Householder.h diff --git a/eigen/Eigen/src/Householder/HouseholderSequence.h b/cpp/eigen/Eigen/src/Householder/HouseholderSequence.h similarity index 100% rename from eigen/Eigen/src/Householder/HouseholderSequence.h rename to cpp/eigen/Eigen/src/Householder/HouseholderSequence.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h diff --git a/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h b/cpp/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h similarity index 100% rename from eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h rename to cpp/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h diff --git a/eigen/Eigen/src/Jacobi/Jacobi.h b/cpp/eigen/Eigen/src/Jacobi/Jacobi.h similarity index 100% rename from eigen/Eigen/src/Jacobi/Jacobi.h rename to cpp/eigen/Eigen/src/Jacobi/Jacobi.h diff --git a/eigen/Eigen/src/LU/Determinant.h b/cpp/eigen/Eigen/src/LU/Determinant.h similarity index 100% rename from eigen/Eigen/src/LU/Determinant.h rename to cpp/eigen/Eigen/src/LU/Determinant.h diff --git a/eigen/Eigen/src/LU/FullPivLU.h b/cpp/eigen/Eigen/src/LU/FullPivLU.h similarity index 100% rename from eigen/Eigen/src/LU/FullPivLU.h rename to cpp/eigen/Eigen/src/LU/FullPivLU.h diff --git a/eigen/Eigen/src/LU/InverseImpl.h b/cpp/eigen/Eigen/src/LU/InverseImpl.h similarity index 100% rename from eigen/Eigen/src/LU/InverseImpl.h rename to cpp/eigen/Eigen/src/LU/InverseImpl.h diff --git a/eigen/Eigen/src/LU/PartialPivLU.h b/cpp/eigen/Eigen/src/LU/PartialPivLU.h similarity index 100% rename from eigen/Eigen/src/LU/PartialPivLU.h rename to cpp/eigen/Eigen/src/LU/PartialPivLU.h diff --git a/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h b/cpp/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h rename to cpp/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h diff --git a/eigen/Eigen/src/LU/arch/Inverse_SSE.h b/cpp/eigen/Eigen/src/LU/arch/Inverse_SSE.h similarity index 100% rename from eigen/Eigen/src/LU/arch/Inverse_SSE.h rename to cpp/eigen/Eigen/src/LU/arch/Inverse_SSE.h diff --git a/eigen/Eigen/src/MetisSupport/MetisSupport.h b/cpp/eigen/Eigen/src/MetisSupport/MetisSupport.h similarity index 100% rename from eigen/Eigen/src/MetisSupport/MetisSupport.h rename to cpp/eigen/Eigen/src/MetisSupport/MetisSupport.h diff --git a/eigen/Eigen/src/OrderingMethods/Amd.h b/cpp/eigen/Eigen/src/OrderingMethods/Amd.h similarity index 100% rename from eigen/Eigen/src/OrderingMethods/Amd.h rename to cpp/eigen/Eigen/src/OrderingMethods/Amd.h diff --git a/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h b/cpp/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h similarity index 100% rename from eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h rename to cpp/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h diff --git a/eigen/Eigen/src/OrderingMethods/Ordering.h b/cpp/eigen/Eigen/src/OrderingMethods/Ordering.h similarity index 100% rename from eigen/Eigen/src/OrderingMethods/Ordering.h rename to cpp/eigen/Eigen/src/OrderingMethods/Ordering.h diff --git a/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h b/cpp/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h similarity index 100% rename from eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h rename to cpp/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h diff --git a/eigen/Eigen/src/PardisoSupport/PardisoSupport.h b/cpp/eigen/Eigen/src/PardisoSupport/PardisoSupport.h similarity index 100% rename from eigen/Eigen/src/PardisoSupport/PardisoSupport.h rename to cpp/eigen/Eigen/src/PardisoSupport/PardisoSupport.h diff --git a/eigen/Eigen/src/QR/ColPivHouseholderQR.h b/cpp/eigen/Eigen/src/QR/ColPivHouseholderQR.h similarity index 100% rename from eigen/Eigen/src/QR/ColPivHouseholderQR.h rename to cpp/eigen/Eigen/src/QR/ColPivHouseholderQR.h diff --git a/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h b/cpp/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h rename to cpp/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h diff --git a/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h b/cpp/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h similarity index 100% rename from eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h rename to cpp/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h diff --git a/eigen/Eigen/src/QR/FullPivHouseholderQR.h b/cpp/eigen/Eigen/src/QR/FullPivHouseholderQR.h similarity index 100% rename from eigen/Eigen/src/QR/FullPivHouseholderQR.h rename to cpp/eigen/Eigen/src/QR/FullPivHouseholderQR.h diff --git a/eigen/Eigen/src/QR/HouseholderQR.h b/cpp/eigen/Eigen/src/QR/HouseholderQR.h similarity index 100% rename from eigen/Eigen/src/QR/HouseholderQR.h rename to cpp/eigen/Eigen/src/QR/HouseholderQR.h diff --git a/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h b/cpp/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h rename to cpp/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h diff --git a/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/cpp/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h similarity index 100% rename from eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h rename to cpp/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h diff --git a/eigen/Eigen/src/SVD/BDCSVD.h b/cpp/eigen/Eigen/src/SVD/BDCSVD.h similarity index 100% rename from eigen/Eigen/src/SVD/BDCSVD.h rename to cpp/eigen/Eigen/src/SVD/BDCSVD.h diff --git a/eigen/Eigen/src/SVD/JacobiSVD.h b/cpp/eigen/Eigen/src/SVD/JacobiSVD.h similarity index 100% rename from eigen/Eigen/src/SVD/JacobiSVD.h rename to cpp/eigen/Eigen/src/SVD/JacobiSVD.h diff --git a/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h b/cpp/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h similarity index 100% rename from eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h rename to cpp/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h diff --git a/eigen/Eigen/src/SVD/SVDBase.h b/cpp/eigen/Eigen/src/SVD/SVDBase.h similarity index 100% rename from eigen/Eigen/src/SVD/SVDBase.h rename to cpp/eigen/Eigen/src/SVD/SVDBase.h diff --git a/eigen/Eigen/src/SVD/UpperBidiagonalization.h b/cpp/eigen/Eigen/src/SVD/UpperBidiagonalization.h similarity index 100% rename from eigen/Eigen/src/SVD/UpperBidiagonalization.h rename to cpp/eigen/Eigen/src/SVD/UpperBidiagonalization.h diff --git a/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h b/cpp/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h similarity index 100% rename from eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h rename to cpp/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h diff --git a/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/cpp/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h similarity index 100% rename from eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h rename to cpp/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h diff --git a/eigen/Eigen/src/SparseCore/AmbiVector.h b/cpp/eigen/Eigen/src/SparseCore/AmbiVector.h similarity index 100% rename from eigen/Eigen/src/SparseCore/AmbiVector.h rename to cpp/eigen/Eigen/src/SparseCore/AmbiVector.h diff --git a/eigen/Eigen/src/SparseCore/CompressedStorage.h b/cpp/eigen/Eigen/src/SparseCore/CompressedStorage.h similarity index 100% rename from eigen/Eigen/src/SparseCore/CompressedStorage.h rename to cpp/eigen/Eigen/src/SparseCore/CompressedStorage.h diff --git a/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/cpp/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h similarity index 100% rename from eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h rename to cpp/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h diff --git a/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h b/cpp/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h similarity index 100% rename from eigen/Eigen/src/SparseCore/MappedSparseMatrix.h rename to cpp/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h diff --git a/eigen/Eigen/src/SparseCore/SparseAssign.h b/cpp/eigen/Eigen/src/SparseCore/SparseAssign.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseAssign.h rename to cpp/eigen/Eigen/src/SparseCore/SparseAssign.h diff --git a/eigen/Eigen/src/SparseCore/SparseBlock.h b/cpp/eigen/Eigen/src/SparseCore/SparseBlock.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseBlock.h rename to cpp/eigen/Eigen/src/SparseCore/SparseBlock.h diff --git a/eigen/Eigen/src/SparseCore/SparseColEtree.h b/cpp/eigen/Eigen/src/SparseCore/SparseColEtree.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseColEtree.h rename to cpp/eigen/Eigen/src/SparseCore/SparseColEtree.h diff --git a/eigen/Eigen/src/SparseCore/SparseCompressedBase.h b/cpp/eigen/Eigen/src/SparseCore/SparseCompressedBase.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseCompressedBase.h rename to cpp/eigen/Eigen/src/SparseCore/SparseCompressedBase.h diff --git a/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/cpp/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h rename to cpp/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h diff --git a/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/cpp/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h rename to cpp/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h diff --git a/eigen/Eigen/src/SparseCore/SparseDenseProduct.h b/cpp/eigen/Eigen/src/SparseCore/SparseDenseProduct.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseDenseProduct.h rename to cpp/eigen/Eigen/src/SparseCore/SparseDenseProduct.h diff --git a/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h b/cpp/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h rename to cpp/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h diff --git a/eigen/Eigen/src/SparseCore/SparseDot.h b/cpp/eigen/Eigen/src/SparseCore/SparseDot.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseDot.h rename to cpp/eigen/Eigen/src/SparseCore/SparseDot.h diff --git a/eigen/Eigen/src/SparseCore/SparseFuzzy.h b/cpp/eigen/Eigen/src/SparseCore/SparseFuzzy.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseFuzzy.h rename to cpp/eigen/Eigen/src/SparseCore/SparseFuzzy.h diff --git a/eigen/Eigen/src/SparseCore/SparseMap.h b/cpp/eigen/Eigen/src/SparseCore/SparseMap.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseMap.h rename to cpp/eigen/Eigen/src/SparseCore/SparseMap.h diff --git a/eigen/Eigen/src/SparseCore/SparseMatrix.h b/cpp/eigen/Eigen/src/SparseCore/SparseMatrix.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseMatrix.h rename to cpp/eigen/Eigen/src/SparseCore/SparseMatrix.h diff --git a/eigen/Eigen/src/SparseCore/SparseMatrixBase.h b/cpp/eigen/Eigen/src/SparseCore/SparseMatrixBase.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseMatrixBase.h rename to cpp/eigen/Eigen/src/SparseCore/SparseMatrixBase.h diff --git a/eigen/Eigen/src/SparseCore/SparsePermutation.h b/cpp/eigen/Eigen/src/SparseCore/SparsePermutation.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparsePermutation.h rename to cpp/eigen/Eigen/src/SparseCore/SparsePermutation.h diff --git a/eigen/Eigen/src/SparseCore/SparseProduct.h b/cpp/eigen/Eigen/src/SparseCore/SparseProduct.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseProduct.h rename to cpp/eigen/Eigen/src/SparseCore/SparseProduct.h diff --git a/eigen/Eigen/src/SparseCore/SparseRedux.h b/cpp/eigen/Eigen/src/SparseCore/SparseRedux.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseRedux.h rename to cpp/eigen/Eigen/src/SparseCore/SparseRedux.h diff --git a/eigen/Eigen/src/SparseCore/SparseRef.h b/cpp/eigen/Eigen/src/SparseCore/SparseRef.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseRef.h rename to cpp/eigen/Eigen/src/SparseCore/SparseRef.h diff --git a/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h b/cpp/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h rename to cpp/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h diff --git a/eigen/Eigen/src/SparseCore/SparseSolverBase.h b/cpp/eigen/Eigen/src/SparseCore/SparseSolverBase.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseSolverBase.h rename to cpp/eigen/Eigen/src/SparseCore/SparseSolverBase.h diff --git a/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/cpp/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h rename to cpp/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h diff --git a/eigen/Eigen/src/SparseCore/SparseTranspose.h b/cpp/eigen/Eigen/src/SparseCore/SparseTranspose.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseTranspose.h rename to cpp/eigen/Eigen/src/SparseCore/SparseTranspose.h diff --git a/eigen/Eigen/src/SparseCore/SparseTriangularView.h b/cpp/eigen/Eigen/src/SparseCore/SparseTriangularView.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseTriangularView.h rename to cpp/eigen/Eigen/src/SparseCore/SparseTriangularView.h diff --git a/eigen/Eigen/src/SparseCore/SparseUtil.h b/cpp/eigen/Eigen/src/SparseCore/SparseUtil.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseUtil.h rename to cpp/eigen/Eigen/src/SparseCore/SparseUtil.h diff --git a/eigen/Eigen/src/SparseCore/SparseVector.h b/cpp/eigen/Eigen/src/SparseCore/SparseVector.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseVector.h rename to cpp/eigen/Eigen/src/SparseCore/SparseVector.h diff --git a/eigen/Eigen/src/SparseCore/SparseView.h b/cpp/eigen/Eigen/src/SparseCore/SparseView.h similarity index 100% rename from eigen/Eigen/src/SparseCore/SparseView.h rename to cpp/eigen/Eigen/src/SparseCore/SparseView.h diff --git a/eigen/Eigen/src/SparseCore/TriangularSolver.h b/cpp/eigen/Eigen/src/SparseCore/TriangularSolver.h similarity index 100% rename from eigen/Eigen/src/SparseCore/TriangularSolver.h rename to cpp/eigen/Eigen/src/SparseCore/TriangularSolver.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU.h diff --git a/eigen/Eigen/src/SparseLU/SparseLUImpl.h b/cpp/eigen/Eigen/src/SparseLU/SparseLUImpl.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLUImpl.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLUImpl.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_Memory.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_Memory.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_Memory.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_Memory.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_Structs.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_Structs.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_Structs.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_Structs.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_Utils.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_Utils.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_Utils.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_Utils.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_pivotL.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_pruneL.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h diff --git a/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h b/cpp/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h similarity index 100% rename from eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h rename to cpp/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h diff --git a/eigen/Eigen/src/SparseQR/SparseQR.h b/cpp/eigen/Eigen/src/SparseQR/SparseQR.h similarity index 100% rename from eigen/Eigen/src/SparseQR/SparseQR.h rename to cpp/eigen/Eigen/src/SparseQR/SparseQR.h diff --git a/eigen/Eigen/src/StlSupport/StdDeque.h b/cpp/eigen/Eigen/src/StlSupport/StdDeque.h similarity index 100% rename from eigen/Eigen/src/StlSupport/StdDeque.h rename to cpp/eigen/Eigen/src/StlSupport/StdDeque.h diff --git a/eigen/Eigen/src/StlSupport/StdList.h b/cpp/eigen/Eigen/src/StlSupport/StdList.h similarity index 100% rename from eigen/Eigen/src/StlSupport/StdList.h rename to cpp/eigen/Eigen/src/StlSupport/StdList.h diff --git a/eigen/Eigen/src/StlSupport/StdVector.h b/cpp/eigen/Eigen/src/StlSupport/StdVector.h similarity index 100% rename from eigen/Eigen/src/StlSupport/StdVector.h rename to cpp/eigen/Eigen/src/StlSupport/StdVector.h diff --git a/eigen/Eigen/src/StlSupport/details.h b/cpp/eigen/Eigen/src/StlSupport/details.h similarity index 100% rename from eigen/Eigen/src/StlSupport/details.h rename to cpp/eigen/Eigen/src/StlSupport/details.h diff --git a/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h b/cpp/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h similarity index 100% rename from eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h rename to cpp/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h diff --git a/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h b/cpp/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h similarity index 100% rename from eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h rename to cpp/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h diff --git a/eigen/Eigen/src/misc/Image.h b/cpp/eigen/Eigen/src/misc/Image.h similarity index 100% rename from eigen/Eigen/src/misc/Image.h rename to cpp/eigen/Eigen/src/misc/Image.h diff --git a/eigen/Eigen/src/misc/Kernel.h b/cpp/eigen/Eigen/src/misc/Kernel.h similarity index 100% rename from eigen/Eigen/src/misc/Kernel.h rename to cpp/eigen/Eigen/src/misc/Kernel.h diff --git a/eigen/Eigen/src/misc/RealSvd2x2.h b/cpp/eigen/Eigen/src/misc/RealSvd2x2.h similarity index 100% rename from eigen/Eigen/src/misc/RealSvd2x2.h rename to cpp/eigen/Eigen/src/misc/RealSvd2x2.h diff --git a/eigen/Eigen/src/misc/blas.h b/cpp/eigen/Eigen/src/misc/blas.h similarity index 100% rename from eigen/Eigen/src/misc/blas.h rename to cpp/eigen/Eigen/src/misc/blas.h diff --git a/eigen/Eigen/src/misc/lapack.h b/cpp/eigen/Eigen/src/misc/lapack.h similarity index 100% rename from eigen/Eigen/src/misc/lapack.h rename to cpp/eigen/Eigen/src/misc/lapack.h diff --git a/eigen/Eigen/src/misc/lapacke.h b/cpp/eigen/Eigen/src/misc/lapacke.h similarity index 100% rename from eigen/Eigen/src/misc/lapacke.h rename to cpp/eigen/Eigen/src/misc/lapacke.h diff --git a/eigen/Eigen/src/misc/lapacke_mangling.h b/cpp/eigen/Eigen/src/misc/lapacke_mangling.h similarity index 100% rename from eigen/Eigen/src/misc/lapacke_mangling.h rename to cpp/eigen/Eigen/src/misc/lapacke_mangling.h diff --git a/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/cpp/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h rename to cpp/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h diff --git a/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/cpp/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h rename to cpp/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h diff --git a/eigen/Eigen/src/plugins/BlockMethods.h b/cpp/eigen/Eigen/src/plugins/BlockMethods.h similarity index 100% rename from eigen/Eigen/src/plugins/BlockMethods.h rename to cpp/eigen/Eigen/src/plugins/BlockMethods.h diff --git a/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h b/cpp/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h rename to cpp/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h diff --git a/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h b/cpp/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h rename to cpp/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h diff --git a/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/cpp/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h rename to cpp/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h diff --git a/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/cpp/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h similarity index 100% rename from eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h rename to cpp/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h diff --git a/eigen/INSTALL b/cpp/eigen/INSTALL similarity index 100% rename from eigen/INSTALL rename to cpp/eigen/INSTALL diff --git a/eigen/README.md b/cpp/eigen/README.md similarity index 100% rename from eigen/README.md rename to cpp/eigen/README.md diff --git a/eigen/bench/BenchSparseUtil.h b/cpp/eigen/bench/BenchSparseUtil.h similarity index 100% rename from eigen/bench/BenchSparseUtil.h rename to cpp/eigen/bench/BenchSparseUtil.h diff --git a/eigen/bench/BenchTimer.h b/cpp/eigen/bench/BenchTimer.h similarity index 100% rename from eigen/bench/BenchTimer.h rename to cpp/eigen/bench/BenchTimer.h diff --git a/eigen/bench/BenchUtil.h b/cpp/eigen/bench/BenchUtil.h similarity index 100% rename from eigen/bench/BenchUtil.h rename to cpp/eigen/bench/BenchUtil.h diff --git a/eigen/bench/README.txt b/cpp/eigen/bench/README.txt similarity index 100% rename from eigen/bench/README.txt rename to cpp/eigen/bench/README.txt diff --git a/eigen/bench/analyze-blocking-sizes.cpp b/cpp/eigen/bench/analyze-blocking-sizes.cpp similarity index 100% rename from eigen/bench/analyze-blocking-sizes.cpp rename to cpp/eigen/bench/analyze-blocking-sizes.cpp diff --git a/eigen/bench/basicbench.cxxlist b/cpp/eigen/bench/basicbench.cxxlist similarity index 100% rename from eigen/bench/basicbench.cxxlist rename to cpp/eigen/bench/basicbench.cxxlist diff --git a/eigen/bench/basicbenchmark.cpp b/cpp/eigen/bench/basicbenchmark.cpp similarity index 100% rename from eigen/bench/basicbenchmark.cpp rename to cpp/eigen/bench/basicbenchmark.cpp diff --git a/eigen/bench/basicbenchmark.h b/cpp/eigen/bench/basicbenchmark.h similarity index 100% rename from eigen/bench/basicbenchmark.h rename to cpp/eigen/bench/basicbenchmark.h diff --git a/eigen/bench/benchBlasGemm.cpp b/cpp/eigen/bench/benchBlasGemm.cpp similarity index 100% rename from eigen/bench/benchBlasGemm.cpp rename to cpp/eigen/bench/benchBlasGemm.cpp diff --git a/eigen/bench/benchCholesky.cpp b/cpp/eigen/bench/benchCholesky.cpp similarity index 100% rename from eigen/bench/benchCholesky.cpp rename to cpp/eigen/bench/benchCholesky.cpp diff --git a/eigen/bench/benchEigenSolver.cpp b/cpp/eigen/bench/benchEigenSolver.cpp similarity index 100% rename from eigen/bench/benchEigenSolver.cpp rename to cpp/eigen/bench/benchEigenSolver.cpp diff --git a/eigen/bench/benchFFT.cpp b/cpp/eigen/bench/benchFFT.cpp similarity index 100% rename from eigen/bench/benchFFT.cpp rename to cpp/eigen/bench/benchFFT.cpp diff --git a/eigen/bench/benchGeometry.cpp b/cpp/eigen/bench/benchGeometry.cpp similarity index 100% rename from eigen/bench/benchGeometry.cpp rename to cpp/eigen/bench/benchGeometry.cpp diff --git a/eigen/bench/benchVecAdd.cpp b/cpp/eigen/bench/benchVecAdd.cpp similarity index 100% rename from eigen/bench/benchVecAdd.cpp rename to cpp/eigen/bench/benchVecAdd.cpp diff --git a/eigen/bench/bench_gemm.cpp b/cpp/eigen/bench/bench_gemm.cpp similarity index 100% rename from eigen/bench/bench_gemm.cpp rename to cpp/eigen/bench/bench_gemm.cpp diff --git a/eigen/bench/bench_multi_compilers.sh b/cpp/eigen/bench/bench_multi_compilers.sh similarity index 100% rename from eigen/bench/bench_multi_compilers.sh rename to cpp/eigen/bench/bench_multi_compilers.sh diff --git a/eigen/bench/bench_norm.cpp b/cpp/eigen/bench/bench_norm.cpp similarity index 100% rename from eigen/bench/bench_norm.cpp rename to cpp/eigen/bench/bench_norm.cpp diff --git a/eigen/bench/bench_reverse.cpp b/cpp/eigen/bench/bench_reverse.cpp similarity index 100% rename from eigen/bench/bench_reverse.cpp rename to cpp/eigen/bench/bench_reverse.cpp diff --git a/eigen/bench/bench_sum.cpp b/cpp/eigen/bench/bench_sum.cpp similarity index 100% rename from eigen/bench/bench_sum.cpp rename to cpp/eigen/bench/bench_sum.cpp diff --git a/eigen/bench/bench_unrolling b/cpp/eigen/bench/bench_unrolling similarity index 100% rename from eigen/bench/bench_unrolling rename to cpp/eigen/bench/bench_unrolling diff --git a/eigen/bench/benchmark-blocking-sizes.cpp b/cpp/eigen/bench/benchmark-blocking-sizes.cpp similarity index 100% rename from eigen/bench/benchmark-blocking-sizes.cpp rename to cpp/eigen/bench/benchmark-blocking-sizes.cpp diff --git a/eigen/bench/benchmark.cpp b/cpp/eigen/bench/benchmark.cpp similarity index 100% rename from eigen/bench/benchmark.cpp rename to cpp/eigen/bench/benchmark.cpp diff --git a/eigen/bench/benchmarkSlice.cpp b/cpp/eigen/bench/benchmarkSlice.cpp similarity index 100% rename from eigen/bench/benchmarkSlice.cpp rename to cpp/eigen/bench/benchmarkSlice.cpp diff --git a/eigen/bench/benchmarkX.cpp b/cpp/eigen/bench/benchmarkX.cpp similarity index 100% rename from eigen/bench/benchmarkX.cpp rename to cpp/eigen/bench/benchmarkX.cpp diff --git a/eigen/bench/benchmarkXcwise.cpp b/cpp/eigen/bench/benchmarkXcwise.cpp similarity index 100% rename from eigen/bench/benchmarkXcwise.cpp rename to cpp/eigen/bench/benchmarkXcwise.cpp diff --git a/eigen/bench/benchmark_suite b/cpp/eigen/bench/benchmark_suite similarity index 100% rename from eigen/bench/benchmark_suite rename to cpp/eigen/bench/benchmark_suite diff --git a/eigen/bench/btl/CMakeLists.txt b/cpp/eigen/bench/btl/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/CMakeLists.txt rename to cpp/eigen/bench/btl/CMakeLists.txt diff --git a/eigen/bench/btl/COPYING b/cpp/eigen/bench/btl/COPYING similarity index 100% rename from eigen/bench/btl/COPYING rename to cpp/eigen/bench/btl/COPYING diff --git a/eigen/bench/btl/README b/cpp/eigen/bench/btl/README similarity index 100% rename from eigen/bench/btl/README rename to cpp/eigen/bench/btl/README diff --git a/eigen/bench/btl/actions/action_aat_product.hh b/cpp/eigen/bench/btl/actions/action_aat_product.hh similarity index 100% rename from eigen/bench/btl/actions/action_aat_product.hh rename to cpp/eigen/bench/btl/actions/action_aat_product.hh diff --git a/eigen/bench/btl/actions/action_ata_product.hh b/cpp/eigen/bench/btl/actions/action_ata_product.hh similarity index 100% rename from eigen/bench/btl/actions/action_ata_product.hh rename to cpp/eigen/bench/btl/actions/action_ata_product.hh diff --git a/eigen/bench/btl/actions/action_atv_product.hh b/cpp/eigen/bench/btl/actions/action_atv_product.hh similarity index 100% rename from eigen/bench/btl/actions/action_atv_product.hh rename to cpp/eigen/bench/btl/actions/action_atv_product.hh diff --git a/eigen/bench/btl/actions/action_axpby.hh b/cpp/eigen/bench/btl/actions/action_axpby.hh similarity index 100% rename from eigen/bench/btl/actions/action_axpby.hh rename to cpp/eigen/bench/btl/actions/action_axpby.hh diff --git a/eigen/bench/btl/actions/action_axpy.hh b/cpp/eigen/bench/btl/actions/action_axpy.hh similarity index 100% rename from eigen/bench/btl/actions/action_axpy.hh rename to cpp/eigen/bench/btl/actions/action_axpy.hh diff --git a/eigen/bench/btl/actions/action_cholesky.hh b/cpp/eigen/bench/btl/actions/action_cholesky.hh similarity index 100% rename from eigen/bench/btl/actions/action_cholesky.hh rename to cpp/eigen/bench/btl/actions/action_cholesky.hh diff --git a/eigen/bench/btl/actions/action_ger.hh b/cpp/eigen/bench/btl/actions/action_ger.hh similarity index 100% rename from eigen/bench/btl/actions/action_ger.hh rename to cpp/eigen/bench/btl/actions/action_ger.hh diff --git a/eigen/bench/btl/actions/action_hessenberg.hh b/cpp/eigen/bench/btl/actions/action_hessenberg.hh similarity index 100% rename from eigen/bench/btl/actions/action_hessenberg.hh rename to cpp/eigen/bench/btl/actions/action_hessenberg.hh diff --git a/eigen/bench/btl/actions/action_lu_decomp.hh b/cpp/eigen/bench/btl/actions/action_lu_decomp.hh similarity index 100% rename from eigen/bench/btl/actions/action_lu_decomp.hh rename to cpp/eigen/bench/btl/actions/action_lu_decomp.hh diff --git a/eigen/bench/btl/actions/action_lu_solve.hh b/cpp/eigen/bench/btl/actions/action_lu_solve.hh similarity index 100% rename from eigen/bench/btl/actions/action_lu_solve.hh rename to cpp/eigen/bench/btl/actions/action_lu_solve.hh diff --git a/eigen/bench/btl/actions/action_matrix_matrix_product.hh b/cpp/eigen/bench/btl/actions/action_matrix_matrix_product.hh similarity index 100% rename from eigen/bench/btl/actions/action_matrix_matrix_product.hh rename to cpp/eigen/bench/btl/actions/action_matrix_matrix_product.hh diff --git a/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh b/cpp/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh similarity index 100% rename from eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh rename to cpp/eigen/bench/btl/actions/action_matrix_matrix_product_bis.hh diff --git a/eigen/bench/btl/actions/action_matrix_vector_product.hh b/cpp/eigen/bench/btl/actions/action_matrix_vector_product.hh similarity index 100% rename from eigen/bench/btl/actions/action_matrix_vector_product.hh rename to cpp/eigen/bench/btl/actions/action_matrix_vector_product.hh diff --git a/eigen/bench/btl/actions/action_partial_lu.hh b/cpp/eigen/bench/btl/actions/action_partial_lu.hh similarity index 100% rename from eigen/bench/btl/actions/action_partial_lu.hh rename to cpp/eigen/bench/btl/actions/action_partial_lu.hh diff --git a/eigen/bench/btl/actions/action_rot.hh b/cpp/eigen/bench/btl/actions/action_rot.hh similarity index 100% rename from eigen/bench/btl/actions/action_rot.hh rename to cpp/eigen/bench/btl/actions/action_rot.hh diff --git a/eigen/bench/btl/actions/action_symv.hh b/cpp/eigen/bench/btl/actions/action_symv.hh similarity index 100% rename from eigen/bench/btl/actions/action_symv.hh rename to cpp/eigen/bench/btl/actions/action_symv.hh diff --git a/eigen/bench/btl/actions/action_syr2.hh b/cpp/eigen/bench/btl/actions/action_syr2.hh similarity index 100% rename from eigen/bench/btl/actions/action_syr2.hh rename to cpp/eigen/bench/btl/actions/action_syr2.hh diff --git a/eigen/bench/btl/actions/action_trisolve.hh b/cpp/eigen/bench/btl/actions/action_trisolve.hh similarity index 100% rename from eigen/bench/btl/actions/action_trisolve.hh rename to cpp/eigen/bench/btl/actions/action_trisolve.hh diff --git a/eigen/bench/btl/actions/action_trisolve_matrix.hh b/cpp/eigen/bench/btl/actions/action_trisolve_matrix.hh similarity index 100% rename from eigen/bench/btl/actions/action_trisolve_matrix.hh rename to cpp/eigen/bench/btl/actions/action_trisolve_matrix.hh diff --git a/eigen/bench/btl/actions/action_trmm.hh b/cpp/eigen/bench/btl/actions/action_trmm.hh similarity index 100% rename from eigen/bench/btl/actions/action_trmm.hh rename to cpp/eigen/bench/btl/actions/action_trmm.hh diff --git a/eigen/bench/btl/actions/basic_actions.hh b/cpp/eigen/bench/btl/actions/basic_actions.hh similarity index 100% rename from eigen/bench/btl/actions/basic_actions.hh rename to cpp/eigen/bench/btl/actions/basic_actions.hh diff --git a/eigen/bench/btl/cmake/FindACML.cmake b/cpp/eigen/bench/btl/cmake/FindACML.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindACML.cmake rename to cpp/eigen/bench/btl/cmake/FindACML.cmake diff --git a/eigen/bench/btl/cmake/FindATLAS.cmake b/cpp/eigen/bench/btl/cmake/FindATLAS.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindATLAS.cmake rename to cpp/eigen/bench/btl/cmake/FindATLAS.cmake diff --git a/eigen/bench/btl/cmake/FindBLAZE.cmake b/cpp/eigen/bench/btl/cmake/FindBLAZE.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindBLAZE.cmake rename to cpp/eigen/bench/btl/cmake/FindBLAZE.cmake diff --git a/eigen/bench/btl/cmake/FindBlitz.cmake b/cpp/eigen/bench/btl/cmake/FindBlitz.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindBlitz.cmake rename to cpp/eigen/bench/btl/cmake/FindBlitz.cmake diff --git a/eigen/bench/btl/cmake/FindCBLAS.cmake b/cpp/eigen/bench/btl/cmake/FindCBLAS.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindCBLAS.cmake rename to cpp/eigen/bench/btl/cmake/FindCBLAS.cmake diff --git a/eigen/bench/btl/cmake/FindGMM.cmake b/cpp/eigen/bench/btl/cmake/FindGMM.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindGMM.cmake rename to cpp/eigen/bench/btl/cmake/FindGMM.cmake diff --git a/eigen/bench/btl/cmake/FindMKL.cmake b/cpp/eigen/bench/btl/cmake/FindMKL.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindMKL.cmake rename to cpp/eigen/bench/btl/cmake/FindMKL.cmake diff --git a/eigen/bench/btl/cmake/FindMTL4.cmake b/cpp/eigen/bench/btl/cmake/FindMTL4.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindMTL4.cmake rename to cpp/eigen/bench/btl/cmake/FindMTL4.cmake diff --git a/eigen/bench/btl/cmake/FindOPENBLAS.cmake b/cpp/eigen/bench/btl/cmake/FindOPENBLAS.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindOPENBLAS.cmake rename to cpp/eigen/bench/btl/cmake/FindOPENBLAS.cmake diff --git a/eigen/bench/btl/cmake/FindPackageHandleStandardArgs.cmake b/cpp/eigen/bench/btl/cmake/FindPackageHandleStandardArgs.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindPackageHandleStandardArgs.cmake rename to cpp/eigen/bench/btl/cmake/FindPackageHandleStandardArgs.cmake diff --git a/eigen/bench/btl/cmake/FindTvmet.cmake b/cpp/eigen/bench/btl/cmake/FindTvmet.cmake similarity index 100% rename from eigen/bench/btl/cmake/FindTvmet.cmake rename to cpp/eigen/bench/btl/cmake/FindTvmet.cmake diff --git a/eigen/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake b/cpp/eigen/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake similarity index 100% rename from eigen/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake rename to cpp/eigen/bench/btl/cmake/MacroOptionalAddSubdirectory.cmake diff --git a/eigen/bench/btl/data/CMakeLists.txt b/cpp/eigen/bench/btl/data/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/data/CMakeLists.txt rename to cpp/eigen/bench/btl/data/CMakeLists.txt diff --git a/eigen/bench/btl/data/action_settings.txt b/cpp/eigen/bench/btl/data/action_settings.txt similarity index 100% rename from eigen/bench/btl/data/action_settings.txt rename to cpp/eigen/bench/btl/data/action_settings.txt diff --git a/eigen/bench/btl/data/gnuplot_common_settings.hh b/cpp/eigen/bench/btl/data/gnuplot_common_settings.hh similarity index 100% rename from eigen/bench/btl/data/gnuplot_common_settings.hh rename to cpp/eigen/bench/btl/data/gnuplot_common_settings.hh diff --git a/eigen/bench/btl/data/go_mean b/cpp/eigen/bench/btl/data/go_mean similarity index 100% rename from eigen/bench/btl/data/go_mean rename to cpp/eigen/bench/btl/data/go_mean diff --git a/eigen/bench/btl/data/mean.cxx b/cpp/eigen/bench/btl/data/mean.cxx similarity index 100% rename from eigen/bench/btl/data/mean.cxx rename to cpp/eigen/bench/btl/data/mean.cxx diff --git a/eigen/bench/btl/data/mk_gnuplot_script.sh b/cpp/eigen/bench/btl/data/mk_gnuplot_script.sh similarity index 100% rename from eigen/bench/btl/data/mk_gnuplot_script.sh rename to cpp/eigen/bench/btl/data/mk_gnuplot_script.sh diff --git a/eigen/bench/btl/data/mk_mean_script.sh b/cpp/eigen/bench/btl/data/mk_mean_script.sh similarity index 100% rename from eigen/bench/btl/data/mk_mean_script.sh rename to cpp/eigen/bench/btl/data/mk_mean_script.sh diff --git a/eigen/bench/btl/data/mk_new_gnuplot.sh b/cpp/eigen/bench/btl/data/mk_new_gnuplot.sh similarity index 100% rename from eigen/bench/btl/data/mk_new_gnuplot.sh rename to cpp/eigen/bench/btl/data/mk_new_gnuplot.sh diff --git a/eigen/bench/btl/data/perlib_plot_settings.txt b/cpp/eigen/bench/btl/data/perlib_plot_settings.txt similarity index 100% rename from eigen/bench/btl/data/perlib_plot_settings.txt rename to cpp/eigen/bench/btl/data/perlib_plot_settings.txt diff --git a/eigen/bench/btl/data/regularize.cxx b/cpp/eigen/bench/btl/data/regularize.cxx similarity index 100% rename from eigen/bench/btl/data/regularize.cxx rename to cpp/eigen/bench/btl/data/regularize.cxx diff --git a/eigen/bench/btl/data/smooth.cxx b/cpp/eigen/bench/btl/data/smooth.cxx similarity index 100% rename from eigen/bench/btl/data/smooth.cxx rename to cpp/eigen/bench/btl/data/smooth.cxx diff --git a/eigen/bench/btl/data/smooth_all.sh b/cpp/eigen/bench/btl/data/smooth_all.sh similarity index 100% rename from eigen/bench/btl/data/smooth_all.sh rename to cpp/eigen/bench/btl/data/smooth_all.sh diff --git a/eigen/bench/btl/generic_bench/bench.hh b/cpp/eigen/bench/btl/generic_bench/bench.hh similarity index 100% rename from eigen/bench/btl/generic_bench/bench.hh rename to cpp/eigen/bench/btl/generic_bench/bench.hh diff --git a/eigen/bench/btl/generic_bench/bench_parameter.hh b/cpp/eigen/bench/btl/generic_bench/bench_parameter.hh similarity index 100% rename from eigen/bench/btl/generic_bench/bench_parameter.hh rename to cpp/eigen/bench/btl/generic_bench/bench_parameter.hh diff --git a/eigen/bench/btl/generic_bench/btl.hh b/cpp/eigen/bench/btl/generic_bench/btl.hh similarity index 100% rename from eigen/bench/btl/generic_bench/btl.hh rename to cpp/eigen/bench/btl/generic_bench/btl.hh diff --git a/eigen/bench/btl/generic_bench/init/init_function.hh b/cpp/eigen/bench/btl/generic_bench/init/init_function.hh similarity index 100% rename from eigen/bench/btl/generic_bench/init/init_function.hh rename to cpp/eigen/bench/btl/generic_bench/init/init_function.hh diff --git a/eigen/bench/btl/generic_bench/init/init_matrix.hh b/cpp/eigen/bench/btl/generic_bench/init/init_matrix.hh similarity index 100% rename from eigen/bench/btl/generic_bench/init/init_matrix.hh rename to cpp/eigen/bench/btl/generic_bench/init/init_matrix.hh diff --git a/eigen/bench/btl/generic_bench/init/init_vector.hh b/cpp/eigen/bench/btl/generic_bench/init/init_vector.hh similarity index 100% rename from eigen/bench/btl/generic_bench/init/init_vector.hh rename to cpp/eigen/bench/btl/generic_bench/init/init_vector.hh diff --git a/eigen/bench/btl/generic_bench/static/bench_static.hh b/cpp/eigen/bench/btl/generic_bench/static/bench_static.hh similarity index 100% rename from eigen/bench/btl/generic_bench/static/bench_static.hh rename to cpp/eigen/bench/btl/generic_bench/static/bench_static.hh diff --git a/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh b/cpp/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh similarity index 100% rename from eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh rename to cpp/eigen/bench/btl/generic_bench/static/intel_bench_fixed_size.hh diff --git a/eigen/bench/btl/generic_bench/static/static_size_generator.hh b/cpp/eigen/bench/btl/generic_bench/static/static_size_generator.hh similarity index 100% rename from eigen/bench/btl/generic_bench/static/static_size_generator.hh rename to cpp/eigen/bench/btl/generic_bench/static/static_size_generator.hh diff --git a/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh b/cpp/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/STL_perf_analyzer.hh diff --git a/eigen/bench/btl/generic_bench/timers/STL_timer.hh b/cpp/eigen/bench/btl/generic_bench/timers/STL_timer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/STL_timer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/STL_timer.hh diff --git a/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh b/cpp/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/mixed_perf_analyzer.hh diff --git a/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh b/cpp/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer.hh diff --git a/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh b/cpp/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh rename to cpp/eigen/bench/btl/generic_bench/timers/portable_perf_analyzer_old.hh diff --git a/eigen/bench/btl/generic_bench/timers/portable_timer.hh b/cpp/eigen/bench/btl/generic_bench/timers/portable_timer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/portable_timer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/portable_timer.hh diff --git a/eigen/bench/btl/generic_bench/timers/x86_perf_analyzer.hh b/cpp/eigen/bench/btl/generic_bench/timers/x86_perf_analyzer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/x86_perf_analyzer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/x86_perf_analyzer.hh diff --git a/eigen/bench/btl/generic_bench/timers/x86_timer.hh b/cpp/eigen/bench/btl/generic_bench/timers/x86_timer.hh similarity index 100% rename from eigen/bench/btl/generic_bench/timers/x86_timer.hh rename to cpp/eigen/bench/btl/generic_bench/timers/x86_timer.hh diff --git a/eigen/bench/btl/generic_bench/utils/size_lin_log.hh b/cpp/eigen/bench/btl/generic_bench/utils/size_lin_log.hh similarity index 100% rename from eigen/bench/btl/generic_bench/utils/size_lin_log.hh rename to cpp/eigen/bench/btl/generic_bench/utils/size_lin_log.hh diff --git a/eigen/bench/btl/generic_bench/utils/size_log.hh b/cpp/eigen/bench/btl/generic_bench/utils/size_log.hh similarity index 100% rename from eigen/bench/btl/generic_bench/utils/size_log.hh rename to cpp/eigen/bench/btl/generic_bench/utils/size_log.hh diff --git a/eigen/bench/btl/generic_bench/utils/utilities.h b/cpp/eigen/bench/btl/generic_bench/utils/utilities.h similarity index 100% rename from eigen/bench/btl/generic_bench/utils/utilities.h rename to cpp/eigen/bench/btl/generic_bench/utils/utilities.h diff --git a/eigen/bench/btl/generic_bench/utils/xy_file.hh b/cpp/eigen/bench/btl/generic_bench/utils/xy_file.hh similarity index 100% rename from eigen/bench/btl/generic_bench/utils/xy_file.hh rename to cpp/eigen/bench/btl/generic_bench/utils/xy_file.hh diff --git a/eigen/bench/btl/libs/BLAS/CMakeLists.txt b/cpp/eigen/bench/btl/libs/BLAS/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/BLAS/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/BLAS/CMakeLists.txt diff --git a/eigen/bench/btl/libs/BLAS/blas.h b/cpp/eigen/bench/btl/libs/BLAS/blas.h similarity index 100% rename from eigen/bench/btl/libs/BLAS/blas.h rename to cpp/eigen/bench/btl/libs/BLAS/blas.h diff --git a/eigen/bench/btl/libs/BLAS/blas_interface.hh b/cpp/eigen/bench/btl/libs/BLAS/blas_interface.hh similarity index 100% rename from eigen/bench/btl/libs/BLAS/blas_interface.hh rename to cpp/eigen/bench/btl/libs/BLAS/blas_interface.hh diff --git a/eigen/bench/btl/libs/BLAS/blas_interface_impl.hh b/cpp/eigen/bench/btl/libs/BLAS/blas_interface_impl.hh similarity index 100% rename from eigen/bench/btl/libs/BLAS/blas_interface_impl.hh rename to cpp/eigen/bench/btl/libs/BLAS/blas_interface_impl.hh diff --git a/eigen/bench/btl/libs/BLAS/c_interface_base.h b/cpp/eigen/bench/btl/libs/BLAS/c_interface_base.h similarity index 100% rename from eigen/bench/btl/libs/BLAS/c_interface_base.h rename to cpp/eigen/bench/btl/libs/BLAS/c_interface_base.h diff --git a/eigen/bench/btl/libs/BLAS/main.cpp b/cpp/eigen/bench/btl/libs/BLAS/main.cpp similarity index 100% rename from eigen/bench/btl/libs/BLAS/main.cpp rename to cpp/eigen/bench/btl/libs/BLAS/main.cpp diff --git a/eigen/bench/btl/libs/STL/CMakeLists.txt b/cpp/eigen/bench/btl/libs/STL/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/STL/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/STL/CMakeLists.txt diff --git a/eigen/bench/btl/libs/STL/STL_interface.hh b/cpp/eigen/bench/btl/libs/STL/STL_interface.hh similarity index 100% rename from eigen/bench/btl/libs/STL/STL_interface.hh rename to cpp/eigen/bench/btl/libs/STL/STL_interface.hh diff --git a/eigen/bench/btl/libs/STL/main.cpp b/cpp/eigen/bench/btl/libs/STL/main.cpp similarity index 100% rename from eigen/bench/btl/libs/STL/main.cpp rename to cpp/eigen/bench/btl/libs/STL/main.cpp diff --git a/eigen/bench/btl/libs/blaze/CMakeLists.txt b/cpp/eigen/bench/btl/libs/blaze/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/blaze/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/blaze/CMakeLists.txt diff --git a/eigen/bench/btl/libs/blaze/blaze_interface.hh b/cpp/eigen/bench/btl/libs/blaze/blaze_interface.hh similarity index 100% rename from eigen/bench/btl/libs/blaze/blaze_interface.hh rename to cpp/eigen/bench/btl/libs/blaze/blaze_interface.hh diff --git a/eigen/bench/btl/libs/blaze/main.cpp b/cpp/eigen/bench/btl/libs/blaze/main.cpp similarity index 100% rename from eigen/bench/btl/libs/blaze/main.cpp rename to cpp/eigen/bench/btl/libs/blaze/main.cpp diff --git a/eigen/bench/btl/libs/blitz/CMakeLists.txt b/cpp/eigen/bench/btl/libs/blitz/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/blitz/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/blitz/CMakeLists.txt diff --git a/eigen/bench/btl/libs/blitz/blitz_LU_solve_interface.hh b/cpp/eigen/bench/btl/libs/blitz/blitz_LU_solve_interface.hh similarity index 100% rename from eigen/bench/btl/libs/blitz/blitz_LU_solve_interface.hh rename to cpp/eigen/bench/btl/libs/blitz/blitz_LU_solve_interface.hh diff --git a/eigen/bench/btl/libs/blitz/blitz_interface.hh b/cpp/eigen/bench/btl/libs/blitz/blitz_interface.hh similarity index 100% rename from eigen/bench/btl/libs/blitz/blitz_interface.hh rename to cpp/eigen/bench/btl/libs/blitz/blitz_interface.hh diff --git a/eigen/bench/btl/libs/blitz/btl_blitz.cpp b/cpp/eigen/bench/btl/libs/blitz/btl_blitz.cpp similarity index 100% rename from eigen/bench/btl/libs/blitz/btl_blitz.cpp rename to cpp/eigen/bench/btl/libs/blitz/btl_blitz.cpp diff --git a/eigen/bench/btl/libs/blitz/btl_tiny_blitz.cpp b/cpp/eigen/bench/btl/libs/blitz/btl_tiny_blitz.cpp similarity index 100% rename from eigen/bench/btl/libs/blitz/btl_tiny_blitz.cpp rename to cpp/eigen/bench/btl/libs/blitz/btl_tiny_blitz.cpp diff --git a/eigen/bench/btl/libs/blitz/tiny_blitz_interface.hh b/cpp/eigen/bench/btl/libs/blitz/tiny_blitz_interface.hh similarity index 100% rename from eigen/bench/btl/libs/blitz/tiny_blitz_interface.hh rename to cpp/eigen/bench/btl/libs/blitz/tiny_blitz_interface.hh diff --git a/eigen/bench/btl/libs/eigen2/CMakeLists.txt b/cpp/eigen/bench/btl/libs/eigen2/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/eigen2/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/eigen2/CMakeLists.txt diff --git a/eigen/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp b/cpp/eigen/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp rename to cpp/eigen/bench/btl/libs/eigen2/btl_tiny_eigen2.cpp diff --git a/eigen/bench/btl/libs/eigen2/eigen2_interface.hh b/cpp/eigen/bench/btl/libs/eigen2/eigen2_interface.hh similarity index 100% rename from eigen/bench/btl/libs/eigen2/eigen2_interface.hh rename to cpp/eigen/bench/btl/libs/eigen2/eigen2_interface.hh diff --git a/eigen/bench/btl/libs/eigen2/main_adv.cpp b/cpp/eigen/bench/btl/libs/eigen2/main_adv.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen2/main_adv.cpp rename to cpp/eigen/bench/btl/libs/eigen2/main_adv.cpp diff --git a/eigen/bench/btl/libs/eigen2/main_linear.cpp b/cpp/eigen/bench/btl/libs/eigen2/main_linear.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen2/main_linear.cpp rename to cpp/eigen/bench/btl/libs/eigen2/main_linear.cpp diff --git a/eigen/bench/btl/libs/eigen2/main_matmat.cpp b/cpp/eigen/bench/btl/libs/eigen2/main_matmat.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen2/main_matmat.cpp rename to cpp/eigen/bench/btl/libs/eigen2/main_matmat.cpp diff --git a/eigen/bench/btl/libs/eigen2/main_vecmat.cpp b/cpp/eigen/bench/btl/libs/eigen2/main_vecmat.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen2/main_vecmat.cpp rename to cpp/eigen/bench/btl/libs/eigen2/main_vecmat.cpp diff --git a/eigen/bench/btl/libs/eigen3/CMakeLists.txt b/cpp/eigen/bench/btl/libs/eigen3/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/eigen3/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/eigen3/CMakeLists.txt diff --git a/eigen/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp b/cpp/eigen/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp rename to cpp/eigen/bench/btl/libs/eigen3/btl_tiny_eigen3.cpp diff --git a/eigen/bench/btl/libs/eigen3/eigen3_interface.hh b/cpp/eigen/bench/btl/libs/eigen3/eigen3_interface.hh similarity index 100% rename from eigen/bench/btl/libs/eigen3/eigen3_interface.hh rename to cpp/eigen/bench/btl/libs/eigen3/eigen3_interface.hh diff --git a/eigen/bench/btl/libs/eigen3/main_adv.cpp b/cpp/eigen/bench/btl/libs/eigen3/main_adv.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen3/main_adv.cpp rename to cpp/eigen/bench/btl/libs/eigen3/main_adv.cpp diff --git a/eigen/bench/btl/libs/eigen3/main_linear.cpp b/cpp/eigen/bench/btl/libs/eigen3/main_linear.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen3/main_linear.cpp rename to cpp/eigen/bench/btl/libs/eigen3/main_linear.cpp diff --git a/eigen/bench/btl/libs/eigen3/main_matmat.cpp b/cpp/eigen/bench/btl/libs/eigen3/main_matmat.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen3/main_matmat.cpp rename to cpp/eigen/bench/btl/libs/eigen3/main_matmat.cpp diff --git a/eigen/bench/btl/libs/eigen3/main_vecmat.cpp b/cpp/eigen/bench/btl/libs/eigen3/main_vecmat.cpp similarity index 100% rename from eigen/bench/btl/libs/eigen3/main_vecmat.cpp rename to cpp/eigen/bench/btl/libs/eigen3/main_vecmat.cpp diff --git a/eigen/bench/btl/libs/gmm/CMakeLists.txt b/cpp/eigen/bench/btl/libs/gmm/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/gmm/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/gmm/CMakeLists.txt diff --git a/eigen/bench/btl/libs/gmm/gmm_LU_solve_interface.hh b/cpp/eigen/bench/btl/libs/gmm/gmm_LU_solve_interface.hh similarity index 100% rename from eigen/bench/btl/libs/gmm/gmm_LU_solve_interface.hh rename to cpp/eigen/bench/btl/libs/gmm/gmm_LU_solve_interface.hh diff --git a/eigen/bench/btl/libs/gmm/gmm_interface.hh b/cpp/eigen/bench/btl/libs/gmm/gmm_interface.hh similarity index 100% rename from eigen/bench/btl/libs/gmm/gmm_interface.hh rename to cpp/eigen/bench/btl/libs/gmm/gmm_interface.hh diff --git a/eigen/bench/btl/libs/gmm/main.cpp b/cpp/eigen/bench/btl/libs/gmm/main.cpp similarity index 100% rename from eigen/bench/btl/libs/gmm/main.cpp rename to cpp/eigen/bench/btl/libs/gmm/main.cpp diff --git a/eigen/bench/btl/libs/mtl4/.kdbgrc.main b/cpp/eigen/bench/btl/libs/mtl4/.kdbgrc.main similarity index 100% rename from eigen/bench/btl/libs/mtl4/.kdbgrc.main rename to cpp/eigen/bench/btl/libs/mtl4/.kdbgrc.main diff --git a/eigen/bench/btl/libs/mtl4/CMakeLists.txt b/cpp/eigen/bench/btl/libs/mtl4/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/mtl4/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/mtl4/CMakeLists.txt diff --git a/eigen/bench/btl/libs/mtl4/main.cpp b/cpp/eigen/bench/btl/libs/mtl4/main.cpp similarity index 100% rename from eigen/bench/btl/libs/mtl4/main.cpp rename to cpp/eigen/bench/btl/libs/mtl4/main.cpp diff --git a/eigen/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh b/cpp/eigen/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh similarity index 100% rename from eigen/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh rename to cpp/eigen/bench/btl/libs/mtl4/mtl4_LU_solve_interface.hh diff --git a/eigen/bench/btl/libs/mtl4/mtl4_interface.hh b/cpp/eigen/bench/btl/libs/mtl4/mtl4_interface.hh similarity index 100% rename from eigen/bench/btl/libs/mtl4/mtl4_interface.hh rename to cpp/eigen/bench/btl/libs/mtl4/mtl4_interface.hh diff --git a/eigen/bench/btl/libs/tensors/CMakeLists.txt b/cpp/eigen/bench/btl/libs/tensors/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/tensors/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/tensors/CMakeLists.txt diff --git a/eigen/bench/btl/libs/tensors/main_linear.cpp b/cpp/eigen/bench/btl/libs/tensors/main_linear.cpp similarity index 100% rename from eigen/bench/btl/libs/tensors/main_linear.cpp rename to cpp/eigen/bench/btl/libs/tensors/main_linear.cpp diff --git a/eigen/bench/btl/libs/tensors/main_matmat.cpp b/cpp/eigen/bench/btl/libs/tensors/main_matmat.cpp similarity index 100% rename from eigen/bench/btl/libs/tensors/main_matmat.cpp rename to cpp/eigen/bench/btl/libs/tensors/main_matmat.cpp diff --git a/eigen/bench/btl/libs/tensors/main_vecmat.cpp b/cpp/eigen/bench/btl/libs/tensors/main_vecmat.cpp similarity index 100% rename from eigen/bench/btl/libs/tensors/main_vecmat.cpp rename to cpp/eigen/bench/btl/libs/tensors/main_vecmat.cpp diff --git a/eigen/bench/btl/libs/tensors/tensor_interface.hh b/cpp/eigen/bench/btl/libs/tensors/tensor_interface.hh similarity index 100% rename from eigen/bench/btl/libs/tensors/tensor_interface.hh rename to cpp/eigen/bench/btl/libs/tensors/tensor_interface.hh diff --git a/eigen/bench/btl/libs/tvmet/CMakeLists.txt b/cpp/eigen/bench/btl/libs/tvmet/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/tvmet/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/tvmet/CMakeLists.txt diff --git a/eigen/bench/btl/libs/tvmet/main.cpp b/cpp/eigen/bench/btl/libs/tvmet/main.cpp similarity index 100% rename from eigen/bench/btl/libs/tvmet/main.cpp rename to cpp/eigen/bench/btl/libs/tvmet/main.cpp diff --git a/eigen/bench/btl/libs/tvmet/tvmet_interface.hh b/cpp/eigen/bench/btl/libs/tvmet/tvmet_interface.hh similarity index 100% rename from eigen/bench/btl/libs/tvmet/tvmet_interface.hh rename to cpp/eigen/bench/btl/libs/tvmet/tvmet_interface.hh diff --git a/eigen/bench/btl/libs/ublas/CMakeLists.txt b/cpp/eigen/bench/btl/libs/ublas/CMakeLists.txt similarity index 100% rename from eigen/bench/btl/libs/ublas/CMakeLists.txt rename to cpp/eigen/bench/btl/libs/ublas/CMakeLists.txt diff --git a/eigen/bench/btl/libs/ublas/main.cpp b/cpp/eigen/bench/btl/libs/ublas/main.cpp similarity index 100% rename from eigen/bench/btl/libs/ublas/main.cpp rename to cpp/eigen/bench/btl/libs/ublas/main.cpp diff --git a/eigen/bench/btl/libs/ublas/ublas_interface.hh b/cpp/eigen/bench/btl/libs/ublas/ublas_interface.hh similarity index 100% rename from eigen/bench/btl/libs/ublas/ublas_interface.hh rename to cpp/eigen/bench/btl/libs/ublas/ublas_interface.hh diff --git a/eigen/bench/check_cache_queries.cpp b/cpp/eigen/bench/check_cache_queries.cpp similarity index 100% rename from eigen/bench/check_cache_queries.cpp rename to cpp/eigen/bench/check_cache_queries.cpp diff --git a/eigen/bench/dense_solvers.cpp b/cpp/eigen/bench/dense_solvers.cpp similarity index 100% rename from eigen/bench/dense_solvers.cpp rename to cpp/eigen/bench/dense_solvers.cpp diff --git a/eigen/bench/eig33.cpp b/cpp/eigen/bench/eig33.cpp similarity index 100% rename from eigen/bench/eig33.cpp rename to cpp/eigen/bench/eig33.cpp diff --git a/eigen/bench/geometry.cpp b/cpp/eigen/bench/geometry.cpp similarity index 100% rename from eigen/bench/geometry.cpp rename to cpp/eigen/bench/geometry.cpp diff --git a/eigen/bench/perf_monitoring/gemm/changesets.txt b/cpp/eigen/bench/perf_monitoring/gemm/changesets.txt similarity index 100% rename from eigen/bench/perf_monitoring/gemm/changesets.txt rename to cpp/eigen/bench/perf_monitoring/gemm/changesets.txt diff --git a/eigen/bench/perf_monitoring/gemm/gemm.cpp b/cpp/eigen/bench/perf_monitoring/gemm/gemm.cpp similarity index 100% rename from eigen/bench/perf_monitoring/gemm/gemm.cpp rename to cpp/eigen/bench/perf_monitoring/gemm/gemm.cpp diff --git a/eigen/bench/perf_monitoring/gemm/gemm_settings.txt b/cpp/eigen/bench/perf_monitoring/gemm/gemm_settings.txt similarity index 100% rename from eigen/bench/perf_monitoring/gemm/gemm_settings.txt rename to cpp/eigen/bench/perf_monitoring/gemm/gemm_settings.txt diff --git a/eigen/bench/perf_monitoring/gemm/lazy_gemm.cpp b/cpp/eigen/bench/perf_monitoring/gemm/lazy_gemm.cpp similarity index 100% rename from eigen/bench/perf_monitoring/gemm/lazy_gemm.cpp rename to cpp/eigen/bench/perf_monitoring/gemm/lazy_gemm.cpp diff --git a/eigen/bench/perf_monitoring/gemm/lazy_gemm_settings.txt b/cpp/eigen/bench/perf_monitoring/gemm/lazy_gemm_settings.txt similarity index 100% rename from eigen/bench/perf_monitoring/gemm/lazy_gemm_settings.txt rename to cpp/eigen/bench/perf_monitoring/gemm/lazy_gemm_settings.txt diff --git a/eigen/bench/perf_monitoring/gemm/make_plot.sh b/cpp/eigen/bench/perf_monitoring/gemm/make_plot.sh similarity index 100% rename from eigen/bench/perf_monitoring/gemm/make_plot.sh rename to cpp/eigen/bench/perf_monitoring/gemm/make_plot.sh diff --git a/eigen/bench/perf_monitoring/gemm/run.sh b/cpp/eigen/bench/perf_monitoring/gemm/run.sh similarity index 100% rename from eigen/bench/perf_monitoring/gemm/run.sh rename to cpp/eigen/bench/perf_monitoring/gemm/run.sh diff --git a/eigen/bench/product_threshold.cpp b/cpp/eigen/bench/product_threshold.cpp similarity index 100% rename from eigen/bench/product_threshold.cpp rename to cpp/eigen/bench/product_threshold.cpp diff --git a/eigen/bench/quat_slerp.cpp b/cpp/eigen/bench/quat_slerp.cpp similarity index 100% rename from eigen/bench/quat_slerp.cpp rename to cpp/eigen/bench/quat_slerp.cpp diff --git a/eigen/bench/quatmul.cpp b/cpp/eigen/bench/quatmul.cpp similarity index 100% rename from eigen/bench/quatmul.cpp rename to cpp/eigen/bench/quatmul.cpp diff --git a/eigen/bench/sparse_cholesky.cpp b/cpp/eigen/bench/sparse_cholesky.cpp similarity index 100% rename from eigen/bench/sparse_cholesky.cpp rename to cpp/eigen/bench/sparse_cholesky.cpp diff --git a/eigen/bench/sparse_dense_product.cpp b/cpp/eigen/bench/sparse_dense_product.cpp similarity index 100% rename from eigen/bench/sparse_dense_product.cpp rename to cpp/eigen/bench/sparse_dense_product.cpp diff --git a/eigen/bench/sparse_lu.cpp b/cpp/eigen/bench/sparse_lu.cpp similarity index 100% rename from eigen/bench/sparse_lu.cpp rename to cpp/eigen/bench/sparse_lu.cpp diff --git a/eigen/bench/sparse_product.cpp b/cpp/eigen/bench/sparse_product.cpp similarity index 100% rename from eigen/bench/sparse_product.cpp rename to cpp/eigen/bench/sparse_product.cpp diff --git a/eigen/bench/sparse_randomsetter.cpp b/cpp/eigen/bench/sparse_randomsetter.cpp similarity index 100% rename from eigen/bench/sparse_randomsetter.cpp rename to cpp/eigen/bench/sparse_randomsetter.cpp diff --git a/eigen/bench/sparse_setter.cpp b/cpp/eigen/bench/sparse_setter.cpp similarity index 100% rename from eigen/bench/sparse_setter.cpp rename to cpp/eigen/bench/sparse_setter.cpp diff --git a/eigen/bench/sparse_transpose.cpp b/cpp/eigen/bench/sparse_transpose.cpp similarity index 100% rename from eigen/bench/sparse_transpose.cpp rename to cpp/eigen/bench/sparse_transpose.cpp diff --git a/eigen/bench/sparse_trisolver.cpp b/cpp/eigen/bench/sparse_trisolver.cpp similarity index 100% rename from eigen/bench/sparse_trisolver.cpp rename to cpp/eigen/bench/sparse_trisolver.cpp diff --git a/eigen/bench/spbench/CMakeLists.txt b/cpp/eigen/bench/spbench/CMakeLists.txt similarity index 100% rename from eigen/bench/spbench/CMakeLists.txt rename to cpp/eigen/bench/spbench/CMakeLists.txt diff --git a/eigen/bench/spbench/sp_solver.cpp b/cpp/eigen/bench/spbench/sp_solver.cpp similarity index 100% rename from eigen/bench/spbench/sp_solver.cpp rename to cpp/eigen/bench/spbench/sp_solver.cpp diff --git a/eigen/bench/spbench/spbench.dtd b/cpp/eigen/bench/spbench/spbench.dtd similarity index 100% rename from eigen/bench/spbench/spbench.dtd rename to cpp/eigen/bench/spbench/spbench.dtd diff --git a/eigen/bench/spbench/spbenchsolver.cpp b/cpp/eigen/bench/spbench/spbenchsolver.cpp similarity index 100% rename from eigen/bench/spbench/spbenchsolver.cpp rename to cpp/eigen/bench/spbench/spbenchsolver.cpp diff --git a/eigen/bench/spbench/spbenchsolver.h b/cpp/eigen/bench/spbench/spbenchsolver.h similarity index 100% rename from eigen/bench/spbench/spbenchsolver.h rename to cpp/eigen/bench/spbench/spbenchsolver.h diff --git a/eigen/bench/spbench/spbenchstyle.h b/cpp/eigen/bench/spbench/spbenchstyle.h similarity index 100% rename from eigen/bench/spbench/spbenchstyle.h rename to cpp/eigen/bench/spbench/spbenchstyle.h diff --git a/eigen/bench/spbench/test_sparseLU.cpp b/cpp/eigen/bench/spbench/test_sparseLU.cpp similarity index 100% rename from eigen/bench/spbench/test_sparseLU.cpp rename to cpp/eigen/bench/spbench/test_sparseLU.cpp diff --git a/eigen/bench/spmv.cpp b/cpp/eigen/bench/spmv.cpp similarity index 100% rename from eigen/bench/spmv.cpp rename to cpp/eigen/bench/spmv.cpp diff --git a/eigen/bench/tensors/README b/cpp/eigen/bench/tensors/README similarity index 100% rename from eigen/bench/tensors/README rename to cpp/eigen/bench/tensors/README diff --git a/eigen/bench/tensors/benchmark.h b/cpp/eigen/bench/tensors/benchmark.h similarity index 100% rename from eigen/bench/tensors/benchmark.h rename to cpp/eigen/bench/tensors/benchmark.h diff --git a/eigen/bench/tensors/benchmark_main.cc b/cpp/eigen/bench/tensors/benchmark_main.cc similarity index 100% rename from eigen/bench/tensors/benchmark_main.cc rename to cpp/eigen/bench/tensors/benchmark_main.cc diff --git a/eigen/bench/tensors/contraction_benchmarks_cpu.cc b/cpp/eigen/bench/tensors/contraction_benchmarks_cpu.cc similarity index 100% rename from eigen/bench/tensors/contraction_benchmarks_cpu.cc rename to cpp/eigen/bench/tensors/contraction_benchmarks_cpu.cc diff --git a/eigen/bench/tensors/tensor_benchmarks.h b/cpp/eigen/bench/tensors/tensor_benchmarks.h similarity index 100% rename from eigen/bench/tensors/tensor_benchmarks.h rename to cpp/eigen/bench/tensors/tensor_benchmarks.h diff --git a/eigen/bench/tensors/tensor_benchmarks_cpu.cc b/cpp/eigen/bench/tensors/tensor_benchmarks_cpu.cc similarity index 100% rename from eigen/bench/tensors/tensor_benchmarks_cpu.cc rename to cpp/eigen/bench/tensors/tensor_benchmarks_cpu.cc diff --git a/eigen/bench/tensors/tensor_benchmarks_fp16_gpu.cu b/cpp/eigen/bench/tensors/tensor_benchmarks_fp16_gpu.cu similarity index 100% rename from eigen/bench/tensors/tensor_benchmarks_fp16_gpu.cu rename to cpp/eigen/bench/tensors/tensor_benchmarks_fp16_gpu.cu diff --git a/eigen/bench/tensors/tensor_benchmarks_gpu.cu b/cpp/eigen/bench/tensors/tensor_benchmarks_gpu.cu similarity index 100% rename from eigen/bench/tensors/tensor_benchmarks_gpu.cu rename to cpp/eigen/bench/tensors/tensor_benchmarks_gpu.cu diff --git a/eigen/bench/tensors/tensor_benchmarks_sycl.cc b/cpp/eigen/bench/tensors/tensor_benchmarks_sycl.cc similarity index 100% rename from eigen/bench/tensors/tensor_benchmarks_sycl.cc rename to cpp/eigen/bench/tensors/tensor_benchmarks_sycl.cc diff --git a/eigen/bench/vdw_new.cpp b/cpp/eigen/bench/vdw_new.cpp similarity index 100% rename from eigen/bench/vdw_new.cpp rename to cpp/eigen/bench/vdw_new.cpp diff --git a/eigen/blas/BandTriangularSolver.h b/cpp/eigen/blas/BandTriangularSolver.h similarity index 100% rename from eigen/blas/BandTriangularSolver.h rename to cpp/eigen/blas/BandTriangularSolver.h diff --git a/eigen/blas/CMakeLists.txt b/cpp/eigen/blas/CMakeLists.txt similarity index 100% rename from eigen/blas/CMakeLists.txt rename to cpp/eigen/blas/CMakeLists.txt diff --git a/eigen/blas/GeneralRank1Update.h b/cpp/eigen/blas/GeneralRank1Update.h similarity index 100% rename from eigen/blas/GeneralRank1Update.h rename to cpp/eigen/blas/GeneralRank1Update.h diff --git a/eigen/blas/PackedSelfadjointProduct.h b/cpp/eigen/blas/PackedSelfadjointProduct.h similarity index 100% rename from eigen/blas/PackedSelfadjointProduct.h rename to cpp/eigen/blas/PackedSelfadjointProduct.h diff --git a/eigen/blas/PackedTriangularMatrixVector.h b/cpp/eigen/blas/PackedTriangularMatrixVector.h similarity index 100% rename from eigen/blas/PackedTriangularMatrixVector.h rename to cpp/eigen/blas/PackedTriangularMatrixVector.h diff --git a/eigen/blas/PackedTriangularSolverVector.h b/cpp/eigen/blas/PackedTriangularSolverVector.h similarity index 100% rename from eigen/blas/PackedTriangularSolverVector.h rename to cpp/eigen/blas/PackedTriangularSolverVector.h diff --git a/eigen/blas/README.txt b/cpp/eigen/blas/README.txt similarity index 100% rename from eigen/blas/README.txt rename to cpp/eigen/blas/README.txt diff --git a/eigen/blas/Rank2Update.h b/cpp/eigen/blas/Rank2Update.h similarity index 100% rename from eigen/blas/Rank2Update.h rename to cpp/eigen/blas/Rank2Update.h diff --git a/eigen/blas/common.h b/cpp/eigen/blas/common.h similarity index 100% rename from eigen/blas/common.h rename to cpp/eigen/blas/common.h diff --git a/eigen/blas/complex_double.cpp b/cpp/eigen/blas/complex_double.cpp similarity index 100% rename from eigen/blas/complex_double.cpp rename to cpp/eigen/blas/complex_double.cpp diff --git a/eigen/blas/complex_single.cpp b/cpp/eigen/blas/complex_single.cpp similarity index 100% rename from eigen/blas/complex_single.cpp rename to cpp/eigen/blas/complex_single.cpp diff --git a/eigen/blas/double.cpp b/cpp/eigen/blas/double.cpp similarity index 100% rename from eigen/blas/double.cpp rename to cpp/eigen/blas/double.cpp diff --git a/eigen/blas/f2c/chbmv.c b/cpp/eigen/blas/f2c/chbmv.c similarity index 100% rename from eigen/blas/f2c/chbmv.c rename to cpp/eigen/blas/f2c/chbmv.c diff --git a/eigen/blas/f2c/chpmv.c b/cpp/eigen/blas/f2c/chpmv.c similarity index 100% rename from eigen/blas/f2c/chpmv.c rename to cpp/eigen/blas/f2c/chpmv.c diff --git a/eigen/blas/f2c/complexdots.c b/cpp/eigen/blas/f2c/complexdots.c similarity index 100% rename from eigen/blas/f2c/complexdots.c rename to cpp/eigen/blas/f2c/complexdots.c diff --git a/eigen/blas/f2c/ctbmv.c b/cpp/eigen/blas/f2c/ctbmv.c similarity index 100% rename from eigen/blas/f2c/ctbmv.c rename to cpp/eigen/blas/f2c/ctbmv.c diff --git a/eigen/blas/f2c/d_cnjg.c b/cpp/eigen/blas/f2c/d_cnjg.c similarity index 100% rename from eigen/blas/f2c/d_cnjg.c rename to cpp/eigen/blas/f2c/d_cnjg.c diff --git a/eigen/blas/f2c/datatypes.h b/cpp/eigen/blas/f2c/datatypes.h similarity index 100% rename from eigen/blas/f2c/datatypes.h rename to cpp/eigen/blas/f2c/datatypes.h diff --git a/eigen/blas/f2c/drotm.c b/cpp/eigen/blas/f2c/drotm.c similarity index 100% rename from eigen/blas/f2c/drotm.c rename to cpp/eigen/blas/f2c/drotm.c diff --git a/eigen/blas/f2c/drotmg.c b/cpp/eigen/blas/f2c/drotmg.c similarity index 100% rename from eigen/blas/f2c/drotmg.c rename to cpp/eigen/blas/f2c/drotmg.c diff --git a/eigen/blas/f2c/dsbmv.c b/cpp/eigen/blas/f2c/dsbmv.c similarity index 100% rename from eigen/blas/f2c/dsbmv.c rename to cpp/eigen/blas/f2c/dsbmv.c diff --git a/eigen/blas/f2c/dspmv.c b/cpp/eigen/blas/f2c/dspmv.c similarity index 100% rename from eigen/blas/f2c/dspmv.c rename to cpp/eigen/blas/f2c/dspmv.c diff --git a/eigen/blas/f2c/dtbmv.c b/cpp/eigen/blas/f2c/dtbmv.c similarity index 100% rename from eigen/blas/f2c/dtbmv.c rename to cpp/eigen/blas/f2c/dtbmv.c diff --git a/eigen/blas/f2c/lsame.c b/cpp/eigen/blas/f2c/lsame.c similarity index 100% rename from eigen/blas/f2c/lsame.c rename to cpp/eigen/blas/f2c/lsame.c diff --git a/eigen/blas/f2c/r_cnjg.c b/cpp/eigen/blas/f2c/r_cnjg.c similarity index 100% rename from eigen/blas/f2c/r_cnjg.c rename to cpp/eigen/blas/f2c/r_cnjg.c diff --git a/eigen/blas/f2c/srotm.c b/cpp/eigen/blas/f2c/srotm.c similarity index 100% rename from eigen/blas/f2c/srotm.c rename to cpp/eigen/blas/f2c/srotm.c diff --git a/eigen/blas/f2c/srotmg.c b/cpp/eigen/blas/f2c/srotmg.c similarity index 100% rename from eigen/blas/f2c/srotmg.c rename to cpp/eigen/blas/f2c/srotmg.c diff --git a/eigen/blas/f2c/ssbmv.c b/cpp/eigen/blas/f2c/ssbmv.c similarity index 100% rename from eigen/blas/f2c/ssbmv.c rename to cpp/eigen/blas/f2c/ssbmv.c diff --git a/eigen/blas/f2c/sspmv.c b/cpp/eigen/blas/f2c/sspmv.c similarity index 100% rename from eigen/blas/f2c/sspmv.c rename to cpp/eigen/blas/f2c/sspmv.c diff --git a/eigen/blas/f2c/stbmv.c b/cpp/eigen/blas/f2c/stbmv.c similarity index 100% rename from eigen/blas/f2c/stbmv.c rename to cpp/eigen/blas/f2c/stbmv.c diff --git a/eigen/blas/f2c/zhbmv.c b/cpp/eigen/blas/f2c/zhbmv.c similarity index 100% rename from eigen/blas/f2c/zhbmv.c rename to cpp/eigen/blas/f2c/zhbmv.c diff --git a/eigen/blas/f2c/zhpmv.c b/cpp/eigen/blas/f2c/zhpmv.c similarity index 100% rename from eigen/blas/f2c/zhpmv.c rename to cpp/eigen/blas/f2c/zhpmv.c diff --git a/eigen/blas/f2c/ztbmv.c b/cpp/eigen/blas/f2c/ztbmv.c similarity index 100% rename from eigen/blas/f2c/ztbmv.c rename to cpp/eigen/blas/f2c/ztbmv.c diff --git a/eigen/blas/fortran/complexdots.f b/cpp/eigen/blas/fortran/complexdots.f similarity index 100% rename from eigen/blas/fortran/complexdots.f rename to cpp/eigen/blas/fortran/complexdots.f diff --git a/eigen/blas/level1_cplx_impl.h b/cpp/eigen/blas/level1_cplx_impl.h similarity index 100% rename from eigen/blas/level1_cplx_impl.h rename to cpp/eigen/blas/level1_cplx_impl.h diff --git a/eigen/blas/level1_impl.h b/cpp/eigen/blas/level1_impl.h similarity index 100% rename from eigen/blas/level1_impl.h rename to cpp/eigen/blas/level1_impl.h diff --git a/eigen/blas/level1_real_impl.h b/cpp/eigen/blas/level1_real_impl.h similarity index 100% rename from eigen/blas/level1_real_impl.h rename to cpp/eigen/blas/level1_real_impl.h diff --git a/eigen/blas/level2_cplx_impl.h b/cpp/eigen/blas/level2_cplx_impl.h similarity index 100% rename from eigen/blas/level2_cplx_impl.h rename to cpp/eigen/blas/level2_cplx_impl.h diff --git a/eigen/blas/level2_impl.h b/cpp/eigen/blas/level2_impl.h similarity index 100% rename from eigen/blas/level2_impl.h rename to cpp/eigen/blas/level2_impl.h diff --git a/eigen/blas/level2_real_impl.h b/cpp/eigen/blas/level2_real_impl.h similarity index 100% rename from eigen/blas/level2_real_impl.h rename to cpp/eigen/blas/level2_real_impl.h diff --git a/eigen/blas/level3_impl.h b/cpp/eigen/blas/level3_impl.h similarity index 100% rename from eigen/blas/level3_impl.h rename to cpp/eigen/blas/level3_impl.h diff --git a/eigen/blas/single.cpp b/cpp/eigen/blas/single.cpp similarity index 100% rename from eigen/blas/single.cpp rename to cpp/eigen/blas/single.cpp diff --git a/eigen/blas/testing/CMakeLists.txt b/cpp/eigen/blas/testing/CMakeLists.txt similarity index 100% rename from eigen/blas/testing/CMakeLists.txt rename to cpp/eigen/blas/testing/CMakeLists.txt diff --git a/eigen/blas/testing/cblat1.f b/cpp/eigen/blas/testing/cblat1.f similarity index 100% rename from eigen/blas/testing/cblat1.f rename to cpp/eigen/blas/testing/cblat1.f diff --git a/eigen/blas/testing/cblat2.dat b/cpp/eigen/blas/testing/cblat2.dat similarity index 100% rename from eigen/blas/testing/cblat2.dat rename to cpp/eigen/blas/testing/cblat2.dat diff --git a/eigen/blas/testing/cblat2.f b/cpp/eigen/blas/testing/cblat2.f similarity index 100% rename from eigen/blas/testing/cblat2.f rename to cpp/eigen/blas/testing/cblat2.f diff --git a/eigen/blas/testing/cblat3.dat b/cpp/eigen/blas/testing/cblat3.dat similarity index 100% rename from eigen/blas/testing/cblat3.dat rename to cpp/eigen/blas/testing/cblat3.dat diff --git a/eigen/blas/testing/cblat3.f b/cpp/eigen/blas/testing/cblat3.f similarity index 100% rename from eigen/blas/testing/cblat3.f rename to cpp/eigen/blas/testing/cblat3.f diff --git a/eigen/blas/testing/dblat1.f b/cpp/eigen/blas/testing/dblat1.f similarity index 100% rename from eigen/blas/testing/dblat1.f rename to cpp/eigen/blas/testing/dblat1.f diff --git a/eigen/blas/testing/dblat2.dat b/cpp/eigen/blas/testing/dblat2.dat similarity index 100% rename from eigen/blas/testing/dblat2.dat rename to cpp/eigen/blas/testing/dblat2.dat diff --git a/eigen/blas/testing/dblat2.f b/cpp/eigen/blas/testing/dblat2.f similarity index 100% rename from eigen/blas/testing/dblat2.f rename to cpp/eigen/blas/testing/dblat2.f diff --git a/eigen/blas/testing/dblat3.dat b/cpp/eigen/blas/testing/dblat3.dat similarity index 100% rename from eigen/blas/testing/dblat3.dat rename to cpp/eigen/blas/testing/dblat3.dat diff --git a/eigen/blas/testing/dblat3.f b/cpp/eigen/blas/testing/dblat3.f similarity index 100% rename from eigen/blas/testing/dblat3.f rename to cpp/eigen/blas/testing/dblat3.f diff --git a/eigen/blas/testing/runblastest.sh b/cpp/eigen/blas/testing/runblastest.sh similarity index 100% rename from eigen/blas/testing/runblastest.sh rename to cpp/eigen/blas/testing/runblastest.sh diff --git a/eigen/blas/testing/sblat1.f b/cpp/eigen/blas/testing/sblat1.f similarity index 100% rename from eigen/blas/testing/sblat1.f rename to cpp/eigen/blas/testing/sblat1.f diff --git a/eigen/blas/testing/sblat2.dat b/cpp/eigen/blas/testing/sblat2.dat similarity index 100% rename from eigen/blas/testing/sblat2.dat rename to cpp/eigen/blas/testing/sblat2.dat diff --git a/eigen/blas/testing/sblat2.f b/cpp/eigen/blas/testing/sblat2.f similarity index 100% rename from eigen/blas/testing/sblat2.f rename to cpp/eigen/blas/testing/sblat2.f diff --git a/eigen/blas/testing/sblat3.dat b/cpp/eigen/blas/testing/sblat3.dat similarity index 100% rename from eigen/blas/testing/sblat3.dat rename to cpp/eigen/blas/testing/sblat3.dat diff --git a/eigen/blas/testing/sblat3.f b/cpp/eigen/blas/testing/sblat3.f similarity index 100% rename from eigen/blas/testing/sblat3.f rename to cpp/eigen/blas/testing/sblat3.f diff --git a/eigen/blas/testing/zblat1.f b/cpp/eigen/blas/testing/zblat1.f similarity index 100% rename from eigen/blas/testing/zblat1.f rename to cpp/eigen/blas/testing/zblat1.f diff --git a/eigen/blas/testing/zblat2.dat b/cpp/eigen/blas/testing/zblat2.dat similarity index 100% rename from eigen/blas/testing/zblat2.dat rename to cpp/eigen/blas/testing/zblat2.dat diff --git a/eigen/blas/testing/zblat2.f b/cpp/eigen/blas/testing/zblat2.f similarity index 100% rename from eigen/blas/testing/zblat2.f rename to cpp/eigen/blas/testing/zblat2.f diff --git a/eigen/blas/testing/zblat3.dat b/cpp/eigen/blas/testing/zblat3.dat similarity index 100% rename from eigen/blas/testing/zblat3.dat rename to cpp/eigen/blas/testing/zblat3.dat diff --git a/eigen/blas/testing/zblat3.f b/cpp/eigen/blas/testing/zblat3.f similarity index 100% rename from eigen/blas/testing/zblat3.f rename to cpp/eigen/blas/testing/zblat3.f diff --git a/eigen/blas/xerbla.cpp b/cpp/eigen/blas/xerbla.cpp similarity index 100% rename from eigen/blas/xerbla.cpp rename to cpp/eigen/blas/xerbla.cpp diff --git a/eigen/cmake/Eigen3Config.cmake.in b/cpp/eigen/cmake/Eigen3Config.cmake.in similarity index 100% rename from eigen/cmake/Eigen3Config.cmake.in rename to cpp/eigen/cmake/Eigen3Config.cmake.in diff --git a/eigen/cmake/EigenConfigureTesting.cmake b/cpp/eigen/cmake/EigenConfigureTesting.cmake similarity index 100% rename from eigen/cmake/EigenConfigureTesting.cmake rename to cpp/eigen/cmake/EigenConfigureTesting.cmake diff --git a/eigen/cmake/EigenDetermineOSVersion.cmake b/cpp/eigen/cmake/EigenDetermineOSVersion.cmake similarity index 100% rename from eigen/cmake/EigenDetermineOSVersion.cmake rename to cpp/eigen/cmake/EigenDetermineOSVersion.cmake diff --git a/eigen/cmake/EigenDetermineVSServicePack.cmake b/cpp/eigen/cmake/EigenDetermineVSServicePack.cmake similarity index 100% rename from eigen/cmake/EigenDetermineVSServicePack.cmake rename to cpp/eigen/cmake/EigenDetermineVSServicePack.cmake diff --git a/eigen/cmake/EigenTesting.cmake b/cpp/eigen/cmake/EigenTesting.cmake similarity index 100% rename from eigen/cmake/EigenTesting.cmake rename to cpp/eigen/cmake/EigenTesting.cmake diff --git a/eigen/cmake/EigenUninstall.cmake b/cpp/eigen/cmake/EigenUninstall.cmake similarity index 100% rename from eigen/cmake/EigenUninstall.cmake rename to cpp/eigen/cmake/EigenUninstall.cmake diff --git a/eigen/cmake/FindAdolc.cmake b/cpp/eigen/cmake/FindAdolc.cmake similarity index 100% rename from eigen/cmake/FindAdolc.cmake rename to cpp/eigen/cmake/FindAdolc.cmake diff --git a/eigen/cmake/FindBLAS.cmake b/cpp/eigen/cmake/FindBLAS.cmake similarity index 100% rename from eigen/cmake/FindBLAS.cmake rename to cpp/eigen/cmake/FindBLAS.cmake diff --git a/eigen/cmake/FindCholmod.cmake b/cpp/eigen/cmake/FindCholmod.cmake similarity index 100% rename from eigen/cmake/FindCholmod.cmake rename to cpp/eigen/cmake/FindCholmod.cmake diff --git a/eigen/cmake/FindComputeCpp.cmake b/cpp/eigen/cmake/FindComputeCpp.cmake similarity index 100% rename from eigen/cmake/FindComputeCpp.cmake rename to cpp/eigen/cmake/FindComputeCpp.cmake diff --git a/eigen/cmake/FindEigen2.cmake b/cpp/eigen/cmake/FindEigen2.cmake similarity index 100% rename from eigen/cmake/FindEigen2.cmake rename to cpp/eigen/cmake/FindEigen2.cmake diff --git a/eigen/cmake/FindEigen3.cmake b/cpp/eigen/cmake/FindEigen3.cmake similarity index 100% rename from eigen/cmake/FindEigen3.cmake rename to cpp/eigen/cmake/FindEigen3.cmake diff --git a/eigen/cmake/FindFFTW.cmake b/cpp/eigen/cmake/FindFFTW.cmake similarity index 100% rename from eigen/cmake/FindFFTW.cmake rename to cpp/eigen/cmake/FindFFTW.cmake diff --git a/eigen/cmake/FindGLEW.cmake b/cpp/eigen/cmake/FindGLEW.cmake similarity index 100% rename from eigen/cmake/FindGLEW.cmake rename to cpp/eigen/cmake/FindGLEW.cmake diff --git a/eigen/cmake/FindGMP.cmake b/cpp/eigen/cmake/FindGMP.cmake similarity index 100% rename from eigen/cmake/FindGMP.cmake rename to cpp/eigen/cmake/FindGMP.cmake diff --git a/eigen/cmake/FindGSL.cmake b/cpp/eigen/cmake/FindGSL.cmake similarity index 100% rename from eigen/cmake/FindGSL.cmake rename to cpp/eigen/cmake/FindGSL.cmake diff --git a/eigen/cmake/FindGoogleHash.cmake b/cpp/eigen/cmake/FindGoogleHash.cmake similarity index 100% rename from eigen/cmake/FindGoogleHash.cmake rename to cpp/eigen/cmake/FindGoogleHash.cmake diff --git a/eigen/cmake/FindLAPACK.cmake b/cpp/eigen/cmake/FindLAPACK.cmake similarity index 100% rename from eigen/cmake/FindLAPACK.cmake rename to cpp/eigen/cmake/FindLAPACK.cmake diff --git a/eigen/cmake/FindMPFR.cmake b/cpp/eigen/cmake/FindMPFR.cmake similarity index 100% rename from eigen/cmake/FindMPFR.cmake rename to cpp/eigen/cmake/FindMPFR.cmake diff --git a/eigen/cmake/FindMetis.cmake b/cpp/eigen/cmake/FindMetis.cmake similarity index 100% rename from eigen/cmake/FindMetis.cmake rename to cpp/eigen/cmake/FindMetis.cmake diff --git a/eigen/cmake/FindPastix.cmake b/cpp/eigen/cmake/FindPastix.cmake similarity index 100% rename from eigen/cmake/FindPastix.cmake rename to cpp/eigen/cmake/FindPastix.cmake diff --git a/eigen/cmake/FindSPQR.cmake b/cpp/eigen/cmake/FindSPQR.cmake similarity index 100% rename from eigen/cmake/FindSPQR.cmake rename to cpp/eigen/cmake/FindSPQR.cmake diff --git a/eigen/cmake/FindScotch.cmake b/cpp/eigen/cmake/FindScotch.cmake similarity index 100% rename from eigen/cmake/FindScotch.cmake rename to cpp/eigen/cmake/FindScotch.cmake diff --git a/eigen/cmake/FindStandardMathLibrary.cmake b/cpp/eigen/cmake/FindStandardMathLibrary.cmake similarity index 100% rename from eigen/cmake/FindStandardMathLibrary.cmake rename to cpp/eigen/cmake/FindStandardMathLibrary.cmake diff --git a/eigen/cmake/FindSuperLU.cmake b/cpp/eigen/cmake/FindSuperLU.cmake similarity index 100% rename from eigen/cmake/FindSuperLU.cmake rename to cpp/eigen/cmake/FindSuperLU.cmake diff --git a/eigen/cmake/FindUmfpack.cmake b/cpp/eigen/cmake/FindUmfpack.cmake similarity index 100% rename from eigen/cmake/FindUmfpack.cmake rename to cpp/eigen/cmake/FindUmfpack.cmake diff --git a/eigen/cmake/RegexUtils.cmake b/cpp/eigen/cmake/RegexUtils.cmake similarity index 100% rename from eigen/cmake/RegexUtils.cmake rename to cpp/eigen/cmake/RegexUtils.cmake diff --git a/eigen/cmake/UseEigen3.cmake b/cpp/eigen/cmake/UseEigen3.cmake similarity index 100% rename from eigen/cmake/UseEigen3.cmake rename to cpp/eigen/cmake/UseEigen3.cmake diff --git a/eigen/cmake/language_support.cmake b/cpp/eigen/cmake/language_support.cmake similarity index 100% rename from eigen/cmake/language_support.cmake rename to cpp/eigen/cmake/language_support.cmake diff --git a/eigen/demos/CMakeLists.txt b/cpp/eigen/demos/CMakeLists.txt similarity index 100% rename from eigen/demos/CMakeLists.txt rename to cpp/eigen/demos/CMakeLists.txt diff --git a/eigen/demos/mandelbrot/CMakeLists.txt b/cpp/eigen/demos/mandelbrot/CMakeLists.txt similarity index 100% rename from eigen/demos/mandelbrot/CMakeLists.txt rename to cpp/eigen/demos/mandelbrot/CMakeLists.txt diff --git a/eigen/demos/mandelbrot/README b/cpp/eigen/demos/mandelbrot/README similarity index 100% rename from eigen/demos/mandelbrot/README rename to cpp/eigen/demos/mandelbrot/README diff --git a/eigen/demos/mandelbrot/mandelbrot.cpp b/cpp/eigen/demos/mandelbrot/mandelbrot.cpp similarity index 100% rename from eigen/demos/mandelbrot/mandelbrot.cpp rename to cpp/eigen/demos/mandelbrot/mandelbrot.cpp diff --git a/eigen/demos/mandelbrot/mandelbrot.h b/cpp/eigen/demos/mandelbrot/mandelbrot.h similarity index 100% rename from eigen/demos/mandelbrot/mandelbrot.h rename to cpp/eigen/demos/mandelbrot/mandelbrot.h diff --git a/eigen/demos/mix_eigen_and_c/README b/cpp/eigen/demos/mix_eigen_and_c/README similarity index 100% rename from eigen/demos/mix_eigen_and_c/README rename to cpp/eigen/demos/mix_eigen_and_c/README diff --git a/eigen/demos/mix_eigen_and_c/binary_library.cpp b/cpp/eigen/demos/mix_eigen_and_c/binary_library.cpp similarity index 100% rename from eigen/demos/mix_eigen_and_c/binary_library.cpp rename to cpp/eigen/demos/mix_eigen_and_c/binary_library.cpp diff --git a/eigen/demos/mix_eigen_and_c/binary_library.h b/cpp/eigen/demos/mix_eigen_and_c/binary_library.h similarity index 100% rename from eigen/demos/mix_eigen_and_c/binary_library.h rename to cpp/eigen/demos/mix_eigen_and_c/binary_library.h diff --git a/eigen/demos/mix_eigen_and_c/example.c b/cpp/eigen/demos/mix_eigen_and_c/example.c similarity index 100% rename from eigen/demos/mix_eigen_and_c/example.c rename to cpp/eigen/demos/mix_eigen_and_c/example.c diff --git a/eigen/demos/opengl/CMakeLists.txt b/cpp/eigen/demos/opengl/CMakeLists.txt similarity index 100% rename from eigen/demos/opengl/CMakeLists.txt rename to cpp/eigen/demos/opengl/CMakeLists.txt diff --git a/eigen/demos/opengl/README b/cpp/eigen/demos/opengl/README similarity index 100% rename from eigen/demos/opengl/README rename to cpp/eigen/demos/opengl/README diff --git a/eigen/demos/opengl/camera.cpp b/cpp/eigen/demos/opengl/camera.cpp similarity index 100% rename from eigen/demos/opengl/camera.cpp rename to cpp/eigen/demos/opengl/camera.cpp diff --git a/eigen/demos/opengl/camera.h b/cpp/eigen/demos/opengl/camera.h similarity index 100% rename from eigen/demos/opengl/camera.h rename to cpp/eigen/demos/opengl/camera.h diff --git a/eigen/demos/opengl/gpuhelper.cpp b/cpp/eigen/demos/opengl/gpuhelper.cpp similarity index 100% rename from eigen/demos/opengl/gpuhelper.cpp rename to cpp/eigen/demos/opengl/gpuhelper.cpp diff --git a/eigen/demos/opengl/gpuhelper.h b/cpp/eigen/demos/opengl/gpuhelper.h similarity index 100% rename from eigen/demos/opengl/gpuhelper.h rename to cpp/eigen/demos/opengl/gpuhelper.h diff --git a/eigen/demos/opengl/icosphere.cpp b/cpp/eigen/demos/opengl/icosphere.cpp similarity index 100% rename from eigen/demos/opengl/icosphere.cpp rename to cpp/eigen/demos/opengl/icosphere.cpp diff --git a/eigen/demos/opengl/icosphere.h b/cpp/eigen/demos/opengl/icosphere.h similarity index 100% rename from eigen/demos/opengl/icosphere.h rename to cpp/eigen/demos/opengl/icosphere.h diff --git a/eigen/demos/opengl/quaternion_demo.cpp b/cpp/eigen/demos/opengl/quaternion_demo.cpp similarity index 100% rename from eigen/demos/opengl/quaternion_demo.cpp rename to cpp/eigen/demos/opengl/quaternion_demo.cpp diff --git a/eigen/demos/opengl/quaternion_demo.h b/cpp/eigen/demos/opengl/quaternion_demo.h similarity index 100% rename from eigen/demos/opengl/quaternion_demo.h rename to cpp/eigen/demos/opengl/quaternion_demo.h diff --git a/eigen/demos/opengl/trackball.cpp b/cpp/eigen/demos/opengl/trackball.cpp similarity index 100% rename from eigen/demos/opengl/trackball.cpp rename to cpp/eigen/demos/opengl/trackball.cpp diff --git a/eigen/demos/opengl/trackball.h b/cpp/eigen/demos/opengl/trackball.h similarity index 100% rename from eigen/demos/opengl/trackball.h rename to cpp/eigen/demos/opengl/trackball.h diff --git a/eigen/doc/A05_PortingFrom2To3.dox b/cpp/eigen/doc/A05_PortingFrom2To3.dox similarity index 100% rename from eigen/doc/A05_PortingFrom2To3.dox rename to cpp/eigen/doc/A05_PortingFrom2To3.dox diff --git a/eigen/doc/AsciiQuickReference.txt b/cpp/eigen/doc/AsciiQuickReference.txt similarity index 100% rename from eigen/doc/AsciiQuickReference.txt rename to cpp/eigen/doc/AsciiQuickReference.txt diff --git a/eigen/doc/B01_Experimental.dox b/cpp/eigen/doc/B01_Experimental.dox similarity index 100% rename from eigen/doc/B01_Experimental.dox rename to cpp/eigen/doc/B01_Experimental.dox diff --git a/eigen/doc/CMakeLists.txt b/cpp/eigen/doc/CMakeLists.txt similarity index 100% rename from eigen/doc/CMakeLists.txt rename to cpp/eigen/doc/CMakeLists.txt diff --git a/eigen/doc/ClassHierarchy.dox b/cpp/eigen/doc/ClassHierarchy.dox similarity index 100% rename from eigen/doc/ClassHierarchy.dox rename to cpp/eigen/doc/ClassHierarchy.dox diff --git a/eigen/doc/CoeffwiseMathFunctionsTable.dox b/cpp/eigen/doc/CoeffwiseMathFunctionsTable.dox similarity index 100% rename from eigen/doc/CoeffwiseMathFunctionsTable.dox rename to cpp/eigen/doc/CoeffwiseMathFunctionsTable.dox diff --git a/eigen/doc/CustomizingEigen_CustomScalar.dox b/cpp/eigen/doc/CustomizingEigen_CustomScalar.dox similarity index 100% rename from eigen/doc/CustomizingEigen_CustomScalar.dox rename to cpp/eigen/doc/CustomizingEigen_CustomScalar.dox diff --git a/eigen/doc/CustomizingEigen_InheritingMatrix.dox b/cpp/eigen/doc/CustomizingEigen_InheritingMatrix.dox similarity index 100% rename from eigen/doc/CustomizingEigen_InheritingMatrix.dox rename to cpp/eigen/doc/CustomizingEigen_InheritingMatrix.dox diff --git a/eigen/doc/CustomizingEigen_NullaryExpr.dox b/cpp/eigen/doc/CustomizingEigen_NullaryExpr.dox similarity index 100% rename from eigen/doc/CustomizingEigen_NullaryExpr.dox rename to cpp/eigen/doc/CustomizingEigen_NullaryExpr.dox diff --git a/eigen/doc/CustomizingEigen_Plugins.dox b/cpp/eigen/doc/CustomizingEigen_Plugins.dox similarity index 100% rename from eigen/doc/CustomizingEigen_Plugins.dox rename to cpp/eigen/doc/CustomizingEigen_Plugins.dox diff --git a/eigen/doc/DenseDecompositionBenchmark.dox b/cpp/eigen/doc/DenseDecompositionBenchmark.dox similarity index 100% rename from eigen/doc/DenseDecompositionBenchmark.dox rename to cpp/eigen/doc/DenseDecompositionBenchmark.dox diff --git a/eigen/doc/Doxyfile.in b/cpp/eigen/doc/Doxyfile.in similarity index 100% rename from eigen/doc/Doxyfile.in rename to cpp/eigen/doc/Doxyfile.in diff --git a/eigen/doc/Eigen_Silly_Professor_64x64.png b/cpp/eigen/doc/Eigen_Silly_Professor_64x64.png similarity index 100% rename from eigen/doc/Eigen_Silly_Professor_64x64.png rename to cpp/eigen/doc/Eigen_Silly_Professor_64x64.png diff --git a/eigen/doc/FixedSizeVectorizable.dox b/cpp/eigen/doc/FixedSizeVectorizable.dox similarity index 100% rename from eigen/doc/FixedSizeVectorizable.dox rename to cpp/eigen/doc/FixedSizeVectorizable.dox diff --git a/eigen/doc/FunctionsTakingEigenTypes.dox b/cpp/eigen/doc/FunctionsTakingEigenTypes.dox similarity index 100% rename from eigen/doc/FunctionsTakingEigenTypes.dox rename to cpp/eigen/doc/FunctionsTakingEigenTypes.dox diff --git a/eigen/doc/HiPerformance.dox b/cpp/eigen/doc/HiPerformance.dox similarity index 100% rename from eigen/doc/HiPerformance.dox rename to cpp/eigen/doc/HiPerformance.dox diff --git a/eigen/doc/InplaceDecomposition.dox b/cpp/eigen/doc/InplaceDecomposition.dox similarity index 100% rename from eigen/doc/InplaceDecomposition.dox rename to cpp/eigen/doc/InplaceDecomposition.dox diff --git a/eigen/doc/InsideEigenExample.dox b/cpp/eigen/doc/InsideEigenExample.dox similarity index 100% rename from eigen/doc/InsideEigenExample.dox rename to cpp/eigen/doc/InsideEigenExample.dox diff --git a/eigen/doc/LeastSquares.dox b/cpp/eigen/doc/LeastSquares.dox similarity index 100% rename from eigen/doc/LeastSquares.dox rename to cpp/eigen/doc/LeastSquares.dox diff --git a/eigen/doc/Manual.dox b/cpp/eigen/doc/Manual.dox similarity index 100% rename from eigen/doc/Manual.dox rename to cpp/eigen/doc/Manual.dox diff --git a/eigen/doc/MatrixfreeSolverExample.dox b/cpp/eigen/doc/MatrixfreeSolverExample.dox similarity index 100% rename from eigen/doc/MatrixfreeSolverExample.dox rename to cpp/eigen/doc/MatrixfreeSolverExample.dox diff --git a/eigen/doc/NewExpressionType.dox b/cpp/eigen/doc/NewExpressionType.dox similarity index 100% rename from eigen/doc/NewExpressionType.dox rename to cpp/eigen/doc/NewExpressionType.dox diff --git a/eigen/doc/Overview.dox b/cpp/eigen/doc/Overview.dox similarity index 100% rename from eigen/doc/Overview.dox rename to cpp/eigen/doc/Overview.dox diff --git a/eigen/doc/PassingByValue.dox b/cpp/eigen/doc/PassingByValue.dox similarity index 100% rename from eigen/doc/PassingByValue.dox rename to cpp/eigen/doc/PassingByValue.dox diff --git a/eigen/doc/Pitfalls.dox b/cpp/eigen/doc/Pitfalls.dox similarity index 100% rename from eigen/doc/Pitfalls.dox rename to cpp/eigen/doc/Pitfalls.dox diff --git a/eigen/doc/PreprocessorDirectives.dox b/cpp/eigen/doc/PreprocessorDirectives.dox similarity index 100% rename from eigen/doc/PreprocessorDirectives.dox rename to cpp/eigen/doc/PreprocessorDirectives.dox diff --git a/eigen/doc/QuickReference.dox b/cpp/eigen/doc/QuickReference.dox similarity index 100% rename from eigen/doc/QuickReference.dox rename to cpp/eigen/doc/QuickReference.dox diff --git a/eigen/doc/QuickStartGuide.dox b/cpp/eigen/doc/QuickStartGuide.dox similarity index 100% rename from eigen/doc/QuickStartGuide.dox rename to cpp/eigen/doc/QuickStartGuide.dox diff --git a/eigen/doc/SparseLinearSystems.dox b/cpp/eigen/doc/SparseLinearSystems.dox similarity index 100% rename from eigen/doc/SparseLinearSystems.dox rename to cpp/eigen/doc/SparseLinearSystems.dox diff --git a/eigen/doc/SparseQuickReference.dox b/cpp/eigen/doc/SparseQuickReference.dox similarity index 100% rename from eigen/doc/SparseQuickReference.dox rename to cpp/eigen/doc/SparseQuickReference.dox diff --git a/eigen/doc/StlContainers.dox b/cpp/eigen/doc/StlContainers.dox similarity index 100% rename from eigen/doc/StlContainers.dox rename to cpp/eigen/doc/StlContainers.dox diff --git a/eigen/doc/StorageOrders.dox b/cpp/eigen/doc/StorageOrders.dox similarity index 100% rename from eigen/doc/StorageOrders.dox rename to cpp/eigen/doc/StorageOrders.dox diff --git a/eigen/doc/StructHavingEigenMembers.dox b/cpp/eigen/doc/StructHavingEigenMembers.dox similarity index 100% rename from eigen/doc/StructHavingEigenMembers.dox rename to cpp/eigen/doc/StructHavingEigenMembers.dox diff --git a/eigen/doc/TemplateKeyword.dox b/cpp/eigen/doc/TemplateKeyword.dox similarity index 100% rename from eigen/doc/TemplateKeyword.dox rename to cpp/eigen/doc/TemplateKeyword.dox diff --git a/eigen/doc/TopicAliasing.dox b/cpp/eigen/doc/TopicAliasing.dox similarity index 100% rename from eigen/doc/TopicAliasing.dox rename to cpp/eigen/doc/TopicAliasing.dox diff --git a/eigen/doc/TopicAssertions.dox b/cpp/eigen/doc/TopicAssertions.dox similarity index 100% rename from eigen/doc/TopicAssertions.dox rename to cpp/eigen/doc/TopicAssertions.dox diff --git a/eigen/doc/TopicEigenExpressionTemplates.dox b/cpp/eigen/doc/TopicEigenExpressionTemplates.dox similarity index 100% rename from eigen/doc/TopicEigenExpressionTemplates.dox rename to cpp/eigen/doc/TopicEigenExpressionTemplates.dox diff --git a/eigen/doc/TopicLazyEvaluation.dox b/cpp/eigen/doc/TopicLazyEvaluation.dox similarity index 100% rename from eigen/doc/TopicLazyEvaluation.dox rename to cpp/eigen/doc/TopicLazyEvaluation.dox diff --git a/eigen/doc/TopicLinearAlgebraDecompositions.dox b/cpp/eigen/doc/TopicLinearAlgebraDecompositions.dox similarity index 100% rename from eigen/doc/TopicLinearAlgebraDecompositions.dox rename to cpp/eigen/doc/TopicLinearAlgebraDecompositions.dox diff --git a/eigen/doc/TopicMultithreading.dox b/cpp/eigen/doc/TopicMultithreading.dox similarity index 100% rename from eigen/doc/TopicMultithreading.dox rename to cpp/eigen/doc/TopicMultithreading.dox diff --git a/eigen/doc/TopicResizing.dox b/cpp/eigen/doc/TopicResizing.dox similarity index 100% rename from eigen/doc/TopicResizing.dox rename to cpp/eigen/doc/TopicResizing.dox diff --git a/eigen/doc/TopicScalarTypes.dox b/cpp/eigen/doc/TopicScalarTypes.dox similarity index 100% rename from eigen/doc/TopicScalarTypes.dox rename to cpp/eigen/doc/TopicScalarTypes.dox diff --git a/eigen/doc/TopicVectorization.dox b/cpp/eigen/doc/TopicVectorization.dox similarity index 100% rename from eigen/doc/TopicVectorization.dox rename to cpp/eigen/doc/TopicVectorization.dox diff --git a/eigen/doc/TutorialAdvancedInitialization.dox b/cpp/eigen/doc/TutorialAdvancedInitialization.dox similarity index 100% rename from eigen/doc/TutorialAdvancedInitialization.dox rename to cpp/eigen/doc/TutorialAdvancedInitialization.dox diff --git a/eigen/doc/TutorialArrayClass.dox b/cpp/eigen/doc/TutorialArrayClass.dox similarity index 100% rename from eigen/doc/TutorialArrayClass.dox rename to cpp/eigen/doc/TutorialArrayClass.dox diff --git a/eigen/doc/TutorialBlockOperations.dox b/cpp/eigen/doc/TutorialBlockOperations.dox similarity index 100% rename from eigen/doc/TutorialBlockOperations.dox rename to cpp/eigen/doc/TutorialBlockOperations.dox diff --git a/eigen/doc/TutorialGeometry.dox b/cpp/eigen/doc/TutorialGeometry.dox similarity index 100% rename from eigen/doc/TutorialGeometry.dox rename to cpp/eigen/doc/TutorialGeometry.dox diff --git a/eigen/doc/TutorialLinearAlgebra.dox b/cpp/eigen/doc/TutorialLinearAlgebra.dox similarity index 100% rename from eigen/doc/TutorialLinearAlgebra.dox rename to cpp/eigen/doc/TutorialLinearAlgebra.dox diff --git a/eigen/doc/TutorialMapClass.dox b/cpp/eigen/doc/TutorialMapClass.dox similarity index 100% rename from eigen/doc/TutorialMapClass.dox rename to cpp/eigen/doc/TutorialMapClass.dox diff --git a/eigen/doc/TutorialMatrixArithmetic.dox b/cpp/eigen/doc/TutorialMatrixArithmetic.dox similarity index 100% rename from eigen/doc/TutorialMatrixArithmetic.dox rename to cpp/eigen/doc/TutorialMatrixArithmetic.dox diff --git a/eigen/doc/TutorialMatrixClass.dox b/cpp/eigen/doc/TutorialMatrixClass.dox similarity index 100% rename from eigen/doc/TutorialMatrixClass.dox rename to cpp/eigen/doc/TutorialMatrixClass.dox diff --git a/eigen/doc/TutorialReductionsVisitorsBroadcasting.dox b/cpp/eigen/doc/TutorialReductionsVisitorsBroadcasting.dox similarity index 100% rename from eigen/doc/TutorialReductionsVisitorsBroadcasting.dox rename to cpp/eigen/doc/TutorialReductionsVisitorsBroadcasting.dox diff --git a/eigen/doc/TutorialReshapeSlicing.dox b/cpp/eigen/doc/TutorialReshapeSlicing.dox similarity index 100% rename from eigen/doc/TutorialReshapeSlicing.dox rename to cpp/eigen/doc/TutorialReshapeSlicing.dox diff --git a/eigen/doc/TutorialSparse.dox b/cpp/eigen/doc/TutorialSparse.dox similarity index 100% rename from eigen/doc/TutorialSparse.dox rename to cpp/eigen/doc/TutorialSparse.dox diff --git a/eigen/doc/TutorialSparse_example_details.dox b/cpp/eigen/doc/TutorialSparse_example_details.dox similarity index 100% rename from eigen/doc/TutorialSparse_example_details.dox rename to cpp/eigen/doc/TutorialSparse_example_details.dox diff --git a/eigen/doc/UnalignedArrayAssert.dox b/cpp/eigen/doc/UnalignedArrayAssert.dox similarity index 100% rename from eigen/doc/UnalignedArrayAssert.dox rename to cpp/eigen/doc/UnalignedArrayAssert.dox diff --git a/eigen/doc/UsingBlasLapackBackends.dox b/cpp/eigen/doc/UsingBlasLapackBackends.dox similarity index 100% rename from eigen/doc/UsingBlasLapackBackends.dox rename to cpp/eigen/doc/UsingBlasLapackBackends.dox diff --git a/eigen/doc/UsingIntelMKL.dox b/cpp/eigen/doc/UsingIntelMKL.dox similarity index 100% rename from eigen/doc/UsingIntelMKL.dox rename to cpp/eigen/doc/UsingIntelMKL.dox diff --git a/eigen/doc/UsingNVCC.dox b/cpp/eigen/doc/UsingNVCC.dox similarity index 100% rename from eigen/doc/UsingNVCC.dox rename to cpp/eigen/doc/UsingNVCC.dox diff --git a/eigen/doc/WrongStackAlignment.dox b/cpp/eigen/doc/WrongStackAlignment.dox similarity index 100% rename from eigen/doc/WrongStackAlignment.dox rename to cpp/eigen/doc/WrongStackAlignment.dox diff --git a/eigen/doc/eigen_navtree_hacks.js b/cpp/eigen/doc/eigen_navtree_hacks.js similarity index 100% rename from eigen/doc/eigen_navtree_hacks.js rename to cpp/eigen/doc/eigen_navtree_hacks.js diff --git a/eigen/doc/eigendoxy.css b/cpp/eigen/doc/eigendoxy.css similarity index 100% rename from eigen/doc/eigendoxy.css rename to cpp/eigen/doc/eigendoxy.css diff --git a/eigen/doc/eigendoxy_footer.html.in b/cpp/eigen/doc/eigendoxy_footer.html.in similarity index 100% rename from eigen/doc/eigendoxy_footer.html.in rename to cpp/eigen/doc/eigendoxy_footer.html.in diff --git a/eigen/doc/eigendoxy_header.html.in b/cpp/eigen/doc/eigendoxy_header.html.in similarity index 100% rename from eigen/doc/eigendoxy_header.html.in rename to cpp/eigen/doc/eigendoxy_header.html.in diff --git a/eigen/doc/eigendoxy_layout.xml.in b/cpp/eigen/doc/eigendoxy_layout.xml.in similarity index 100% rename from eigen/doc/eigendoxy_layout.xml.in rename to cpp/eigen/doc/eigendoxy_layout.xml.in diff --git a/eigen/doc/eigendoxy_tabs.css b/cpp/eigen/doc/eigendoxy_tabs.css similarity index 100% rename from eigen/doc/eigendoxy_tabs.css rename to cpp/eigen/doc/eigendoxy_tabs.css diff --git a/eigen/doc/examples/.krazy b/cpp/eigen/doc/examples/.krazy similarity index 100% rename from eigen/doc/examples/.krazy rename to cpp/eigen/doc/examples/.krazy diff --git a/eigen/doc/examples/CMakeLists.txt b/cpp/eigen/doc/examples/CMakeLists.txt similarity index 100% rename from eigen/doc/examples/CMakeLists.txt rename to cpp/eigen/doc/examples/CMakeLists.txt diff --git a/eigen/doc/examples/CustomizingEigen_Inheritance.cpp b/cpp/eigen/doc/examples/CustomizingEigen_Inheritance.cpp similarity index 100% rename from eigen/doc/examples/CustomizingEigen_Inheritance.cpp rename to cpp/eigen/doc/examples/CustomizingEigen_Inheritance.cpp diff --git a/eigen/doc/examples/Cwise_erf.cpp b/cpp/eigen/doc/examples/Cwise_erf.cpp similarity index 100% rename from eigen/doc/examples/Cwise_erf.cpp rename to cpp/eigen/doc/examples/Cwise_erf.cpp diff --git a/eigen/doc/examples/Cwise_erfc.cpp b/cpp/eigen/doc/examples/Cwise_erfc.cpp similarity index 100% rename from eigen/doc/examples/Cwise_erfc.cpp rename to cpp/eigen/doc/examples/Cwise_erfc.cpp diff --git a/eigen/doc/examples/Cwise_lgamma.cpp b/cpp/eigen/doc/examples/Cwise_lgamma.cpp similarity index 100% rename from eigen/doc/examples/Cwise_lgamma.cpp rename to cpp/eigen/doc/examples/Cwise_lgamma.cpp diff --git a/eigen/doc/examples/DenseBase_middleCols_int.cpp b/cpp/eigen/doc/examples/DenseBase_middleCols_int.cpp similarity index 100% rename from eigen/doc/examples/DenseBase_middleCols_int.cpp rename to cpp/eigen/doc/examples/DenseBase_middleCols_int.cpp diff --git a/eigen/doc/examples/DenseBase_middleRows_int.cpp b/cpp/eigen/doc/examples/DenseBase_middleRows_int.cpp similarity index 100% rename from eigen/doc/examples/DenseBase_middleRows_int.cpp rename to cpp/eigen/doc/examples/DenseBase_middleRows_int.cpp diff --git a/eigen/doc/examples/DenseBase_template_int_middleCols.cpp b/cpp/eigen/doc/examples/DenseBase_template_int_middleCols.cpp similarity index 100% rename from eigen/doc/examples/DenseBase_template_int_middleCols.cpp rename to cpp/eigen/doc/examples/DenseBase_template_int_middleCols.cpp diff --git a/eigen/doc/examples/DenseBase_template_int_middleRows.cpp b/cpp/eigen/doc/examples/DenseBase_template_int_middleRows.cpp similarity index 100% rename from eigen/doc/examples/DenseBase_template_int_middleRows.cpp rename to cpp/eigen/doc/examples/DenseBase_template_int_middleRows.cpp diff --git a/eigen/doc/examples/QuickStart_example.cpp b/cpp/eigen/doc/examples/QuickStart_example.cpp similarity index 100% rename from eigen/doc/examples/QuickStart_example.cpp rename to cpp/eigen/doc/examples/QuickStart_example.cpp diff --git a/eigen/doc/examples/QuickStart_example2_dynamic.cpp b/cpp/eigen/doc/examples/QuickStart_example2_dynamic.cpp similarity index 100% rename from eigen/doc/examples/QuickStart_example2_dynamic.cpp rename to cpp/eigen/doc/examples/QuickStart_example2_dynamic.cpp diff --git a/eigen/doc/examples/QuickStart_example2_fixed.cpp b/cpp/eigen/doc/examples/QuickStart_example2_fixed.cpp similarity index 100% rename from eigen/doc/examples/QuickStart_example2_fixed.cpp rename to cpp/eigen/doc/examples/QuickStart_example2_fixed.cpp diff --git a/eigen/doc/examples/TemplateKeyword_flexible.cpp b/cpp/eigen/doc/examples/TemplateKeyword_flexible.cpp similarity index 100% rename from eigen/doc/examples/TemplateKeyword_flexible.cpp rename to cpp/eigen/doc/examples/TemplateKeyword_flexible.cpp diff --git a/eigen/doc/examples/TemplateKeyword_simple.cpp b/cpp/eigen/doc/examples/TemplateKeyword_simple.cpp similarity index 100% rename from eigen/doc/examples/TemplateKeyword_simple.cpp rename to cpp/eigen/doc/examples/TemplateKeyword_simple.cpp diff --git a/eigen/doc/examples/TutorialInplaceLU.cpp b/cpp/eigen/doc/examples/TutorialInplaceLU.cpp similarity index 100% rename from eigen/doc/examples/TutorialInplaceLU.cpp rename to cpp/eigen/doc/examples/TutorialInplaceLU.cpp diff --git a/eigen/doc/examples/TutorialLinAlgComputeTwice.cpp b/cpp/eigen/doc/examples/TutorialLinAlgComputeTwice.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgComputeTwice.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgComputeTwice.cpp diff --git a/eigen/doc/examples/TutorialLinAlgExComputeSolveError.cpp b/cpp/eigen/doc/examples/TutorialLinAlgExComputeSolveError.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgExComputeSolveError.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgExComputeSolveError.cpp diff --git a/eigen/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp b/cpp/eigen/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgExSolveColPivHouseholderQR.cpp diff --git a/eigen/doc/examples/TutorialLinAlgExSolveLDLT.cpp b/cpp/eigen/doc/examples/TutorialLinAlgExSolveLDLT.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgExSolveLDLT.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgExSolveLDLT.cpp diff --git a/eigen/doc/examples/TutorialLinAlgInverseDeterminant.cpp b/cpp/eigen/doc/examples/TutorialLinAlgInverseDeterminant.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgInverseDeterminant.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgInverseDeterminant.cpp diff --git a/eigen/doc/examples/TutorialLinAlgRankRevealing.cpp b/cpp/eigen/doc/examples/TutorialLinAlgRankRevealing.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgRankRevealing.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgRankRevealing.cpp diff --git a/eigen/doc/examples/TutorialLinAlgSVDSolve.cpp b/cpp/eigen/doc/examples/TutorialLinAlgSVDSolve.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgSVDSolve.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgSVDSolve.cpp diff --git a/eigen/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp b/cpp/eigen/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgSelfAdjointEigenSolver.cpp diff --git a/eigen/doc/examples/TutorialLinAlgSetThreshold.cpp b/cpp/eigen/doc/examples/TutorialLinAlgSetThreshold.cpp similarity index 100% rename from eigen/doc/examples/TutorialLinAlgSetThreshold.cpp rename to cpp/eigen/doc/examples/TutorialLinAlgSetThreshold.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_accessors.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_accessors.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_accessors.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_accessors.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_addition.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_addition.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_addition.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_addition.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_cwise_other.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_cwise_other.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_cwise_other.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_cwise_other.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_interop.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_interop.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_interop.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_interop.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_interop_matrix.cpp diff --git a/eigen/doc/examples/Tutorial_ArrayClass_mult.cpp b/cpp/eigen/doc/examples/Tutorial_ArrayClass_mult.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ArrayClass_mult.cpp rename to cpp/eigen/doc/examples/Tutorial_ArrayClass_mult.cpp diff --git a/eigen/doc/examples/Tutorial_BlockOperations_block_assignment.cpp b/cpp/eigen/doc/examples/Tutorial_BlockOperations_block_assignment.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_BlockOperations_block_assignment.cpp rename to cpp/eigen/doc/examples/Tutorial_BlockOperations_block_assignment.cpp diff --git a/eigen/doc/examples/Tutorial_BlockOperations_colrow.cpp b/cpp/eigen/doc/examples/Tutorial_BlockOperations_colrow.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_BlockOperations_colrow.cpp rename to cpp/eigen/doc/examples/Tutorial_BlockOperations_colrow.cpp diff --git a/eigen/doc/examples/Tutorial_BlockOperations_corner.cpp b/cpp/eigen/doc/examples/Tutorial_BlockOperations_corner.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_BlockOperations_corner.cpp rename to cpp/eigen/doc/examples/Tutorial_BlockOperations_corner.cpp diff --git a/eigen/doc/examples/Tutorial_BlockOperations_print_block.cpp b/cpp/eigen/doc/examples/Tutorial_BlockOperations_print_block.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_BlockOperations_print_block.cpp rename to cpp/eigen/doc/examples/Tutorial_BlockOperations_print_block.cpp diff --git a/eigen/doc/examples/Tutorial_BlockOperations_vector.cpp b/cpp/eigen/doc/examples/Tutorial_BlockOperations_vector.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_BlockOperations_vector.cpp rename to cpp/eigen/doc/examples/Tutorial_BlockOperations_vector.cpp diff --git a/eigen/doc/examples/Tutorial_PartialLU_solve.cpp b/cpp/eigen/doc/examples/Tutorial_PartialLU_solve.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_PartialLU_solve.cpp rename to cpp/eigen/doc/examples/Tutorial_PartialLU_solve.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_1nn.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_broadcast_simple_rowwise.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_colwise.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_maxnorm.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_bool.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_norm.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_reductions_operatornorm.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_rowwise.cpp diff --git a/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp b/cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp rename to cpp/eigen/doc/examples/Tutorial_ReductionsVisitorsBroadcasting_visitors.cpp diff --git a/eigen/doc/examples/Tutorial_simple_example_dynamic_size.cpp b/cpp/eigen/doc/examples/Tutorial_simple_example_dynamic_size.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_simple_example_dynamic_size.cpp rename to cpp/eigen/doc/examples/Tutorial_simple_example_dynamic_size.cpp diff --git a/eigen/doc/examples/Tutorial_simple_example_fixed_size.cpp b/cpp/eigen/doc/examples/Tutorial_simple_example_fixed_size.cpp similarity index 100% rename from eigen/doc/examples/Tutorial_simple_example_fixed_size.cpp rename to cpp/eigen/doc/examples/Tutorial_simple_example_fixed_size.cpp diff --git a/eigen/doc/examples/class_Block.cpp b/cpp/eigen/doc/examples/class_Block.cpp similarity index 100% rename from eigen/doc/examples/class_Block.cpp rename to cpp/eigen/doc/examples/class_Block.cpp diff --git a/eigen/doc/examples/class_CwiseBinaryOp.cpp b/cpp/eigen/doc/examples/class_CwiseBinaryOp.cpp similarity index 100% rename from eigen/doc/examples/class_CwiseBinaryOp.cpp rename to cpp/eigen/doc/examples/class_CwiseBinaryOp.cpp diff --git a/eigen/doc/examples/class_CwiseUnaryOp.cpp b/cpp/eigen/doc/examples/class_CwiseUnaryOp.cpp similarity index 100% rename from eigen/doc/examples/class_CwiseUnaryOp.cpp rename to cpp/eigen/doc/examples/class_CwiseUnaryOp.cpp diff --git a/eigen/doc/examples/class_CwiseUnaryOp_ptrfun.cpp b/cpp/eigen/doc/examples/class_CwiseUnaryOp_ptrfun.cpp similarity index 100% rename from eigen/doc/examples/class_CwiseUnaryOp_ptrfun.cpp rename to cpp/eigen/doc/examples/class_CwiseUnaryOp_ptrfun.cpp diff --git a/eigen/doc/examples/class_FixedBlock.cpp b/cpp/eigen/doc/examples/class_FixedBlock.cpp similarity index 100% rename from eigen/doc/examples/class_FixedBlock.cpp rename to cpp/eigen/doc/examples/class_FixedBlock.cpp diff --git a/eigen/doc/examples/class_FixedVectorBlock.cpp b/cpp/eigen/doc/examples/class_FixedVectorBlock.cpp similarity index 100% rename from eigen/doc/examples/class_FixedVectorBlock.cpp rename to cpp/eigen/doc/examples/class_FixedVectorBlock.cpp diff --git a/eigen/doc/examples/class_VectorBlock.cpp b/cpp/eigen/doc/examples/class_VectorBlock.cpp similarity index 100% rename from eigen/doc/examples/class_VectorBlock.cpp rename to cpp/eigen/doc/examples/class_VectorBlock.cpp diff --git a/eigen/doc/examples/function_taking_eigenbase.cpp b/cpp/eigen/doc/examples/function_taking_eigenbase.cpp similarity index 100% rename from eigen/doc/examples/function_taking_eigenbase.cpp rename to cpp/eigen/doc/examples/function_taking_eigenbase.cpp diff --git a/eigen/doc/examples/function_taking_ref.cpp b/cpp/eigen/doc/examples/function_taking_ref.cpp similarity index 100% rename from eigen/doc/examples/function_taking_ref.cpp rename to cpp/eigen/doc/examples/function_taking_ref.cpp diff --git a/eigen/doc/examples/make_circulant.cpp b/cpp/eigen/doc/examples/make_circulant.cpp similarity index 100% rename from eigen/doc/examples/make_circulant.cpp rename to cpp/eigen/doc/examples/make_circulant.cpp diff --git a/eigen/doc/examples/make_circulant.cpp.entry b/cpp/eigen/doc/examples/make_circulant.cpp.entry similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.entry rename to cpp/eigen/doc/examples/make_circulant.cpp.entry diff --git a/eigen/doc/examples/make_circulant.cpp.evaluator b/cpp/eigen/doc/examples/make_circulant.cpp.evaluator similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.evaluator rename to cpp/eigen/doc/examples/make_circulant.cpp.evaluator diff --git a/eigen/doc/examples/make_circulant.cpp.expression b/cpp/eigen/doc/examples/make_circulant.cpp.expression similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.expression rename to cpp/eigen/doc/examples/make_circulant.cpp.expression diff --git a/eigen/doc/examples/make_circulant.cpp.main b/cpp/eigen/doc/examples/make_circulant.cpp.main similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.main rename to cpp/eigen/doc/examples/make_circulant.cpp.main diff --git a/eigen/doc/examples/make_circulant.cpp.preamble b/cpp/eigen/doc/examples/make_circulant.cpp.preamble similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.preamble rename to cpp/eigen/doc/examples/make_circulant.cpp.preamble diff --git a/eigen/doc/examples/make_circulant.cpp.traits b/cpp/eigen/doc/examples/make_circulant.cpp.traits similarity index 100% rename from eigen/doc/examples/make_circulant.cpp.traits rename to cpp/eigen/doc/examples/make_circulant.cpp.traits diff --git a/eigen/doc/examples/make_circulant2.cpp b/cpp/eigen/doc/examples/make_circulant2.cpp similarity index 100% rename from eigen/doc/examples/make_circulant2.cpp rename to cpp/eigen/doc/examples/make_circulant2.cpp diff --git a/eigen/doc/examples/matrixfree_cg.cpp b/cpp/eigen/doc/examples/matrixfree_cg.cpp similarity index 100% rename from eigen/doc/examples/matrixfree_cg.cpp rename to cpp/eigen/doc/examples/matrixfree_cg.cpp diff --git a/eigen/doc/examples/nullary_indexing.cpp b/cpp/eigen/doc/examples/nullary_indexing.cpp similarity index 100% rename from eigen/doc/examples/nullary_indexing.cpp rename to cpp/eigen/doc/examples/nullary_indexing.cpp diff --git a/eigen/doc/examples/tut_arithmetic_add_sub.cpp b/cpp/eigen/doc/examples/tut_arithmetic_add_sub.cpp similarity index 100% rename from eigen/doc/examples/tut_arithmetic_add_sub.cpp rename to cpp/eigen/doc/examples/tut_arithmetic_add_sub.cpp diff --git a/eigen/doc/examples/tut_arithmetic_dot_cross.cpp b/cpp/eigen/doc/examples/tut_arithmetic_dot_cross.cpp similarity index 100% rename from eigen/doc/examples/tut_arithmetic_dot_cross.cpp rename to cpp/eigen/doc/examples/tut_arithmetic_dot_cross.cpp diff --git a/eigen/doc/examples/tut_arithmetic_matrix_mul.cpp b/cpp/eigen/doc/examples/tut_arithmetic_matrix_mul.cpp similarity index 100% rename from eigen/doc/examples/tut_arithmetic_matrix_mul.cpp rename to cpp/eigen/doc/examples/tut_arithmetic_matrix_mul.cpp diff --git a/eigen/doc/examples/tut_arithmetic_redux_basic.cpp b/cpp/eigen/doc/examples/tut_arithmetic_redux_basic.cpp similarity index 100% rename from eigen/doc/examples/tut_arithmetic_redux_basic.cpp rename to cpp/eigen/doc/examples/tut_arithmetic_redux_basic.cpp diff --git a/eigen/doc/examples/tut_arithmetic_scalar_mul_div.cpp b/cpp/eigen/doc/examples/tut_arithmetic_scalar_mul_div.cpp similarity index 100% rename from eigen/doc/examples/tut_arithmetic_scalar_mul_div.cpp rename to cpp/eigen/doc/examples/tut_arithmetic_scalar_mul_div.cpp diff --git a/eigen/doc/examples/tut_matrix_coefficient_accessors.cpp b/cpp/eigen/doc/examples/tut_matrix_coefficient_accessors.cpp similarity index 100% rename from eigen/doc/examples/tut_matrix_coefficient_accessors.cpp rename to cpp/eigen/doc/examples/tut_matrix_coefficient_accessors.cpp diff --git a/eigen/doc/examples/tut_matrix_resize.cpp b/cpp/eigen/doc/examples/tut_matrix_resize.cpp similarity index 100% rename from eigen/doc/examples/tut_matrix_resize.cpp rename to cpp/eigen/doc/examples/tut_matrix_resize.cpp diff --git a/eigen/doc/examples/tut_matrix_resize_fixed_size.cpp b/cpp/eigen/doc/examples/tut_matrix_resize_fixed_size.cpp similarity index 100% rename from eigen/doc/examples/tut_matrix_resize_fixed_size.cpp rename to cpp/eigen/doc/examples/tut_matrix_resize_fixed_size.cpp diff --git a/eigen/doc/ftv2node.png b/cpp/eigen/doc/ftv2node.png similarity index 100% rename from eigen/doc/ftv2node.png rename to cpp/eigen/doc/ftv2node.png diff --git a/eigen/doc/ftv2pnode.png b/cpp/eigen/doc/ftv2pnode.png similarity index 100% rename from eigen/doc/ftv2pnode.png rename to cpp/eigen/doc/ftv2pnode.png diff --git a/eigen/doc/snippets/.krazy b/cpp/eigen/doc/snippets/.krazy similarity index 100% rename from eigen/doc/snippets/.krazy rename to cpp/eigen/doc/snippets/.krazy diff --git a/eigen/doc/snippets/AngleAxis_mimic_euler.cpp b/cpp/eigen/doc/snippets/AngleAxis_mimic_euler.cpp similarity index 100% rename from eigen/doc/snippets/AngleAxis_mimic_euler.cpp rename to cpp/eigen/doc/snippets/AngleAxis_mimic_euler.cpp diff --git a/eigen/doc/snippets/BiCGSTAB_simple.cpp b/cpp/eigen/doc/snippets/BiCGSTAB_simple.cpp similarity index 100% rename from eigen/doc/snippets/BiCGSTAB_simple.cpp rename to cpp/eigen/doc/snippets/BiCGSTAB_simple.cpp diff --git a/eigen/doc/snippets/BiCGSTAB_step_by_step.cpp b/cpp/eigen/doc/snippets/BiCGSTAB_step_by_step.cpp similarity index 100% rename from eigen/doc/snippets/BiCGSTAB_step_by_step.cpp rename to cpp/eigen/doc/snippets/BiCGSTAB_step_by_step.cpp diff --git a/eigen/doc/snippets/CMakeLists.txt b/cpp/eigen/doc/snippets/CMakeLists.txt similarity index 100% rename from eigen/doc/snippets/CMakeLists.txt rename to cpp/eigen/doc/snippets/CMakeLists.txt diff --git a/eigen/doc/snippets/ColPivHouseholderQR_solve.cpp b/cpp/eigen/doc/snippets/ColPivHouseholderQR_solve.cpp similarity index 100% rename from eigen/doc/snippets/ColPivHouseholderQR_solve.cpp rename to cpp/eigen/doc/snippets/ColPivHouseholderQR_solve.cpp diff --git a/eigen/doc/snippets/ComplexEigenSolver_compute.cpp b/cpp/eigen/doc/snippets/ComplexEigenSolver_compute.cpp similarity index 100% rename from eigen/doc/snippets/ComplexEigenSolver_compute.cpp rename to cpp/eigen/doc/snippets/ComplexEigenSolver_compute.cpp diff --git a/eigen/doc/snippets/ComplexEigenSolver_eigenvalues.cpp b/cpp/eigen/doc/snippets/ComplexEigenSolver_eigenvalues.cpp similarity index 100% rename from eigen/doc/snippets/ComplexEigenSolver_eigenvalues.cpp rename to cpp/eigen/doc/snippets/ComplexEigenSolver_eigenvalues.cpp diff --git a/eigen/doc/snippets/ComplexEigenSolver_eigenvectors.cpp b/cpp/eigen/doc/snippets/ComplexEigenSolver_eigenvectors.cpp similarity index 100% rename from eigen/doc/snippets/ComplexEigenSolver_eigenvectors.cpp rename to cpp/eigen/doc/snippets/ComplexEigenSolver_eigenvectors.cpp diff --git a/eigen/doc/snippets/ComplexSchur_compute.cpp b/cpp/eigen/doc/snippets/ComplexSchur_compute.cpp similarity index 100% rename from eigen/doc/snippets/ComplexSchur_compute.cpp rename to cpp/eigen/doc/snippets/ComplexSchur_compute.cpp diff --git a/eigen/doc/snippets/ComplexSchur_matrixT.cpp b/cpp/eigen/doc/snippets/ComplexSchur_matrixT.cpp similarity index 100% rename from eigen/doc/snippets/ComplexSchur_matrixT.cpp rename to cpp/eigen/doc/snippets/ComplexSchur_matrixT.cpp diff --git a/eigen/doc/snippets/ComplexSchur_matrixU.cpp b/cpp/eigen/doc/snippets/ComplexSchur_matrixU.cpp similarity index 100% rename from eigen/doc/snippets/ComplexSchur_matrixU.cpp rename to cpp/eigen/doc/snippets/ComplexSchur_matrixU.cpp diff --git a/eigen/doc/snippets/Cwise_abs.cpp b/cpp/eigen/doc/snippets/Cwise_abs.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_abs.cpp rename to cpp/eigen/doc/snippets/Cwise_abs.cpp diff --git a/eigen/doc/snippets/Cwise_abs2.cpp b/cpp/eigen/doc/snippets/Cwise_abs2.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_abs2.cpp rename to cpp/eigen/doc/snippets/Cwise_abs2.cpp diff --git a/eigen/doc/snippets/Cwise_acos.cpp b/cpp/eigen/doc/snippets/Cwise_acos.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_acos.cpp rename to cpp/eigen/doc/snippets/Cwise_acos.cpp diff --git a/eigen/doc/snippets/Cwise_arg.cpp b/cpp/eigen/doc/snippets/Cwise_arg.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_arg.cpp rename to cpp/eigen/doc/snippets/Cwise_arg.cpp diff --git a/eigen/doc/snippets/Cwise_array_power_array.cpp b/cpp/eigen/doc/snippets/Cwise_array_power_array.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_array_power_array.cpp rename to cpp/eigen/doc/snippets/Cwise_array_power_array.cpp diff --git a/eigen/doc/snippets/Cwise_asin.cpp b/cpp/eigen/doc/snippets/Cwise_asin.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_asin.cpp rename to cpp/eigen/doc/snippets/Cwise_asin.cpp diff --git a/eigen/doc/snippets/Cwise_atan.cpp b/cpp/eigen/doc/snippets/Cwise_atan.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_atan.cpp rename to cpp/eigen/doc/snippets/Cwise_atan.cpp diff --git a/eigen/doc/snippets/Cwise_boolean_and.cpp b/cpp/eigen/doc/snippets/Cwise_boolean_and.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_boolean_and.cpp rename to cpp/eigen/doc/snippets/Cwise_boolean_and.cpp diff --git a/eigen/doc/snippets/Cwise_boolean_not.cpp b/cpp/eigen/doc/snippets/Cwise_boolean_not.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_boolean_not.cpp rename to cpp/eigen/doc/snippets/Cwise_boolean_not.cpp diff --git a/eigen/doc/snippets/Cwise_boolean_or.cpp b/cpp/eigen/doc/snippets/Cwise_boolean_or.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_boolean_or.cpp rename to cpp/eigen/doc/snippets/Cwise_boolean_or.cpp diff --git a/eigen/doc/snippets/Cwise_ceil.cpp b/cpp/eigen/doc/snippets/Cwise_ceil.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_ceil.cpp rename to cpp/eigen/doc/snippets/Cwise_ceil.cpp diff --git a/eigen/doc/snippets/Cwise_cos.cpp b/cpp/eigen/doc/snippets/Cwise_cos.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_cos.cpp rename to cpp/eigen/doc/snippets/Cwise_cos.cpp diff --git a/eigen/doc/snippets/Cwise_cosh.cpp b/cpp/eigen/doc/snippets/Cwise_cosh.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_cosh.cpp rename to cpp/eigen/doc/snippets/Cwise_cosh.cpp diff --git a/eigen/doc/snippets/Cwise_cube.cpp b/cpp/eigen/doc/snippets/Cwise_cube.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_cube.cpp rename to cpp/eigen/doc/snippets/Cwise_cube.cpp diff --git a/eigen/doc/snippets/Cwise_equal_equal.cpp b/cpp/eigen/doc/snippets/Cwise_equal_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_equal_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_equal_equal.cpp diff --git a/eigen/doc/snippets/Cwise_exp.cpp b/cpp/eigen/doc/snippets/Cwise_exp.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_exp.cpp rename to cpp/eigen/doc/snippets/Cwise_exp.cpp diff --git a/eigen/doc/snippets/Cwise_floor.cpp b/cpp/eigen/doc/snippets/Cwise_floor.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_floor.cpp rename to cpp/eigen/doc/snippets/Cwise_floor.cpp diff --git a/eigen/doc/snippets/Cwise_greater.cpp b/cpp/eigen/doc/snippets/Cwise_greater.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_greater.cpp rename to cpp/eigen/doc/snippets/Cwise_greater.cpp diff --git a/eigen/doc/snippets/Cwise_greater_equal.cpp b/cpp/eigen/doc/snippets/Cwise_greater_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_greater_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_greater_equal.cpp diff --git a/eigen/doc/snippets/Cwise_inverse.cpp b/cpp/eigen/doc/snippets/Cwise_inverse.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_inverse.cpp rename to cpp/eigen/doc/snippets/Cwise_inverse.cpp diff --git a/eigen/doc/snippets/Cwise_isFinite.cpp b/cpp/eigen/doc/snippets/Cwise_isFinite.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_isFinite.cpp rename to cpp/eigen/doc/snippets/Cwise_isFinite.cpp diff --git a/eigen/doc/snippets/Cwise_isInf.cpp b/cpp/eigen/doc/snippets/Cwise_isInf.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_isInf.cpp rename to cpp/eigen/doc/snippets/Cwise_isInf.cpp diff --git a/eigen/doc/snippets/Cwise_isNaN.cpp b/cpp/eigen/doc/snippets/Cwise_isNaN.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_isNaN.cpp rename to cpp/eigen/doc/snippets/Cwise_isNaN.cpp diff --git a/eigen/doc/snippets/Cwise_less.cpp b/cpp/eigen/doc/snippets/Cwise_less.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_less.cpp rename to cpp/eigen/doc/snippets/Cwise_less.cpp diff --git a/eigen/doc/snippets/Cwise_less_equal.cpp b/cpp/eigen/doc/snippets/Cwise_less_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_less_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_less_equal.cpp diff --git a/eigen/doc/snippets/Cwise_log.cpp b/cpp/eigen/doc/snippets/Cwise_log.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_log.cpp rename to cpp/eigen/doc/snippets/Cwise_log.cpp diff --git a/eigen/doc/snippets/Cwise_log10.cpp b/cpp/eigen/doc/snippets/Cwise_log10.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_log10.cpp rename to cpp/eigen/doc/snippets/Cwise_log10.cpp diff --git a/eigen/doc/snippets/Cwise_max.cpp b/cpp/eigen/doc/snippets/Cwise_max.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_max.cpp rename to cpp/eigen/doc/snippets/Cwise_max.cpp diff --git a/eigen/doc/snippets/Cwise_min.cpp b/cpp/eigen/doc/snippets/Cwise_min.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_min.cpp rename to cpp/eigen/doc/snippets/Cwise_min.cpp diff --git a/eigen/doc/snippets/Cwise_minus.cpp b/cpp/eigen/doc/snippets/Cwise_minus.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_minus.cpp rename to cpp/eigen/doc/snippets/Cwise_minus.cpp diff --git a/eigen/doc/snippets/Cwise_minus_equal.cpp b/cpp/eigen/doc/snippets/Cwise_minus_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_minus_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_minus_equal.cpp diff --git a/eigen/doc/snippets/Cwise_not_equal.cpp b/cpp/eigen/doc/snippets/Cwise_not_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_not_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_not_equal.cpp diff --git a/eigen/doc/snippets/Cwise_plus.cpp b/cpp/eigen/doc/snippets/Cwise_plus.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_plus.cpp rename to cpp/eigen/doc/snippets/Cwise_plus.cpp diff --git a/eigen/doc/snippets/Cwise_plus_equal.cpp b/cpp/eigen/doc/snippets/Cwise_plus_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_plus_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_plus_equal.cpp diff --git a/eigen/doc/snippets/Cwise_pow.cpp b/cpp/eigen/doc/snippets/Cwise_pow.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_pow.cpp rename to cpp/eigen/doc/snippets/Cwise_pow.cpp diff --git a/eigen/doc/snippets/Cwise_product.cpp b/cpp/eigen/doc/snippets/Cwise_product.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_product.cpp rename to cpp/eigen/doc/snippets/Cwise_product.cpp diff --git a/eigen/doc/snippets/Cwise_quotient.cpp b/cpp/eigen/doc/snippets/Cwise_quotient.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_quotient.cpp rename to cpp/eigen/doc/snippets/Cwise_quotient.cpp diff --git a/eigen/doc/snippets/Cwise_round.cpp b/cpp/eigen/doc/snippets/Cwise_round.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_round.cpp rename to cpp/eigen/doc/snippets/Cwise_round.cpp diff --git a/eigen/doc/snippets/Cwise_scalar_power_array.cpp b/cpp/eigen/doc/snippets/Cwise_scalar_power_array.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_scalar_power_array.cpp rename to cpp/eigen/doc/snippets/Cwise_scalar_power_array.cpp diff --git a/eigen/doc/snippets/Cwise_sign.cpp b/cpp/eigen/doc/snippets/Cwise_sign.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_sign.cpp rename to cpp/eigen/doc/snippets/Cwise_sign.cpp diff --git a/eigen/doc/snippets/Cwise_sin.cpp b/cpp/eigen/doc/snippets/Cwise_sin.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_sin.cpp rename to cpp/eigen/doc/snippets/Cwise_sin.cpp diff --git a/eigen/doc/snippets/Cwise_sinh.cpp b/cpp/eigen/doc/snippets/Cwise_sinh.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_sinh.cpp rename to cpp/eigen/doc/snippets/Cwise_sinh.cpp diff --git a/eigen/doc/snippets/Cwise_slash_equal.cpp b/cpp/eigen/doc/snippets/Cwise_slash_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_slash_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_slash_equal.cpp diff --git a/eigen/doc/snippets/Cwise_sqrt.cpp b/cpp/eigen/doc/snippets/Cwise_sqrt.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_sqrt.cpp rename to cpp/eigen/doc/snippets/Cwise_sqrt.cpp diff --git a/eigen/doc/snippets/Cwise_square.cpp b/cpp/eigen/doc/snippets/Cwise_square.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_square.cpp rename to cpp/eigen/doc/snippets/Cwise_square.cpp diff --git a/eigen/doc/snippets/Cwise_tan.cpp b/cpp/eigen/doc/snippets/Cwise_tan.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_tan.cpp rename to cpp/eigen/doc/snippets/Cwise_tan.cpp diff --git a/eigen/doc/snippets/Cwise_tanh.cpp b/cpp/eigen/doc/snippets/Cwise_tanh.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_tanh.cpp rename to cpp/eigen/doc/snippets/Cwise_tanh.cpp diff --git a/eigen/doc/snippets/Cwise_times_equal.cpp b/cpp/eigen/doc/snippets/Cwise_times_equal.cpp similarity index 100% rename from eigen/doc/snippets/Cwise_times_equal.cpp rename to cpp/eigen/doc/snippets/Cwise_times_equal.cpp diff --git a/eigen/doc/snippets/DenseBase_LinSpaced.cpp b/cpp/eigen/doc/snippets/DenseBase_LinSpaced.cpp similarity index 100% rename from eigen/doc/snippets/DenseBase_LinSpaced.cpp rename to cpp/eigen/doc/snippets/DenseBase_LinSpaced.cpp diff --git a/eigen/doc/snippets/DenseBase_LinSpacedInt.cpp b/cpp/eigen/doc/snippets/DenseBase_LinSpacedInt.cpp similarity index 100% rename from eigen/doc/snippets/DenseBase_LinSpacedInt.cpp rename to cpp/eigen/doc/snippets/DenseBase_LinSpacedInt.cpp diff --git a/eigen/doc/snippets/DenseBase_LinSpaced_seq.cpp b/cpp/eigen/doc/snippets/DenseBase_LinSpaced_seq.cpp similarity index 100% rename from eigen/doc/snippets/DenseBase_LinSpaced_seq.cpp rename to cpp/eigen/doc/snippets/DenseBase_LinSpaced_seq.cpp diff --git a/eigen/doc/snippets/DenseBase_setLinSpaced.cpp b/cpp/eigen/doc/snippets/DenseBase_setLinSpaced.cpp similarity index 100% rename from eigen/doc/snippets/DenseBase_setLinSpaced.cpp rename to cpp/eigen/doc/snippets/DenseBase_setLinSpaced.cpp diff --git a/eigen/doc/snippets/DirectionWise_hnormalized.cpp b/cpp/eigen/doc/snippets/DirectionWise_hnormalized.cpp similarity index 100% rename from eigen/doc/snippets/DirectionWise_hnormalized.cpp rename to cpp/eigen/doc/snippets/DirectionWise_hnormalized.cpp diff --git a/eigen/doc/snippets/DirectionWise_replicate.cpp b/cpp/eigen/doc/snippets/DirectionWise_replicate.cpp similarity index 100% rename from eigen/doc/snippets/DirectionWise_replicate.cpp rename to cpp/eigen/doc/snippets/DirectionWise_replicate.cpp diff --git a/eigen/doc/snippets/DirectionWise_replicate_int.cpp b/cpp/eigen/doc/snippets/DirectionWise_replicate_int.cpp similarity index 100% rename from eigen/doc/snippets/DirectionWise_replicate_int.cpp rename to cpp/eigen/doc/snippets/DirectionWise_replicate_int.cpp diff --git a/eigen/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp b/cpp/eigen/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp similarity index 100% rename from eigen/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp rename to cpp/eigen/doc/snippets/EigenSolver_EigenSolver_MatrixType.cpp diff --git a/eigen/doc/snippets/EigenSolver_compute.cpp b/cpp/eigen/doc/snippets/EigenSolver_compute.cpp similarity index 100% rename from eigen/doc/snippets/EigenSolver_compute.cpp rename to cpp/eigen/doc/snippets/EigenSolver_compute.cpp diff --git a/eigen/doc/snippets/EigenSolver_eigenvalues.cpp b/cpp/eigen/doc/snippets/EigenSolver_eigenvalues.cpp similarity index 100% rename from eigen/doc/snippets/EigenSolver_eigenvalues.cpp rename to cpp/eigen/doc/snippets/EigenSolver_eigenvalues.cpp diff --git a/eigen/doc/snippets/EigenSolver_eigenvectors.cpp b/cpp/eigen/doc/snippets/EigenSolver_eigenvectors.cpp similarity index 100% rename from eigen/doc/snippets/EigenSolver_eigenvectors.cpp rename to cpp/eigen/doc/snippets/EigenSolver_eigenvectors.cpp diff --git a/eigen/doc/snippets/EigenSolver_pseudoEigenvectors.cpp b/cpp/eigen/doc/snippets/EigenSolver_pseudoEigenvectors.cpp similarity index 100% rename from eigen/doc/snippets/EigenSolver_pseudoEigenvectors.cpp rename to cpp/eigen/doc/snippets/EigenSolver_pseudoEigenvectors.cpp diff --git a/eigen/doc/snippets/FullPivHouseholderQR_solve.cpp b/cpp/eigen/doc/snippets/FullPivHouseholderQR_solve.cpp similarity index 100% rename from eigen/doc/snippets/FullPivHouseholderQR_solve.cpp rename to cpp/eigen/doc/snippets/FullPivHouseholderQR_solve.cpp diff --git a/eigen/doc/snippets/FullPivLU_image.cpp b/cpp/eigen/doc/snippets/FullPivLU_image.cpp similarity index 100% rename from eigen/doc/snippets/FullPivLU_image.cpp rename to cpp/eigen/doc/snippets/FullPivLU_image.cpp diff --git a/eigen/doc/snippets/FullPivLU_kernel.cpp b/cpp/eigen/doc/snippets/FullPivLU_kernel.cpp similarity index 100% rename from eigen/doc/snippets/FullPivLU_kernel.cpp rename to cpp/eigen/doc/snippets/FullPivLU_kernel.cpp diff --git a/eigen/doc/snippets/FullPivLU_solve.cpp b/cpp/eigen/doc/snippets/FullPivLU_solve.cpp similarity index 100% rename from eigen/doc/snippets/FullPivLU_solve.cpp rename to cpp/eigen/doc/snippets/FullPivLU_solve.cpp diff --git a/eigen/doc/snippets/GeneralizedEigenSolver.cpp b/cpp/eigen/doc/snippets/GeneralizedEigenSolver.cpp similarity index 100% rename from eigen/doc/snippets/GeneralizedEigenSolver.cpp rename to cpp/eigen/doc/snippets/GeneralizedEigenSolver.cpp diff --git a/eigen/doc/snippets/HessenbergDecomposition_compute.cpp b/cpp/eigen/doc/snippets/HessenbergDecomposition_compute.cpp similarity index 100% rename from eigen/doc/snippets/HessenbergDecomposition_compute.cpp rename to cpp/eigen/doc/snippets/HessenbergDecomposition_compute.cpp diff --git a/eigen/doc/snippets/HessenbergDecomposition_matrixH.cpp b/cpp/eigen/doc/snippets/HessenbergDecomposition_matrixH.cpp similarity index 100% rename from eigen/doc/snippets/HessenbergDecomposition_matrixH.cpp rename to cpp/eigen/doc/snippets/HessenbergDecomposition_matrixH.cpp diff --git a/eigen/doc/snippets/HessenbergDecomposition_packedMatrix.cpp b/cpp/eigen/doc/snippets/HessenbergDecomposition_packedMatrix.cpp similarity index 100% rename from eigen/doc/snippets/HessenbergDecomposition_packedMatrix.cpp rename to cpp/eigen/doc/snippets/HessenbergDecomposition_packedMatrix.cpp diff --git a/eigen/doc/snippets/HouseholderQR_householderQ.cpp b/cpp/eigen/doc/snippets/HouseholderQR_householderQ.cpp similarity index 100% rename from eigen/doc/snippets/HouseholderQR_householderQ.cpp rename to cpp/eigen/doc/snippets/HouseholderQR_householderQ.cpp diff --git a/eigen/doc/snippets/HouseholderQR_solve.cpp b/cpp/eigen/doc/snippets/HouseholderQR_solve.cpp similarity index 100% rename from eigen/doc/snippets/HouseholderQR_solve.cpp rename to cpp/eigen/doc/snippets/HouseholderQR_solve.cpp diff --git a/eigen/doc/snippets/HouseholderSequence_HouseholderSequence.cpp b/cpp/eigen/doc/snippets/HouseholderSequence_HouseholderSequence.cpp similarity index 100% rename from eigen/doc/snippets/HouseholderSequence_HouseholderSequence.cpp rename to cpp/eigen/doc/snippets/HouseholderSequence_HouseholderSequence.cpp diff --git a/eigen/doc/snippets/IOFormat.cpp b/cpp/eigen/doc/snippets/IOFormat.cpp similarity index 100% rename from eigen/doc/snippets/IOFormat.cpp rename to cpp/eigen/doc/snippets/IOFormat.cpp diff --git a/eigen/doc/snippets/JacobiSVD_basic.cpp b/cpp/eigen/doc/snippets/JacobiSVD_basic.cpp similarity index 100% rename from eigen/doc/snippets/JacobiSVD_basic.cpp rename to cpp/eigen/doc/snippets/JacobiSVD_basic.cpp diff --git a/eigen/doc/snippets/Jacobi_makeGivens.cpp b/cpp/eigen/doc/snippets/Jacobi_makeGivens.cpp similarity index 100% rename from eigen/doc/snippets/Jacobi_makeGivens.cpp rename to cpp/eigen/doc/snippets/Jacobi_makeGivens.cpp diff --git a/eigen/doc/snippets/Jacobi_makeJacobi.cpp b/cpp/eigen/doc/snippets/Jacobi_makeJacobi.cpp similarity index 100% rename from eigen/doc/snippets/Jacobi_makeJacobi.cpp rename to cpp/eigen/doc/snippets/Jacobi_makeJacobi.cpp diff --git a/eigen/doc/snippets/LLT_example.cpp b/cpp/eigen/doc/snippets/LLT_example.cpp similarity index 100% rename from eigen/doc/snippets/LLT_example.cpp rename to cpp/eigen/doc/snippets/LLT_example.cpp diff --git a/eigen/doc/snippets/LLT_solve.cpp b/cpp/eigen/doc/snippets/LLT_solve.cpp similarity index 100% rename from eigen/doc/snippets/LLT_solve.cpp rename to cpp/eigen/doc/snippets/LLT_solve.cpp diff --git a/eigen/doc/snippets/LeastSquaresNormalEquations.cpp b/cpp/eigen/doc/snippets/LeastSquaresNormalEquations.cpp similarity index 100% rename from eigen/doc/snippets/LeastSquaresNormalEquations.cpp rename to cpp/eigen/doc/snippets/LeastSquaresNormalEquations.cpp diff --git a/eigen/doc/snippets/LeastSquaresQR.cpp b/cpp/eigen/doc/snippets/LeastSquaresQR.cpp similarity index 100% rename from eigen/doc/snippets/LeastSquaresQR.cpp rename to cpp/eigen/doc/snippets/LeastSquaresQR.cpp diff --git a/eigen/doc/snippets/Map_general_stride.cpp b/cpp/eigen/doc/snippets/Map_general_stride.cpp similarity index 100% rename from eigen/doc/snippets/Map_general_stride.cpp rename to cpp/eigen/doc/snippets/Map_general_stride.cpp diff --git a/eigen/doc/snippets/Map_inner_stride.cpp b/cpp/eigen/doc/snippets/Map_inner_stride.cpp similarity index 100% rename from eigen/doc/snippets/Map_inner_stride.cpp rename to cpp/eigen/doc/snippets/Map_inner_stride.cpp diff --git a/eigen/doc/snippets/Map_outer_stride.cpp b/cpp/eigen/doc/snippets/Map_outer_stride.cpp similarity index 100% rename from eigen/doc/snippets/Map_outer_stride.cpp rename to cpp/eigen/doc/snippets/Map_outer_stride.cpp diff --git a/eigen/doc/snippets/Map_placement_new.cpp b/cpp/eigen/doc/snippets/Map_placement_new.cpp similarity index 100% rename from eigen/doc/snippets/Map_placement_new.cpp rename to cpp/eigen/doc/snippets/Map_placement_new.cpp diff --git a/eigen/doc/snippets/Map_simple.cpp b/cpp/eigen/doc/snippets/Map_simple.cpp similarity index 100% rename from eigen/doc/snippets/Map_simple.cpp rename to cpp/eigen/doc/snippets/Map_simple.cpp diff --git a/eigen/doc/snippets/MatrixBase_adjoint.cpp b/cpp/eigen/doc/snippets/MatrixBase_adjoint.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_adjoint.cpp rename to cpp/eigen/doc/snippets/MatrixBase_adjoint.cpp diff --git a/eigen/doc/snippets/MatrixBase_all.cpp b/cpp/eigen/doc/snippets/MatrixBase_all.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_all.cpp rename to cpp/eigen/doc/snippets/MatrixBase_all.cpp diff --git a/eigen/doc/snippets/MatrixBase_applyOnTheLeft.cpp b/cpp/eigen/doc/snippets/MatrixBase_applyOnTheLeft.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_applyOnTheLeft.cpp rename to cpp/eigen/doc/snippets/MatrixBase_applyOnTheLeft.cpp diff --git a/eigen/doc/snippets/MatrixBase_applyOnTheRight.cpp b/cpp/eigen/doc/snippets/MatrixBase_applyOnTheRight.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_applyOnTheRight.cpp rename to cpp/eigen/doc/snippets/MatrixBase_applyOnTheRight.cpp diff --git a/eigen/doc/snippets/MatrixBase_array.cpp b/cpp/eigen/doc/snippets/MatrixBase_array.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_array.cpp rename to cpp/eigen/doc/snippets/MatrixBase_array.cpp diff --git a/eigen/doc/snippets/MatrixBase_array_const.cpp b/cpp/eigen/doc/snippets/MatrixBase_array_const.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_array_const.cpp rename to cpp/eigen/doc/snippets/MatrixBase_array_const.cpp diff --git a/eigen/doc/snippets/MatrixBase_asDiagonal.cpp b/cpp/eigen/doc/snippets/MatrixBase_asDiagonal.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_asDiagonal.cpp rename to cpp/eigen/doc/snippets/MatrixBase_asDiagonal.cpp diff --git a/eigen/doc/snippets/MatrixBase_block_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_block_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_block_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_block_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_block_int_int_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_block_int_int_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_block_int_int_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_block_int_int_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_bottomLeftCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_bottomRightCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_bottomRows_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_bottomRows_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_bottomRows_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_bottomRows_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_cast.cpp b/cpp/eigen/doc/snippets/MatrixBase_cast.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cast.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cast.cpp diff --git a/eigen/doc/snippets/MatrixBase_col.cpp b/cpp/eigen/doc/snippets/MatrixBase_col.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_col.cpp rename to cpp/eigen/doc/snippets/MatrixBase_col.cpp diff --git a/eigen/doc/snippets/MatrixBase_colwise.cpp b/cpp/eigen/doc/snippets/MatrixBase_colwise.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_colwise.cpp rename to cpp/eigen/doc/snippets/MatrixBase_colwise.cpp diff --git a/eigen/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp b/cpp/eigen/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp rename to cpp/eigen/doc/snippets/MatrixBase_computeInverseAndDetWithCheck.cpp diff --git a/eigen/doc/snippets/MatrixBase_computeInverseWithCheck.cpp b/cpp/eigen/doc/snippets/MatrixBase_computeInverseWithCheck.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_computeInverseWithCheck.cpp rename to cpp/eigen/doc/snippets/MatrixBase_computeInverseWithCheck.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseAbs.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseAbs.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseAbs.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseAbs.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseAbs2.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseAbs2.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseAbs2.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseAbs2.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseEqual.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseEqual.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseEqual.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseEqual.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseInverse.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseInverse.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseInverse.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseInverse.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseMax.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseMax.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseMax.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseMax.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseMin.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseMin.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseMin.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseMin.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseNotEqual.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseNotEqual.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseNotEqual.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseNotEqual.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseProduct.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseProduct.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseProduct.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseProduct.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseQuotient.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseQuotient.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseQuotient.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseQuotient.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseSign.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseSign.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseSign.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseSign.cpp diff --git a/eigen/doc/snippets/MatrixBase_cwiseSqrt.cpp b/cpp/eigen/doc/snippets/MatrixBase_cwiseSqrt.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_cwiseSqrt.cpp rename to cpp/eigen/doc/snippets/MatrixBase_cwiseSqrt.cpp diff --git a/eigen/doc/snippets/MatrixBase_diagonal.cpp b/cpp/eigen/doc/snippets/MatrixBase_diagonal.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_diagonal.cpp rename to cpp/eigen/doc/snippets/MatrixBase_diagonal.cpp diff --git a/eigen/doc/snippets/MatrixBase_diagonal_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_diagonal_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_diagonal_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_diagonal_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_diagonal_template_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_diagonal_template_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_diagonal_template_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_diagonal_template_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_eigenvalues.cpp b/cpp/eigen/doc/snippets/MatrixBase_eigenvalues.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_eigenvalues.cpp rename to cpp/eigen/doc/snippets/MatrixBase_eigenvalues.cpp diff --git a/eigen/doc/snippets/MatrixBase_end_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_end_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_end_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_end_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_eval.cpp b/cpp/eigen/doc/snippets/MatrixBase_eval.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_eval.cpp rename to cpp/eigen/doc/snippets/MatrixBase_eval.cpp diff --git a/eigen/doc/snippets/MatrixBase_fixedBlock_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_fixedBlock_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_fixedBlock_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_fixedBlock_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_hnormalized.cpp b/cpp/eigen/doc/snippets/MatrixBase_hnormalized.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_hnormalized.cpp rename to cpp/eigen/doc/snippets/MatrixBase_hnormalized.cpp diff --git a/eigen/doc/snippets/MatrixBase_homogeneous.cpp b/cpp/eigen/doc/snippets/MatrixBase_homogeneous.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_homogeneous.cpp rename to cpp/eigen/doc/snippets/MatrixBase_homogeneous.cpp diff --git a/eigen/doc/snippets/MatrixBase_identity.cpp b/cpp/eigen/doc/snippets/MatrixBase_identity.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_identity.cpp rename to cpp/eigen/doc/snippets/MatrixBase_identity.cpp diff --git a/eigen/doc/snippets/MatrixBase_identity_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_identity_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_identity_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_identity_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_inverse.cpp b/cpp/eigen/doc/snippets/MatrixBase_inverse.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_inverse.cpp rename to cpp/eigen/doc/snippets/MatrixBase_inverse.cpp diff --git a/eigen/doc/snippets/MatrixBase_isDiagonal.cpp b/cpp/eigen/doc/snippets/MatrixBase_isDiagonal.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isDiagonal.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isDiagonal.cpp diff --git a/eigen/doc/snippets/MatrixBase_isIdentity.cpp b/cpp/eigen/doc/snippets/MatrixBase_isIdentity.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isIdentity.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isIdentity.cpp diff --git a/eigen/doc/snippets/MatrixBase_isOnes.cpp b/cpp/eigen/doc/snippets/MatrixBase_isOnes.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isOnes.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isOnes.cpp diff --git a/eigen/doc/snippets/MatrixBase_isOrthogonal.cpp b/cpp/eigen/doc/snippets/MatrixBase_isOrthogonal.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isOrthogonal.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isOrthogonal.cpp diff --git a/eigen/doc/snippets/MatrixBase_isUnitary.cpp b/cpp/eigen/doc/snippets/MatrixBase_isUnitary.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isUnitary.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isUnitary.cpp diff --git a/eigen/doc/snippets/MatrixBase_isZero.cpp b/cpp/eigen/doc/snippets/MatrixBase_isZero.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_isZero.cpp rename to cpp/eigen/doc/snippets/MatrixBase_isZero.cpp diff --git a/eigen/doc/snippets/MatrixBase_leftCols_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_leftCols_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_leftCols_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_leftCols_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_noalias.cpp b/cpp/eigen/doc/snippets/MatrixBase_noalias.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_noalias.cpp rename to cpp/eigen/doc/snippets/MatrixBase_noalias.cpp diff --git a/eigen/doc/snippets/MatrixBase_ones.cpp b/cpp/eigen/doc/snippets/MatrixBase_ones.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_ones.cpp rename to cpp/eigen/doc/snippets/MatrixBase_ones.cpp diff --git a/eigen/doc/snippets/MatrixBase_ones_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_ones_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_ones_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_ones_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_ones_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_ones_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_ones_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_ones_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_operatorNorm.cpp b/cpp/eigen/doc/snippets/MatrixBase_operatorNorm.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_operatorNorm.cpp rename to cpp/eigen/doc/snippets/MatrixBase_operatorNorm.cpp diff --git a/eigen/doc/snippets/MatrixBase_prod.cpp b/cpp/eigen/doc/snippets/MatrixBase_prod.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_prod.cpp rename to cpp/eigen/doc/snippets/MatrixBase_prod.cpp diff --git a/eigen/doc/snippets/MatrixBase_random.cpp b/cpp/eigen/doc/snippets/MatrixBase_random.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_random.cpp rename to cpp/eigen/doc/snippets/MatrixBase_random.cpp diff --git a/eigen/doc/snippets/MatrixBase_random_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_random_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_random_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_random_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_random_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_random_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_random_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_random_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_replicate.cpp b/cpp/eigen/doc/snippets/MatrixBase_replicate.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_replicate.cpp rename to cpp/eigen/doc/snippets/MatrixBase_replicate.cpp diff --git a/eigen/doc/snippets/MatrixBase_replicate_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_replicate_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_replicate_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_replicate_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_reverse.cpp b/cpp/eigen/doc/snippets/MatrixBase_reverse.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_reverse.cpp rename to cpp/eigen/doc/snippets/MatrixBase_reverse.cpp diff --git a/eigen/doc/snippets/MatrixBase_rightCols_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_rightCols_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_rightCols_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_rightCols_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_row.cpp b/cpp/eigen/doc/snippets/MatrixBase_row.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_row.cpp rename to cpp/eigen/doc/snippets/MatrixBase_row.cpp diff --git a/eigen/doc/snippets/MatrixBase_rowwise.cpp b/cpp/eigen/doc/snippets/MatrixBase_rowwise.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_rowwise.cpp rename to cpp/eigen/doc/snippets/MatrixBase_rowwise.cpp diff --git a/eigen/doc/snippets/MatrixBase_segment_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_segment_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_segment_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_segment_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_select.cpp b/cpp/eigen/doc/snippets/MatrixBase_select.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_select.cpp rename to cpp/eigen/doc/snippets/MatrixBase_select.cpp diff --git a/eigen/doc/snippets/MatrixBase_set.cpp b/cpp/eigen/doc/snippets/MatrixBase_set.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_set.cpp rename to cpp/eigen/doc/snippets/MatrixBase_set.cpp diff --git a/eigen/doc/snippets/MatrixBase_setIdentity.cpp b/cpp/eigen/doc/snippets/MatrixBase_setIdentity.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_setIdentity.cpp rename to cpp/eigen/doc/snippets/MatrixBase_setIdentity.cpp diff --git a/eigen/doc/snippets/MatrixBase_setOnes.cpp b/cpp/eigen/doc/snippets/MatrixBase_setOnes.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_setOnes.cpp rename to cpp/eigen/doc/snippets/MatrixBase_setOnes.cpp diff --git a/eigen/doc/snippets/MatrixBase_setRandom.cpp b/cpp/eigen/doc/snippets/MatrixBase_setRandom.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_setRandom.cpp rename to cpp/eigen/doc/snippets/MatrixBase_setRandom.cpp diff --git a/eigen/doc/snippets/MatrixBase_setZero.cpp b/cpp/eigen/doc/snippets/MatrixBase_setZero.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_setZero.cpp rename to cpp/eigen/doc/snippets/MatrixBase_setZero.cpp diff --git a/eigen/doc/snippets/MatrixBase_start_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_start_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_start_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_start_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_bottomRows.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_bottomRows.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_bottomRows.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_bottomRows.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_end.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_end.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_end.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_end.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_block_int_int_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_bottomRightCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_topLeftCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_int_topRightCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_leftCols.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_leftCols.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_leftCols.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_leftCols.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_rightCols.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_rightCols.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_rightCols.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_rightCols.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_segment.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_segment.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_segment.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_segment.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_start.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_start.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_start.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_start.cpp diff --git a/eigen/doc/snippets/MatrixBase_template_int_topRows.cpp b/cpp/eigen/doc/snippets/MatrixBase_template_int_topRows.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_template_int_topRows.cpp rename to cpp/eigen/doc/snippets/MatrixBase_template_int_topRows.cpp diff --git a/eigen/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_topLeftCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_topRightCorner_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_topRightCorner_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_topRightCorner_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_topRightCorner_int_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_topRows_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_topRows_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_topRows_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_topRows_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_transpose.cpp b/cpp/eigen/doc/snippets/MatrixBase_transpose.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_transpose.cpp rename to cpp/eigen/doc/snippets/MatrixBase_transpose.cpp diff --git a/eigen/doc/snippets/MatrixBase_triangularView.cpp b/cpp/eigen/doc/snippets/MatrixBase_triangularView.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_triangularView.cpp rename to cpp/eigen/doc/snippets/MatrixBase_triangularView.cpp diff --git a/eigen/doc/snippets/MatrixBase_zero.cpp b/cpp/eigen/doc/snippets/MatrixBase_zero.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_zero.cpp rename to cpp/eigen/doc/snippets/MatrixBase_zero.cpp diff --git a/eigen/doc/snippets/MatrixBase_zero_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_zero_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_zero_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_zero_int.cpp diff --git a/eigen/doc/snippets/MatrixBase_zero_int_int.cpp b/cpp/eigen/doc/snippets/MatrixBase_zero_int_int.cpp similarity index 100% rename from eigen/doc/snippets/MatrixBase_zero_int_int.cpp rename to cpp/eigen/doc/snippets/MatrixBase_zero_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_resize_NoChange_int.cpp b/cpp/eigen/doc/snippets/Matrix_resize_NoChange_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_resize_NoChange_int.cpp rename to cpp/eigen/doc/snippets/Matrix_resize_NoChange_int.cpp diff --git a/eigen/doc/snippets/Matrix_resize_int.cpp b/cpp/eigen/doc/snippets/Matrix_resize_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_resize_int.cpp rename to cpp/eigen/doc/snippets/Matrix_resize_int.cpp diff --git a/eigen/doc/snippets/Matrix_resize_int_NoChange.cpp b/cpp/eigen/doc/snippets/Matrix_resize_int_NoChange.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_resize_int_NoChange.cpp rename to cpp/eigen/doc/snippets/Matrix_resize_int_NoChange.cpp diff --git a/eigen/doc/snippets/Matrix_resize_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_resize_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_resize_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_resize_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_setConstant_int.cpp b/cpp/eigen/doc/snippets/Matrix_setConstant_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setConstant_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setConstant_int.cpp diff --git a/eigen/doc/snippets/Matrix_setConstant_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_setConstant_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setConstant_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setConstant_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_setIdentity_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_setIdentity_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setIdentity_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setIdentity_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_setOnes_int.cpp b/cpp/eigen/doc/snippets/Matrix_setOnes_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setOnes_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setOnes_int.cpp diff --git a/eigen/doc/snippets/Matrix_setOnes_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_setOnes_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setOnes_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setOnes_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_setRandom_int.cpp b/cpp/eigen/doc/snippets/Matrix_setRandom_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setRandom_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setRandom_int.cpp diff --git a/eigen/doc/snippets/Matrix_setRandom_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_setRandom_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setRandom_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setRandom_int_int.cpp diff --git a/eigen/doc/snippets/Matrix_setZero_int.cpp b/cpp/eigen/doc/snippets/Matrix_setZero_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setZero_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setZero_int.cpp diff --git a/eigen/doc/snippets/Matrix_setZero_int_int.cpp b/cpp/eigen/doc/snippets/Matrix_setZero_int_int.cpp similarity index 100% rename from eigen/doc/snippets/Matrix_setZero_int_int.cpp rename to cpp/eigen/doc/snippets/Matrix_setZero_int_int.cpp diff --git a/eigen/doc/snippets/PartialPivLU_solve.cpp b/cpp/eigen/doc/snippets/PartialPivLU_solve.cpp similarity index 100% rename from eigen/doc/snippets/PartialPivLU_solve.cpp rename to cpp/eigen/doc/snippets/PartialPivLU_solve.cpp diff --git a/eigen/doc/snippets/PartialRedux_count.cpp b/cpp/eigen/doc/snippets/PartialRedux_count.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_count.cpp rename to cpp/eigen/doc/snippets/PartialRedux_count.cpp diff --git a/eigen/doc/snippets/PartialRedux_maxCoeff.cpp b/cpp/eigen/doc/snippets/PartialRedux_maxCoeff.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_maxCoeff.cpp rename to cpp/eigen/doc/snippets/PartialRedux_maxCoeff.cpp diff --git a/eigen/doc/snippets/PartialRedux_minCoeff.cpp b/cpp/eigen/doc/snippets/PartialRedux_minCoeff.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_minCoeff.cpp rename to cpp/eigen/doc/snippets/PartialRedux_minCoeff.cpp diff --git a/eigen/doc/snippets/PartialRedux_norm.cpp b/cpp/eigen/doc/snippets/PartialRedux_norm.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_norm.cpp rename to cpp/eigen/doc/snippets/PartialRedux_norm.cpp diff --git a/eigen/doc/snippets/PartialRedux_prod.cpp b/cpp/eigen/doc/snippets/PartialRedux_prod.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_prod.cpp rename to cpp/eigen/doc/snippets/PartialRedux_prod.cpp diff --git a/eigen/doc/snippets/PartialRedux_squaredNorm.cpp b/cpp/eigen/doc/snippets/PartialRedux_squaredNorm.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_squaredNorm.cpp rename to cpp/eigen/doc/snippets/PartialRedux_squaredNorm.cpp diff --git a/eigen/doc/snippets/PartialRedux_sum.cpp b/cpp/eigen/doc/snippets/PartialRedux_sum.cpp similarity index 100% rename from eigen/doc/snippets/PartialRedux_sum.cpp rename to cpp/eigen/doc/snippets/PartialRedux_sum.cpp diff --git a/eigen/doc/snippets/RealQZ_compute.cpp b/cpp/eigen/doc/snippets/RealQZ_compute.cpp similarity index 100% rename from eigen/doc/snippets/RealQZ_compute.cpp rename to cpp/eigen/doc/snippets/RealQZ_compute.cpp diff --git a/eigen/doc/snippets/RealSchur_RealSchur_MatrixType.cpp b/cpp/eigen/doc/snippets/RealSchur_RealSchur_MatrixType.cpp similarity index 100% rename from eigen/doc/snippets/RealSchur_RealSchur_MatrixType.cpp rename to cpp/eigen/doc/snippets/RealSchur_RealSchur_MatrixType.cpp diff --git a/eigen/doc/snippets/RealSchur_compute.cpp b/cpp/eigen/doc/snippets/RealSchur_compute.cpp similarity index 100% rename from eigen/doc/snippets/RealSchur_compute.cpp rename to cpp/eigen/doc/snippets/RealSchur_compute.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_compute_MatrixType2.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvalues.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_eigenvectors.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_operatorInverseSqrt.cpp diff --git a/eigen/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp b/cpp/eigen/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp rename to cpp/eigen/doc/snippets/SelfAdjointEigenSolver_operatorSqrt.cpp diff --git a/eigen/doc/snippets/SelfAdjointView_eigenvalues.cpp b/cpp/eigen/doc/snippets/SelfAdjointView_eigenvalues.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointView_eigenvalues.cpp rename to cpp/eigen/doc/snippets/SelfAdjointView_eigenvalues.cpp diff --git a/eigen/doc/snippets/SelfAdjointView_operatorNorm.cpp b/cpp/eigen/doc/snippets/SelfAdjointView_operatorNorm.cpp similarity index 100% rename from eigen/doc/snippets/SelfAdjointView_operatorNorm.cpp rename to cpp/eigen/doc/snippets/SelfAdjointView_operatorNorm.cpp diff --git a/eigen/doc/snippets/SparseMatrix_coeffs.cpp b/cpp/eigen/doc/snippets/SparseMatrix_coeffs.cpp similarity index 100% rename from eigen/doc/snippets/SparseMatrix_coeffs.cpp rename to cpp/eigen/doc/snippets/SparseMatrix_coeffs.cpp diff --git a/eigen/doc/snippets/TopicAliasing_block.cpp b/cpp/eigen/doc/snippets/TopicAliasing_block.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_block.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_block.cpp diff --git a/eigen/doc/snippets/TopicAliasing_block_correct.cpp b/cpp/eigen/doc/snippets/TopicAliasing_block_correct.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_block_correct.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_block_correct.cpp diff --git a/eigen/doc/snippets/TopicAliasing_cwise.cpp b/cpp/eigen/doc/snippets/TopicAliasing_cwise.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_cwise.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_cwise.cpp diff --git a/eigen/doc/snippets/TopicAliasing_mult1.cpp b/cpp/eigen/doc/snippets/TopicAliasing_mult1.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_mult1.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_mult1.cpp diff --git a/eigen/doc/snippets/TopicAliasing_mult2.cpp b/cpp/eigen/doc/snippets/TopicAliasing_mult2.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_mult2.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_mult2.cpp diff --git a/eigen/doc/snippets/TopicAliasing_mult3.cpp b/cpp/eigen/doc/snippets/TopicAliasing_mult3.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_mult3.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_mult3.cpp diff --git a/eigen/doc/snippets/TopicAliasing_mult4.cpp b/cpp/eigen/doc/snippets/TopicAliasing_mult4.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_mult4.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_mult4.cpp diff --git a/eigen/doc/snippets/TopicAliasing_mult5.cpp b/cpp/eigen/doc/snippets/TopicAliasing_mult5.cpp similarity index 100% rename from eigen/doc/snippets/TopicAliasing_mult5.cpp rename to cpp/eigen/doc/snippets/TopicAliasing_mult5.cpp diff --git a/eigen/doc/snippets/TopicStorageOrders_example.cpp b/cpp/eigen/doc/snippets/TopicStorageOrders_example.cpp similarity index 100% rename from eigen/doc/snippets/TopicStorageOrders_example.cpp rename to cpp/eigen/doc/snippets/TopicStorageOrders_example.cpp diff --git a/eigen/doc/snippets/Triangular_solve.cpp b/cpp/eigen/doc/snippets/Triangular_solve.cpp similarity index 100% rename from eigen/doc/snippets/Triangular_solve.cpp rename to cpp/eigen/doc/snippets/Triangular_solve.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_Tridiagonalization_MatrixType.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_compute.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_compute.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_compute.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_compute.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_decomposeInPlace.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_decomposeInPlace.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_decomposeInPlace.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_decomposeInPlace.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_diagonal.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_diagonal.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_diagonal.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_diagonal.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_householderCoefficients.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_householderCoefficients.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_householderCoefficients.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_householderCoefficients.cpp diff --git a/eigen/doc/snippets/Tridiagonalization_packedMatrix.cpp b/cpp/eigen/doc/snippets/Tridiagonalization_packedMatrix.cpp similarity index 100% rename from eigen/doc/snippets/Tridiagonalization_packedMatrix.cpp rename to cpp/eigen/doc/snippets/Tridiagonalization_packedMatrix.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Block.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_CommaTemporary.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Join.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_LinSpaced.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_ThreeWays.cpp diff --git a/eigen/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp b/cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp rename to cpp/eigen/doc/snippets/Tutorial_AdvancedInitialization_Zero.cpp diff --git a/eigen/doc/snippets/Tutorial_Map_rowmajor.cpp b/cpp/eigen/doc/snippets/Tutorial_Map_rowmajor.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_Map_rowmajor.cpp rename to cpp/eigen/doc/snippets/Tutorial_Map_rowmajor.cpp diff --git a/eigen/doc/snippets/Tutorial_Map_using.cpp b/cpp/eigen/doc/snippets/Tutorial_Map_using.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_Map_using.cpp rename to cpp/eigen/doc/snippets/Tutorial_Map_using.cpp diff --git a/eigen/doc/snippets/Tutorial_ReshapeMat2Mat.cpp b/cpp/eigen/doc/snippets/Tutorial_ReshapeMat2Mat.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_ReshapeMat2Mat.cpp rename to cpp/eigen/doc/snippets/Tutorial_ReshapeMat2Mat.cpp diff --git a/eigen/doc/snippets/Tutorial_ReshapeMat2Vec.cpp b/cpp/eigen/doc/snippets/Tutorial_ReshapeMat2Vec.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_ReshapeMat2Vec.cpp rename to cpp/eigen/doc/snippets/Tutorial_ReshapeMat2Vec.cpp diff --git a/eigen/doc/snippets/Tutorial_SlicingCol.cpp b/cpp/eigen/doc/snippets/Tutorial_SlicingCol.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_SlicingCol.cpp rename to cpp/eigen/doc/snippets/Tutorial_SlicingCol.cpp diff --git a/eigen/doc/snippets/Tutorial_SlicingVec.cpp b/cpp/eigen/doc/snippets/Tutorial_SlicingVec.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_SlicingVec.cpp rename to cpp/eigen/doc/snippets/Tutorial_SlicingVec.cpp diff --git a/eigen/doc/snippets/Tutorial_commainit_01.cpp b/cpp/eigen/doc/snippets/Tutorial_commainit_01.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_commainit_01.cpp rename to cpp/eigen/doc/snippets/Tutorial_commainit_01.cpp diff --git a/eigen/doc/snippets/Tutorial_commainit_01b.cpp b/cpp/eigen/doc/snippets/Tutorial_commainit_01b.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_commainit_01b.cpp rename to cpp/eigen/doc/snippets/Tutorial_commainit_01b.cpp diff --git a/eigen/doc/snippets/Tutorial_commainit_02.cpp b/cpp/eigen/doc/snippets/Tutorial_commainit_02.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_commainit_02.cpp rename to cpp/eigen/doc/snippets/Tutorial_commainit_02.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_matrix_inverse.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_matrix_inverse.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_matrix_inverse.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_matrix_inverse.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_multiple_rhs.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_multiple_rhs.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_multiple_rhs.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_multiple_rhs.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_reuse_decomposition.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_reuse_decomposition.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_reuse_decomposition.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_reuse_decomposition.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_singular.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_singular.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_singular.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_singular.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_triangular.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_triangular.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_triangular.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_triangular.cpp diff --git a/eigen/doc/snippets/Tutorial_solve_triangular_inplace.cpp b/cpp/eigen/doc/snippets/Tutorial_solve_triangular_inplace.cpp similarity index 100% rename from eigen/doc/snippets/Tutorial_solve_triangular_inplace.cpp rename to cpp/eigen/doc/snippets/Tutorial_solve_triangular_inplace.cpp diff --git a/eigen/doc/snippets/VectorwiseOp_homogeneous.cpp b/cpp/eigen/doc/snippets/VectorwiseOp_homogeneous.cpp similarity index 100% rename from eigen/doc/snippets/VectorwiseOp_homogeneous.cpp rename to cpp/eigen/doc/snippets/VectorwiseOp_homogeneous.cpp diff --git a/eigen/doc/snippets/Vectorwise_reverse.cpp b/cpp/eigen/doc/snippets/Vectorwise_reverse.cpp similarity index 100% rename from eigen/doc/snippets/Vectorwise_reverse.cpp rename to cpp/eigen/doc/snippets/Vectorwise_reverse.cpp diff --git a/eigen/doc/snippets/class_FullPivLU.cpp b/cpp/eigen/doc/snippets/class_FullPivLU.cpp similarity index 100% rename from eigen/doc/snippets/class_FullPivLU.cpp rename to cpp/eigen/doc/snippets/class_FullPivLU.cpp diff --git a/eigen/doc/snippets/compile_snippet.cpp.in b/cpp/eigen/doc/snippets/compile_snippet.cpp.in similarity index 100% rename from eigen/doc/snippets/compile_snippet.cpp.in rename to cpp/eigen/doc/snippets/compile_snippet.cpp.in diff --git a/eigen/doc/snippets/tut_arithmetic_redux_minmax.cpp b/cpp/eigen/doc/snippets/tut_arithmetic_redux_minmax.cpp similarity index 100% rename from eigen/doc/snippets/tut_arithmetic_redux_minmax.cpp rename to cpp/eigen/doc/snippets/tut_arithmetic_redux_minmax.cpp diff --git a/eigen/doc/snippets/tut_arithmetic_transpose_aliasing.cpp b/cpp/eigen/doc/snippets/tut_arithmetic_transpose_aliasing.cpp similarity index 100% rename from eigen/doc/snippets/tut_arithmetic_transpose_aliasing.cpp rename to cpp/eigen/doc/snippets/tut_arithmetic_transpose_aliasing.cpp diff --git a/eigen/doc/snippets/tut_arithmetic_transpose_conjugate.cpp b/cpp/eigen/doc/snippets/tut_arithmetic_transpose_conjugate.cpp similarity index 100% rename from eigen/doc/snippets/tut_arithmetic_transpose_conjugate.cpp rename to cpp/eigen/doc/snippets/tut_arithmetic_transpose_conjugate.cpp diff --git a/eigen/doc/snippets/tut_arithmetic_transpose_inplace.cpp b/cpp/eigen/doc/snippets/tut_arithmetic_transpose_inplace.cpp similarity index 100% rename from eigen/doc/snippets/tut_arithmetic_transpose_inplace.cpp rename to cpp/eigen/doc/snippets/tut_arithmetic_transpose_inplace.cpp diff --git a/eigen/doc/snippets/tut_matrix_assignment_resizing.cpp b/cpp/eigen/doc/snippets/tut_matrix_assignment_resizing.cpp similarity index 100% rename from eigen/doc/snippets/tut_matrix_assignment_resizing.cpp rename to cpp/eigen/doc/snippets/tut_matrix_assignment_resizing.cpp diff --git a/eigen/doc/special_examples/CMakeLists.txt b/cpp/eigen/doc/special_examples/CMakeLists.txt similarity index 100% rename from eigen/doc/special_examples/CMakeLists.txt rename to cpp/eigen/doc/special_examples/CMakeLists.txt diff --git a/eigen/doc/special_examples/Tutorial_sparse_example.cpp b/cpp/eigen/doc/special_examples/Tutorial_sparse_example.cpp similarity index 100% rename from eigen/doc/special_examples/Tutorial_sparse_example.cpp rename to cpp/eigen/doc/special_examples/Tutorial_sparse_example.cpp diff --git a/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp b/cpp/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp similarity index 100% rename from eigen/doc/special_examples/Tutorial_sparse_example_details.cpp rename to cpp/eigen/doc/special_examples/Tutorial_sparse_example_details.cpp diff --git a/eigen/doc/special_examples/random_cpp11.cpp b/cpp/eigen/doc/special_examples/random_cpp11.cpp similarity index 100% rename from eigen/doc/special_examples/random_cpp11.cpp rename to cpp/eigen/doc/special_examples/random_cpp11.cpp diff --git a/eigen/doc/tutorial.cpp b/cpp/eigen/doc/tutorial.cpp similarity index 100% rename from eigen/doc/tutorial.cpp rename to cpp/eigen/doc/tutorial.cpp diff --git a/eigen/eigen3.pc.in b/cpp/eigen/eigen3.pc.in similarity index 100% rename from eigen/eigen3.pc.in rename to cpp/eigen/eigen3.pc.in diff --git a/eigen/failtest/CMakeLists.txt b/cpp/eigen/failtest/CMakeLists.txt similarity index 100% rename from eigen/failtest/CMakeLists.txt rename to cpp/eigen/failtest/CMakeLists.txt diff --git a/eigen/failtest/bdcsvd_int.cpp b/cpp/eigen/failtest/bdcsvd_int.cpp similarity index 100% rename from eigen/failtest/bdcsvd_int.cpp rename to cpp/eigen/failtest/bdcsvd_int.cpp diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp b/cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp similarity index 100% rename from eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp rename to cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_0.cpp diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp b/cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp similarity index 100% rename from eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp rename to cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_1.cpp diff --git a/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp b/cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp similarity index 100% rename from eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp rename to cpp/eigen/failtest/block_nonconst_ctor_on_const_xpr_2.cpp diff --git a/eigen/failtest/block_on_const_type_actually_const_0.cpp b/cpp/eigen/failtest/block_on_const_type_actually_const_0.cpp similarity index 100% rename from eigen/failtest/block_on_const_type_actually_const_0.cpp rename to cpp/eigen/failtest/block_on_const_type_actually_const_0.cpp diff --git a/eigen/failtest/block_on_const_type_actually_const_1.cpp b/cpp/eigen/failtest/block_on_const_type_actually_const_1.cpp similarity index 100% rename from eigen/failtest/block_on_const_type_actually_const_1.cpp rename to cpp/eigen/failtest/block_on_const_type_actually_const_1.cpp diff --git a/eigen/failtest/colpivqr_int.cpp b/cpp/eigen/failtest/colpivqr_int.cpp similarity index 100% rename from eigen/failtest/colpivqr_int.cpp rename to cpp/eigen/failtest/colpivqr_int.cpp diff --git a/eigen/failtest/const_qualified_block_method_retval_0.cpp b/cpp/eigen/failtest/const_qualified_block_method_retval_0.cpp similarity index 100% rename from eigen/failtest/const_qualified_block_method_retval_0.cpp rename to cpp/eigen/failtest/const_qualified_block_method_retval_0.cpp diff --git a/eigen/failtest/const_qualified_block_method_retval_1.cpp b/cpp/eigen/failtest/const_qualified_block_method_retval_1.cpp similarity index 100% rename from eigen/failtest/const_qualified_block_method_retval_1.cpp rename to cpp/eigen/failtest/const_qualified_block_method_retval_1.cpp diff --git a/eigen/failtest/const_qualified_diagonal_method_retval.cpp b/cpp/eigen/failtest/const_qualified_diagonal_method_retval.cpp similarity index 100% rename from eigen/failtest/const_qualified_diagonal_method_retval.cpp rename to cpp/eigen/failtest/const_qualified_diagonal_method_retval.cpp diff --git a/eigen/failtest/const_qualified_transpose_method_retval.cpp b/cpp/eigen/failtest/const_qualified_transpose_method_retval.cpp similarity index 100% rename from eigen/failtest/const_qualified_transpose_method_retval.cpp rename to cpp/eigen/failtest/const_qualified_transpose_method_retval.cpp diff --git a/eigen/failtest/cwiseunaryview_nonconst_ctor_on_const_xpr.cpp b/cpp/eigen/failtest/cwiseunaryview_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from eigen/failtest/cwiseunaryview_nonconst_ctor_on_const_xpr.cpp rename to cpp/eigen/failtest/cwiseunaryview_nonconst_ctor_on_const_xpr.cpp diff --git a/eigen/failtest/cwiseunaryview_on_const_type_actually_const.cpp b/cpp/eigen/failtest/cwiseunaryview_on_const_type_actually_const.cpp similarity index 100% rename from eigen/failtest/cwiseunaryview_on_const_type_actually_const.cpp rename to cpp/eigen/failtest/cwiseunaryview_on_const_type_actually_const.cpp diff --git a/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp b/cpp/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp rename to cpp/eigen/failtest/diagonal_nonconst_ctor_on_const_xpr.cpp diff --git a/eigen/failtest/diagonal_on_const_type_actually_const.cpp b/cpp/eigen/failtest/diagonal_on_const_type_actually_const.cpp similarity index 100% rename from eigen/failtest/diagonal_on_const_type_actually_const.cpp rename to cpp/eigen/failtest/diagonal_on_const_type_actually_const.cpp diff --git a/eigen/failtest/eigensolver_cplx.cpp b/cpp/eigen/failtest/eigensolver_cplx.cpp similarity index 100% rename from eigen/failtest/eigensolver_cplx.cpp rename to cpp/eigen/failtest/eigensolver_cplx.cpp diff --git a/eigen/failtest/eigensolver_int.cpp b/cpp/eigen/failtest/eigensolver_int.cpp similarity index 100% rename from eigen/failtest/eigensolver_int.cpp rename to cpp/eigen/failtest/eigensolver_int.cpp diff --git a/eigen/failtest/failtest_sanity_check.cpp b/cpp/eigen/failtest/failtest_sanity_check.cpp similarity index 100% rename from eigen/failtest/failtest_sanity_check.cpp rename to cpp/eigen/failtest/failtest_sanity_check.cpp diff --git a/eigen/failtest/fullpivlu_int.cpp b/cpp/eigen/failtest/fullpivlu_int.cpp similarity index 100% rename from eigen/failtest/fullpivlu_int.cpp rename to cpp/eigen/failtest/fullpivlu_int.cpp diff --git a/eigen/failtest/fullpivqr_int.cpp b/cpp/eigen/failtest/fullpivqr_int.cpp similarity index 100% rename from eigen/failtest/fullpivqr_int.cpp rename to cpp/eigen/failtest/fullpivqr_int.cpp diff --git a/eigen/failtest/jacobisvd_int.cpp b/cpp/eigen/failtest/jacobisvd_int.cpp similarity index 100% rename from eigen/failtest/jacobisvd_int.cpp rename to cpp/eigen/failtest/jacobisvd_int.cpp diff --git a/eigen/failtest/ldlt_int.cpp b/cpp/eigen/failtest/ldlt_int.cpp similarity index 100% rename from eigen/failtest/ldlt_int.cpp rename to cpp/eigen/failtest/ldlt_int.cpp diff --git a/eigen/failtest/llt_int.cpp b/cpp/eigen/failtest/llt_int.cpp similarity index 100% rename from eigen/failtest/llt_int.cpp rename to cpp/eigen/failtest/llt_int.cpp diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp b/cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp similarity index 100% rename from eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp rename to cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_0.cpp diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp b/cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp similarity index 100% rename from eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp rename to cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_1.cpp diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp b/cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp similarity index 100% rename from eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp rename to cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_2.cpp diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp b/cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp similarity index 100% rename from eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp rename to cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_3.cpp diff --git a/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp b/cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp similarity index 100% rename from eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp rename to cpp/eigen/failtest/map_nonconst_ctor_on_const_ptr_4.cpp diff --git a/eigen/failtest/map_on_const_type_actually_const_0.cpp b/cpp/eigen/failtest/map_on_const_type_actually_const_0.cpp similarity index 100% rename from eigen/failtest/map_on_const_type_actually_const_0.cpp rename to cpp/eigen/failtest/map_on_const_type_actually_const_0.cpp diff --git a/eigen/failtest/map_on_const_type_actually_const_1.cpp b/cpp/eigen/failtest/map_on_const_type_actually_const_1.cpp similarity index 100% rename from eigen/failtest/map_on_const_type_actually_const_1.cpp rename to cpp/eigen/failtest/map_on_const_type_actually_const_1.cpp diff --git a/eigen/failtest/partialpivlu_int.cpp b/cpp/eigen/failtest/partialpivlu_int.cpp similarity index 100% rename from eigen/failtest/partialpivlu_int.cpp rename to cpp/eigen/failtest/partialpivlu_int.cpp diff --git a/eigen/failtest/qr_int.cpp b/cpp/eigen/failtest/qr_int.cpp similarity index 100% rename from eigen/failtest/qr_int.cpp rename to cpp/eigen/failtest/qr_int.cpp diff --git a/eigen/failtest/ref_1.cpp b/cpp/eigen/failtest/ref_1.cpp similarity index 100% rename from eigen/failtest/ref_1.cpp rename to cpp/eigen/failtest/ref_1.cpp diff --git a/eigen/failtest/ref_2.cpp b/cpp/eigen/failtest/ref_2.cpp similarity index 100% rename from eigen/failtest/ref_2.cpp rename to cpp/eigen/failtest/ref_2.cpp diff --git a/eigen/failtest/ref_3.cpp b/cpp/eigen/failtest/ref_3.cpp similarity index 100% rename from eigen/failtest/ref_3.cpp rename to cpp/eigen/failtest/ref_3.cpp diff --git a/eigen/failtest/ref_4.cpp b/cpp/eigen/failtest/ref_4.cpp similarity index 100% rename from eigen/failtest/ref_4.cpp rename to cpp/eigen/failtest/ref_4.cpp diff --git a/eigen/failtest/ref_5.cpp b/cpp/eigen/failtest/ref_5.cpp similarity index 100% rename from eigen/failtest/ref_5.cpp rename to cpp/eigen/failtest/ref_5.cpp diff --git a/eigen/failtest/selfadjointview_nonconst_ctor_on_const_xpr.cpp b/cpp/eigen/failtest/selfadjointview_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from eigen/failtest/selfadjointview_nonconst_ctor_on_const_xpr.cpp rename to cpp/eigen/failtest/selfadjointview_nonconst_ctor_on_const_xpr.cpp diff --git a/eigen/failtest/selfadjointview_on_const_type_actually_const.cpp b/cpp/eigen/failtest/selfadjointview_on_const_type_actually_const.cpp similarity index 100% rename from eigen/failtest/selfadjointview_on_const_type_actually_const.cpp rename to cpp/eigen/failtest/selfadjointview_on_const_type_actually_const.cpp diff --git a/eigen/failtest/sparse_ref_1.cpp b/cpp/eigen/failtest/sparse_ref_1.cpp similarity index 100% rename from eigen/failtest/sparse_ref_1.cpp rename to cpp/eigen/failtest/sparse_ref_1.cpp diff --git a/eigen/failtest/sparse_ref_2.cpp b/cpp/eigen/failtest/sparse_ref_2.cpp similarity index 100% rename from eigen/failtest/sparse_ref_2.cpp rename to cpp/eigen/failtest/sparse_ref_2.cpp diff --git a/eigen/failtest/sparse_ref_3.cpp b/cpp/eigen/failtest/sparse_ref_3.cpp similarity index 100% rename from eigen/failtest/sparse_ref_3.cpp rename to cpp/eigen/failtest/sparse_ref_3.cpp diff --git a/eigen/failtest/sparse_ref_4.cpp b/cpp/eigen/failtest/sparse_ref_4.cpp similarity index 100% rename from eigen/failtest/sparse_ref_4.cpp rename to cpp/eigen/failtest/sparse_ref_4.cpp diff --git a/eigen/failtest/sparse_ref_5.cpp b/cpp/eigen/failtest/sparse_ref_5.cpp similarity index 100% rename from eigen/failtest/sparse_ref_5.cpp rename to cpp/eigen/failtest/sparse_ref_5.cpp diff --git a/eigen/failtest/sparse_storage_mismatch.cpp b/cpp/eigen/failtest/sparse_storage_mismatch.cpp similarity index 100% rename from eigen/failtest/sparse_storage_mismatch.cpp rename to cpp/eigen/failtest/sparse_storage_mismatch.cpp diff --git a/eigen/failtest/swap_1.cpp b/cpp/eigen/failtest/swap_1.cpp similarity index 100% rename from eigen/failtest/swap_1.cpp rename to cpp/eigen/failtest/swap_1.cpp diff --git a/eigen/failtest/swap_2.cpp b/cpp/eigen/failtest/swap_2.cpp similarity index 100% rename from eigen/failtest/swap_2.cpp rename to cpp/eigen/failtest/swap_2.cpp diff --git a/eigen/failtest/ternary_1.cpp b/cpp/eigen/failtest/ternary_1.cpp similarity index 100% rename from eigen/failtest/ternary_1.cpp rename to cpp/eigen/failtest/ternary_1.cpp diff --git a/eigen/failtest/ternary_2.cpp b/cpp/eigen/failtest/ternary_2.cpp similarity index 100% rename from eigen/failtest/ternary_2.cpp rename to cpp/eigen/failtest/ternary_2.cpp diff --git a/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp b/cpp/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp rename to cpp/eigen/failtest/transpose_nonconst_ctor_on_const_xpr.cpp diff --git a/eigen/failtest/transpose_on_const_type_actually_const.cpp b/cpp/eigen/failtest/transpose_on_const_type_actually_const.cpp similarity index 100% rename from eigen/failtest/transpose_on_const_type_actually_const.cpp rename to cpp/eigen/failtest/transpose_on_const_type_actually_const.cpp diff --git a/eigen/failtest/triangularview_nonconst_ctor_on_const_xpr.cpp b/cpp/eigen/failtest/triangularview_nonconst_ctor_on_const_xpr.cpp similarity index 100% rename from eigen/failtest/triangularview_nonconst_ctor_on_const_xpr.cpp rename to cpp/eigen/failtest/triangularview_nonconst_ctor_on_const_xpr.cpp diff --git a/eigen/failtest/triangularview_on_const_type_actually_const.cpp b/cpp/eigen/failtest/triangularview_on_const_type_actually_const.cpp similarity index 100% rename from eigen/failtest/triangularview_on_const_type_actually_const.cpp rename to cpp/eigen/failtest/triangularview_on_const_type_actually_const.cpp diff --git a/eigen/lapack/CMakeLists.txt b/cpp/eigen/lapack/CMakeLists.txt similarity index 100% rename from eigen/lapack/CMakeLists.txt rename to cpp/eigen/lapack/CMakeLists.txt diff --git a/eigen/lapack/cholesky.cpp b/cpp/eigen/lapack/cholesky.cpp similarity index 100% rename from eigen/lapack/cholesky.cpp rename to cpp/eigen/lapack/cholesky.cpp diff --git a/eigen/lapack/clacgv.f b/cpp/eigen/lapack/clacgv.f similarity index 100% rename from eigen/lapack/clacgv.f rename to cpp/eigen/lapack/clacgv.f diff --git a/eigen/lapack/cladiv.f b/cpp/eigen/lapack/cladiv.f similarity index 100% rename from eigen/lapack/cladiv.f rename to cpp/eigen/lapack/cladiv.f diff --git a/eigen/lapack/clarf.f b/cpp/eigen/lapack/clarf.f similarity index 100% rename from eigen/lapack/clarf.f rename to cpp/eigen/lapack/clarf.f diff --git a/eigen/lapack/clarfb.f b/cpp/eigen/lapack/clarfb.f similarity index 100% rename from eigen/lapack/clarfb.f rename to cpp/eigen/lapack/clarfb.f diff --git a/eigen/lapack/clarfg.f b/cpp/eigen/lapack/clarfg.f similarity index 100% rename from eigen/lapack/clarfg.f rename to cpp/eigen/lapack/clarfg.f diff --git a/eigen/lapack/clarft.f b/cpp/eigen/lapack/clarft.f similarity index 100% rename from eigen/lapack/clarft.f rename to cpp/eigen/lapack/clarft.f diff --git a/eigen/lapack/complex_double.cpp b/cpp/eigen/lapack/complex_double.cpp similarity index 100% rename from eigen/lapack/complex_double.cpp rename to cpp/eigen/lapack/complex_double.cpp diff --git a/eigen/lapack/complex_single.cpp b/cpp/eigen/lapack/complex_single.cpp similarity index 100% rename from eigen/lapack/complex_single.cpp rename to cpp/eigen/lapack/complex_single.cpp diff --git a/eigen/lapack/dladiv.f b/cpp/eigen/lapack/dladiv.f similarity index 100% rename from eigen/lapack/dladiv.f rename to cpp/eigen/lapack/dladiv.f diff --git a/eigen/lapack/dlamch.f b/cpp/eigen/lapack/dlamch.f similarity index 100% rename from eigen/lapack/dlamch.f rename to cpp/eigen/lapack/dlamch.f diff --git a/eigen/lapack/dlapy2.f b/cpp/eigen/lapack/dlapy2.f similarity index 100% rename from eigen/lapack/dlapy2.f rename to cpp/eigen/lapack/dlapy2.f diff --git a/eigen/lapack/dlapy3.f b/cpp/eigen/lapack/dlapy3.f similarity index 100% rename from eigen/lapack/dlapy3.f rename to cpp/eigen/lapack/dlapy3.f diff --git a/eigen/lapack/dlarf.f b/cpp/eigen/lapack/dlarf.f similarity index 100% rename from eigen/lapack/dlarf.f rename to cpp/eigen/lapack/dlarf.f diff --git a/eigen/lapack/dlarfb.f b/cpp/eigen/lapack/dlarfb.f similarity index 100% rename from eigen/lapack/dlarfb.f rename to cpp/eigen/lapack/dlarfb.f diff --git a/eigen/lapack/dlarfg.f b/cpp/eigen/lapack/dlarfg.f similarity index 100% rename from eigen/lapack/dlarfg.f rename to cpp/eigen/lapack/dlarfg.f diff --git a/eigen/lapack/dlarft.f b/cpp/eigen/lapack/dlarft.f similarity index 100% rename from eigen/lapack/dlarft.f rename to cpp/eigen/lapack/dlarft.f diff --git a/eigen/lapack/double.cpp b/cpp/eigen/lapack/double.cpp similarity index 100% rename from eigen/lapack/double.cpp rename to cpp/eigen/lapack/double.cpp diff --git a/eigen/lapack/dsecnd_NONE.f b/cpp/eigen/lapack/dsecnd_NONE.f similarity index 100% rename from eigen/lapack/dsecnd_NONE.f rename to cpp/eigen/lapack/dsecnd_NONE.f diff --git a/eigen/lapack/eigenvalues.cpp b/cpp/eigen/lapack/eigenvalues.cpp similarity index 100% rename from eigen/lapack/eigenvalues.cpp rename to cpp/eigen/lapack/eigenvalues.cpp diff --git a/eigen/lapack/ilaclc.f b/cpp/eigen/lapack/ilaclc.f similarity index 100% rename from eigen/lapack/ilaclc.f rename to cpp/eigen/lapack/ilaclc.f diff --git a/eigen/lapack/ilaclr.f b/cpp/eigen/lapack/ilaclr.f similarity index 100% rename from eigen/lapack/ilaclr.f rename to cpp/eigen/lapack/ilaclr.f diff --git a/eigen/lapack/iladlc.f b/cpp/eigen/lapack/iladlc.f similarity index 100% rename from eigen/lapack/iladlc.f rename to cpp/eigen/lapack/iladlc.f diff --git a/eigen/lapack/iladlr.f b/cpp/eigen/lapack/iladlr.f similarity index 100% rename from eigen/lapack/iladlr.f rename to cpp/eigen/lapack/iladlr.f diff --git a/eigen/lapack/ilaslc.f b/cpp/eigen/lapack/ilaslc.f similarity index 100% rename from eigen/lapack/ilaslc.f rename to cpp/eigen/lapack/ilaslc.f diff --git a/eigen/lapack/ilaslr.f b/cpp/eigen/lapack/ilaslr.f similarity index 100% rename from eigen/lapack/ilaslr.f rename to cpp/eigen/lapack/ilaslr.f diff --git a/eigen/lapack/ilazlc.f b/cpp/eigen/lapack/ilazlc.f similarity index 100% rename from eigen/lapack/ilazlc.f rename to cpp/eigen/lapack/ilazlc.f diff --git a/eigen/lapack/ilazlr.f b/cpp/eigen/lapack/ilazlr.f similarity index 100% rename from eigen/lapack/ilazlr.f rename to cpp/eigen/lapack/ilazlr.f diff --git a/eigen/lapack/lapack_common.h b/cpp/eigen/lapack/lapack_common.h similarity index 100% rename from eigen/lapack/lapack_common.h rename to cpp/eigen/lapack/lapack_common.h diff --git a/eigen/lapack/lu.cpp b/cpp/eigen/lapack/lu.cpp similarity index 100% rename from eigen/lapack/lu.cpp rename to cpp/eigen/lapack/lu.cpp diff --git a/eigen/lapack/second_NONE.f b/cpp/eigen/lapack/second_NONE.f similarity index 100% rename from eigen/lapack/second_NONE.f rename to cpp/eigen/lapack/second_NONE.f diff --git a/eigen/lapack/single.cpp b/cpp/eigen/lapack/single.cpp similarity index 100% rename from eigen/lapack/single.cpp rename to cpp/eigen/lapack/single.cpp diff --git a/eigen/lapack/sladiv.f b/cpp/eigen/lapack/sladiv.f similarity index 100% rename from eigen/lapack/sladiv.f rename to cpp/eigen/lapack/sladiv.f diff --git a/eigen/lapack/slamch.f b/cpp/eigen/lapack/slamch.f similarity index 100% rename from eigen/lapack/slamch.f rename to cpp/eigen/lapack/slamch.f diff --git a/eigen/lapack/slapy2.f b/cpp/eigen/lapack/slapy2.f similarity index 100% rename from eigen/lapack/slapy2.f rename to cpp/eigen/lapack/slapy2.f diff --git a/eigen/lapack/slapy3.f b/cpp/eigen/lapack/slapy3.f similarity index 100% rename from eigen/lapack/slapy3.f rename to cpp/eigen/lapack/slapy3.f diff --git a/eigen/lapack/slarf.f b/cpp/eigen/lapack/slarf.f similarity index 100% rename from eigen/lapack/slarf.f rename to cpp/eigen/lapack/slarf.f diff --git a/eigen/lapack/slarfb.f b/cpp/eigen/lapack/slarfb.f similarity index 100% rename from eigen/lapack/slarfb.f rename to cpp/eigen/lapack/slarfb.f diff --git a/eigen/lapack/slarfg.f b/cpp/eigen/lapack/slarfg.f similarity index 100% rename from eigen/lapack/slarfg.f rename to cpp/eigen/lapack/slarfg.f diff --git a/eigen/lapack/slarft.f b/cpp/eigen/lapack/slarft.f similarity index 100% rename from eigen/lapack/slarft.f rename to cpp/eigen/lapack/slarft.f diff --git a/eigen/lapack/svd.cpp b/cpp/eigen/lapack/svd.cpp similarity index 100% rename from eigen/lapack/svd.cpp rename to cpp/eigen/lapack/svd.cpp diff --git a/eigen/lapack/zlacgv.f b/cpp/eigen/lapack/zlacgv.f similarity index 100% rename from eigen/lapack/zlacgv.f rename to cpp/eigen/lapack/zlacgv.f diff --git a/eigen/lapack/zladiv.f b/cpp/eigen/lapack/zladiv.f similarity index 100% rename from eigen/lapack/zladiv.f rename to cpp/eigen/lapack/zladiv.f diff --git a/eigen/lapack/zlarf.f b/cpp/eigen/lapack/zlarf.f similarity index 100% rename from eigen/lapack/zlarf.f rename to cpp/eigen/lapack/zlarf.f diff --git a/eigen/lapack/zlarfb.f b/cpp/eigen/lapack/zlarfb.f similarity index 100% rename from eigen/lapack/zlarfb.f rename to cpp/eigen/lapack/zlarfb.f diff --git a/eigen/lapack/zlarfg.f b/cpp/eigen/lapack/zlarfg.f similarity index 100% rename from eigen/lapack/zlarfg.f rename to cpp/eigen/lapack/zlarfg.f diff --git a/eigen/lapack/zlarft.f b/cpp/eigen/lapack/zlarft.f similarity index 100% rename from eigen/lapack/zlarft.f rename to cpp/eigen/lapack/zlarft.f diff --git a/eigen/scripts/CMakeLists.txt b/cpp/eigen/scripts/CMakeLists.txt similarity index 100% rename from eigen/scripts/CMakeLists.txt rename to cpp/eigen/scripts/CMakeLists.txt diff --git a/eigen/scripts/buildtests.in b/cpp/eigen/scripts/buildtests.in similarity index 100% rename from eigen/scripts/buildtests.in rename to cpp/eigen/scripts/buildtests.in diff --git a/eigen/scripts/cdashtesting.cmake.in b/cpp/eigen/scripts/cdashtesting.cmake.in similarity index 100% rename from eigen/scripts/cdashtesting.cmake.in rename to cpp/eigen/scripts/cdashtesting.cmake.in diff --git a/eigen/scripts/check.in b/cpp/eigen/scripts/check.in similarity index 100% rename from eigen/scripts/check.in rename to cpp/eigen/scripts/check.in diff --git a/eigen/scripts/debug.in b/cpp/eigen/scripts/debug.in similarity index 100% rename from eigen/scripts/debug.in rename to cpp/eigen/scripts/debug.in diff --git a/eigen/scripts/eigen_gen_credits.cpp b/cpp/eigen/scripts/eigen_gen_credits.cpp similarity index 100% rename from eigen/scripts/eigen_gen_credits.cpp rename to cpp/eigen/scripts/eigen_gen_credits.cpp diff --git a/eigen/scripts/eigen_gen_docs b/cpp/eigen/scripts/eigen_gen_docs similarity index 100% rename from eigen/scripts/eigen_gen_docs rename to cpp/eigen/scripts/eigen_gen_docs diff --git a/eigen/scripts/release.in b/cpp/eigen/scripts/release.in similarity index 100% rename from eigen/scripts/release.in rename to cpp/eigen/scripts/release.in diff --git a/eigen/scripts/relicense.py b/cpp/eigen/scripts/relicense.py similarity index 100% rename from eigen/scripts/relicense.py rename to cpp/eigen/scripts/relicense.py diff --git a/eigen/signature_of_eigen3_matrix_library b/cpp/eigen/signature_of_eigen3_matrix_library similarity index 100% rename from eigen/signature_of_eigen3_matrix_library rename to cpp/eigen/signature_of_eigen3_matrix_library diff --git a/eigen/test/CMakeLists.txt b/cpp/eigen/test/CMakeLists.txt similarity index 100% rename from eigen/test/CMakeLists.txt rename to cpp/eigen/test/CMakeLists.txt diff --git a/eigen/test/adjoint.cpp b/cpp/eigen/test/adjoint.cpp similarity index 100% rename from eigen/test/adjoint.cpp rename to cpp/eigen/test/adjoint.cpp diff --git a/eigen/test/array.cpp b/cpp/eigen/test/array.cpp similarity index 100% rename from eigen/test/array.cpp rename to cpp/eigen/test/array.cpp diff --git a/eigen/test/array_for_matrix.cpp b/cpp/eigen/test/array_for_matrix.cpp similarity index 100% rename from eigen/test/array_for_matrix.cpp rename to cpp/eigen/test/array_for_matrix.cpp diff --git a/eigen/test/array_of_string.cpp b/cpp/eigen/test/array_of_string.cpp similarity index 100% rename from eigen/test/array_of_string.cpp rename to cpp/eigen/test/array_of_string.cpp diff --git a/eigen/test/array_replicate.cpp b/cpp/eigen/test/array_replicate.cpp similarity index 100% rename from eigen/test/array_replicate.cpp rename to cpp/eigen/test/array_replicate.cpp diff --git a/eigen/test/array_reverse.cpp b/cpp/eigen/test/array_reverse.cpp similarity index 100% rename from eigen/test/array_reverse.cpp rename to cpp/eigen/test/array_reverse.cpp diff --git a/eigen/test/bandmatrix.cpp b/cpp/eigen/test/bandmatrix.cpp similarity index 100% rename from eigen/test/bandmatrix.cpp rename to cpp/eigen/test/bandmatrix.cpp diff --git a/eigen/test/basicstuff.cpp b/cpp/eigen/test/basicstuff.cpp similarity index 100% rename from eigen/test/basicstuff.cpp rename to cpp/eigen/test/basicstuff.cpp diff --git a/eigen/test/bdcsvd.cpp b/cpp/eigen/test/bdcsvd.cpp similarity index 100% rename from eigen/test/bdcsvd.cpp rename to cpp/eigen/test/bdcsvd.cpp diff --git a/eigen/test/bicgstab.cpp b/cpp/eigen/test/bicgstab.cpp similarity index 100% rename from eigen/test/bicgstab.cpp rename to cpp/eigen/test/bicgstab.cpp diff --git a/eigen/test/block.cpp b/cpp/eigen/test/block.cpp similarity index 100% rename from eigen/test/block.cpp rename to cpp/eigen/test/block.cpp diff --git a/eigen/test/boostmultiprec.cpp b/cpp/eigen/test/boostmultiprec.cpp similarity index 100% rename from eigen/test/boostmultiprec.cpp rename to cpp/eigen/test/boostmultiprec.cpp diff --git a/eigen/test/bug1213.cpp b/cpp/eigen/test/bug1213.cpp similarity index 100% rename from eigen/test/bug1213.cpp rename to cpp/eigen/test/bug1213.cpp diff --git a/eigen/test/bug1213.h b/cpp/eigen/test/bug1213.h similarity index 100% rename from eigen/test/bug1213.h rename to cpp/eigen/test/bug1213.h diff --git a/eigen/test/bug1213_main.cpp b/cpp/eigen/test/bug1213_main.cpp similarity index 100% rename from eigen/test/bug1213_main.cpp rename to cpp/eigen/test/bug1213_main.cpp diff --git a/eigen/test/cholesky.cpp b/cpp/eigen/test/cholesky.cpp similarity index 100% rename from eigen/test/cholesky.cpp rename to cpp/eigen/test/cholesky.cpp diff --git a/eigen/test/cholmod_support.cpp b/cpp/eigen/test/cholmod_support.cpp similarity index 100% rename from eigen/test/cholmod_support.cpp rename to cpp/eigen/test/cholmod_support.cpp diff --git a/eigen/test/commainitializer.cpp b/cpp/eigen/test/commainitializer.cpp similarity index 100% rename from eigen/test/commainitializer.cpp rename to cpp/eigen/test/commainitializer.cpp diff --git a/eigen/test/conjugate_gradient.cpp b/cpp/eigen/test/conjugate_gradient.cpp similarity index 100% rename from eigen/test/conjugate_gradient.cpp rename to cpp/eigen/test/conjugate_gradient.cpp diff --git a/eigen/test/conservative_resize.cpp b/cpp/eigen/test/conservative_resize.cpp similarity index 100% rename from eigen/test/conservative_resize.cpp rename to cpp/eigen/test/conservative_resize.cpp diff --git a/eigen/test/corners.cpp b/cpp/eigen/test/corners.cpp similarity index 100% rename from eigen/test/corners.cpp rename to cpp/eigen/test/corners.cpp diff --git a/eigen/test/ctorleak.cpp b/cpp/eigen/test/ctorleak.cpp similarity index 100% rename from eigen/test/ctorleak.cpp rename to cpp/eigen/test/ctorleak.cpp diff --git a/eigen/test/cuda_basic.cu b/cpp/eigen/test/cuda_basic.cu similarity index 100% rename from eigen/test/cuda_basic.cu rename to cpp/eigen/test/cuda_basic.cu diff --git a/eigen/test/cuda_common.h b/cpp/eigen/test/cuda_common.h similarity index 100% rename from eigen/test/cuda_common.h rename to cpp/eigen/test/cuda_common.h diff --git a/eigen/test/denseLM.cpp b/cpp/eigen/test/denseLM.cpp similarity index 100% rename from eigen/test/denseLM.cpp rename to cpp/eigen/test/denseLM.cpp diff --git a/eigen/test/dense_storage.cpp b/cpp/eigen/test/dense_storage.cpp similarity index 100% rename from eigen/test/dense_storage.cpp rename to cpp/eigen/test/dense_storage.cpp diff --git a/eigen/test/determinant.cpp b/cpp/eigen/test/determinant.cpp similarity index 100% rename from eigen/test/determinant.cpp rename to cpp/eigen/test/determinant.cpp diff --git a/eigen/test/diagonal.cpp b/cpp/eigen/test/diagonal.cpp similarity index 100% rename from eigen/test/diagonal.cpp rename to cpp/eigen/test/diagonal.cpp diff --git a/eigen/test/diagonalmatrices.cpp b/cpp/eigen/test/diagonalmatrices.cpp similarity index 100% rename from eigen/test/diagonalmatrices.cpp rename to cpp/eigen/test/diagonalmatrices.cpp diff --git a/eigen/test/dontalign.cpp b/cpp/eigen/test/dontalign.cpp similarity index 100% rename from eigen/test/dontalign.cpp rename to cpp/eigen/test/dontalign.cpp diff --git a/eigen/test/dynalloc.cpp b/cpp/eigen/test/dynalloc.cpp similarity index 100% rename from eigen/test/dynalloc.cpp rename to cpp/eigen/test/dynalloc.cpp diff --git a/eigen/test/eigen2support.cpp b/cpp/eigen/test/eigen2support.cpp similarity index 100% rename from eigen/test/eigen2support.cpp rename to cpp/eigen/test/eigen2support.cpp diff --git a/eigen/test/eigensolver_complex.cpp b/cpp/eigen/test/eigensolver_complex.cpp similarity index 100% rename from eigen/test/eigensolver_complex.cpp rename to cpp/eigen/test/eigensolver_complex.cpp diff --git a/eigen/test/eigensolver_generalized_real.cpp b/cpp/eigen/test/eigensolver_generalized_real.cpp similarity index 100% rename from eigen/test/eigensolver_generalized_real.cpp rename to cpp/eigen/test/eigensolver_generalized_real.cpp diff --git a/eigen/test/eigensolver_generic.cpp b/cpp/eigen/test/eigensolver_generic.cpp similarity index 100% rename from eigen/test/eigensolver_generic.cpp rename to cpp/eigen/test/eigensolver_generic.cpp diff --git a/eigen/test/eigensolver_selfadjoint.cpp b/cpp/eigen/test/eigensolver_selfadjoint.cpp similarity index 100% rename from eigen/test/eigensolver_selfadjoint.cpp rename to cpp/eigen/test/eigensolver_selfadjoint.cpp diff --git a/eigen/test/evaluator_common.h b/cpp/eigen/test/evaluator_common.h similarity index 100% rename from eigen/test/evaluator_common.h rename to cpp/eigen/test/evaluator_common.h diff --git a/eigen/test/evaluators.cpp b/cpp/eigen/test/evaluators.cpp similarity index 100% rename from eigen/test/evaluators.cpp rename to cpp/eigen/test/evaluators.cpp diff --git a/eigen/test/exceptions.cpp b/cpp/eigen/test/exceptions.cpp similarity index 100% rename from eigen/test/exceptions.cpp rename to cpp/eigen/test/exceptions.cpp diff --git a/eigen/test/fastmath.cpp b/cpp/eigen/test/fastmath.cpp similarity index 100% rename from eigen/test/fastmath.cpp rename to cpp/eigen/test/fastmath.cpp diff --git a/eigen/test/first_aligned.cpp b/cpp/eigen/test/first_aligned.cpp similarity index 100% rename from eigen/test/first_aligned.cpp rename to cpp/eigen/test/first_aligned.cpp diff --git a/eigen/test/geo_alignedbox.cpp b/cpp/eigen/test/geo_alignedbox.cpp similarity index 100% rename from eigen/test/geo_alignedbox.cpp rename to cpp/eigen/test/geo_alignedbox.cpp diff --git a/eigen/test/geo_eulerangles.cpp b/cpp/eigen/test/geo_eulerangles.cpp similarity index 100% rename from eigen/test/geo_eulerangles.cpp rename to cpp/eigen/test/geo_eulerangles.cpp diff --git a/eigen/test/geo_homogeneous.cpp b/cpp/eigen/test/geo_homogeneous.cpp similarity index 100% rename from eigen/test/geo_homogeneous.cpp rename to cpp/eigen/test/geo_homogeneous.cpp diff --git a/eigen/test/geo_hyperplane.cpp b/cpp/eigen/test/geo_hyperplane.cpp similarity index 100% rename from eigen/test/geo_hyperplane.cpp rename to cpp/eigen/test/geo_hyperplane.cpp diff --git a/eigen/test/geo_orthomethods.cpp b/cpp/eigen/test/geo_orthomethods.cpp similarity index 100% rename from eigen/test/geo_orthomethods.cpp rename to cpp/eigen/test/geo_orthomethods.cpp diff --git a/eigen/test/geo_parametrizedline.cpp b/cpp/eigen/test/geo_parametrizedline.cpp similarity index 100% rename from eigen/test/geo_parametrizedline.cpp rename to cpp/eigen/test/geo_parametrizedline.cpp diff --git a/eigen/test/geo_quaternion.cpp b/cpp/eigen/test/geo_quaternion.cpp similarity index 100% rename from eigen/test/geo_quaternion.cpp rename to cpp/eigen/test/geo_quaternion.cpp diff --git a/eigen/test/geo_transformations.cpp b/cpp/eigen/test/geo_transformations.cpp similarity index 100% rename from eigen/test/geo_transformations.cpp rename to cpp/eigen/test/geo_transformations.cpp diff --git a/eigen/test/half_float.cpp b/cpp/eigen/test/half_float.cpp similarity index 100% rename from eigen/test/half_float.cpp rename to cpp/eigen/test/half_float.cpp diff --git a/eigen/test/hessenberg.cpp b/cpp/eigen/test/hessenberg.cpp similarity index 100% rename from eigen/test/hessenberg.cpp rename to cpp/eigen/test/hessenberg.cpp diff --git a/eigen/test/householder.cpp b/cpp/eigen/test/householder.cpp similarity index 100% rename from eigen/test/householder.cpp rename to cpp/eigen/test/householder.cpp diff --git a/eigen/test/incomplete_cholesky.cpp b/cpp/eigen/test/incomplete_cholesky.cpp similarity index 100% rename from eigen/test/incomplete_cholesky.cpp rename to cpp/eigen/test/incomplete_cholesky.cpp diff --git a/eigen/test/inplace_decomposition.cpp b/cpp/eigen/test/inplace_decomposition.cpp similarity index 100% rename from eigen/test/inplace_decomposition.cpp rename to cpp/eigen/test/inplace_decomposition.cpp diff --git a/eigen/test/integer_types.cpp b/cpp/eigen/test/integer_types.cpp similarity index 100% rename from eigen/test/integer_types.cpp rename to cpp/eigen/test/integer_types.cpp diff --git a/eigen/test/inverse.cpp b/cpp/eigen/test/inverse.cpp similarity index 100% rename from eigen/test/inverse.cpp rename to cpp/eigen/test/inverse.cpp diff --git a/eigen/test/is_same_dense.cpp b/cpp/eigen/test/is_same_dense.cpp similarity index 100% rename from eigen/test/is_same_dense.cpp rename to cpp/eigen/test/is_same_dense.cpp diff --git a/eigen/test/jacobi.cpp b/cpp/eigen/test/jacobi.cpp similarity index 100% rename from eigen/test/jacobi.cpp rename to cpp/eigen/test/jacobi.cpp diff --git a/eigen/test/jacobisvd.cpp b/cpp/eigen/test/jacobisvd.cpp similarity index 100% rename from eigen/test/jacobisvd.cpp rename to cpp/eigen/test/jacobisvd.cpp diff --git a/eigen/test/linearstructure.cpp b/cpp/eigen/test/linearstructure.cpp similarity index 100% rename from eigen/test/linearstructure.cpp rename to cpp/eigen/test/linearstructure.cpp diff --git a/eigen/test/lscg.cpp b/cpp/eigen/test/lscg.cpp similarity index 100% rename from eigen/test/lscg.cpp rename to cpp/eigen/test/lscg.cpp diff --git a/eigen/test/lu.cpp b/cpp/eigen/test/lu.cpp similarity index 100% rename from eigen/test/lu.cpp rename to cpp/eigen/test/lu.cpp diff --git a/eigen/test/main.h b/cpp/eigen/test/main.h similarity index 100% rename from eigen/test/main.h rename to cpp/eigen/test/main.h diff --git a/eigen/test/mapped_matrix.cpp b/cpp/eigen/test/mapped_matrix.cpp similarity index 100% rename from eigen/test/mapped_matrix.cpp rename to cpp/eigen/test/mapped_matrix.cpp diff --git a/eigen/test/mapstaticmethods.cpp b/cpp/eigen/test/mapstaticmethods.cpp similarity index 100% rename from eigen/test/mapstaticmethods.cpp rename to cpp/eigen/test/mapstaticmethods.cpp diff --git a/eigen/test/mapstride.cpp b/cpp/eigen/test/mapstride.cpp similarity index 100% rename from eigen/test/mapstride.cpp rename to cpp/eigen/test/mapstride.cpp diff --git a/eigen/test/meta.cpp b/cpp/eigen/test/meta.cpp similarity index 100% rename from eigen/test/meta.cpp rename to cpp/eigen/test/meta.cpp diff --git a/eigen/test/metis_support.cpp b/cpp/eigen/test/metis_support.cpp similarity index 100% rename from eigen/test/metis_support.cpp rename to cpp/eigen/test/metis_support.cpp diff --git a/eigen/test/miscmatrices.cpp b/cpp/eigen/test/miscmatrices.cpp similarity index 100% rename from eigen/test/miscmatrices.cpp rename to cpp/eigen/test/miscmatrices.cpp diff --git a/eigen/test/mixingtypes.cpp b/cpp/eigen/test/mixingtypes.cpp similarity index 100% rename from eigen/test/mixingtypes.cpp rename to cpp/eigen/test/mixingtypes.cpp diff --git a/eigen/test/mpl2only.cpp b/cpp/eigen/test/mpl2only.cpp similarity index 100% rename from eigen/test/mpl2only.cpp rename to cpp/eigen/test/mpl2only.cpp diff --git a/eigen/test/nesting_ops.cpp b/cpp/eigen/test/nesting_ops.cpp similarity index 100% rename from eigen/test/nesting_ops.cpp rename to cpp/eigen/test/nesting_ops.cpp diff --git a/eigen/test/nomalloc.cpp b/cpp/eigen/test/nomalloc.cpp similarity index 100% rename from eigen/test/nomalloc.cpp rename to cpp/eigen/test/nomalloc.cpp diff --git a/eigen/test/nullary.cpp b/cpp/eigen/test/nullary.cpp similarity index 100% rename from eigen/test/nullary.cpp rename to cpp/eigen/test/nullary.cpp diff --git a/eigen/test/packetmath.cpp b/cpp/eigen/test/packetmath.cpp similarity index 100% rename from eigen/test/packetmath.cpp rename to cpp/eigen/test/packetmath.cpp diff --git a/eigen/test/pardiso_support.cpp b/cpp/eigen/test/pardiso_support.cpp similarity index 100% rename from eigen/test/pardiso_support.cpp rename to cpp/eigen/test/pardiso_support.cpp diff --git a/eigen/test/pastix_support.cpp b/cpp/eigen/test/pastix_support.cpp similarity index 100% rename from eigen/test/pastix_support.cpp rename to cpp/eigen/test/pastix_support.cpp diff --git a/eigen/test/permutationmatrices.cpp b/cpp/eigen/test/permutationmatrices.cpp similarity index 100% rename from eigen/test/permutationmatrices.cpp rename to cpp/eigen/test/permutationmatrices.cpp diff --git a/eigen/test/prec_inverse_4x4.cpp b/cpp/eigen/test/prec_inverse_4x4.cpp similarity index 100% rename from eigen/test/prec_inverse_4x4.cpp rename to cpp/eigen/test/prec_inverse_4x4.cpp diff --git a/eigen/test/product.h b/cpp/eigen/test/product.h similarity index 100% rename from eigen/test/product.h rename to cpp/eigen/test/product.h diff --git a/eigen/test/product_extra.cpp b/cpp/eigen/test/product_extra.cpp similarity index 100% rename from eigen/test/product_extra.cpp rename to cpp/eigen/test/product_extra.cpp diff --git a/eigen/test/product_large.cpp b/cpp/eigen/test/product_large.cpp similarity index 100% rename from eigen/test/product_large.cpp rename to cpp/eigen/test/product_large.cpp diff --git a/eigen/test/product_mmtr.cpp b/cpp/eigen/test/product_mmtr.cpp similarity index 100% rename from eigen/test/product_mmtr.cpp rename to cpp/eigen/test/product_mmtr.cpp diff --git a/eigen/test/product_notemporary.cpp b/cpp/eigen/test/product_notemporary.cpp similarity index 100% rename from eigen/test/product_notemporary.cpp rename to cpp/eigen/test/product_notemporary.cpp diff --git a/eigen/test/product_selfadjoint.cpp b/cpp/eigen/test/product_selfadjoint.cpp similarity index 100% rename from eigen/test/product_selfadjoint.cpp rename to cpp/eigen/test/product_selfadjoint.cpp diff --git a/eigen/test/product_small.cpp b/cpp/eigen/test/product_small.cpp similarity index 100% rename from eigen/test/product_small.cpp rename to cpp/eigen/test/product_small.cpp diff --git a/eigen/test/product_symm.cpp b/cpp/eigen/test/product_symm.cpp similarity index 100% rename from eigen/test/product_symm.cpp rename to cpp/eigen/test/product_symm.cpp diff --git a/eigen/test/product_syrk.cpp b/cpp/eigen/test/product_syrk.cpp similarity index 100% rename from eigen/test/product_syrk.cpp rename to cpp/eigen/test/product_syrk.cpp diff --git a/eigen/test/product_trmm.cpp b/cpp/eigen/test/product_trmm.cpp similarity index 100% rename from eigen/test/product_trmm.cpp rename to cpp/eigen/test/product_trmm.cpp diff --git a/eigen/test/product_trmv.cpp b/cpp/eigen/test/product_trmv.cpp similarity index 100% rename from eigen/test/product_trmv.cpp rename to cpp/eigen/test/product_trmv.cpp diff --git a/eigen/test/product_trsolve.cpp b/cpp/eigen/test/product_trsolve.cpp similarity index 100% rename from eigen/test/product_trsolve.cpp rename to cpp/eigen/test/product_trsolve.cpp diff --git a/eigen/test/qr.cpp b/cpp/eigen/test/qr.cpp similarity index 100% rename from eigen/test/qr.cpp rename to cpp/eigen/test/qr.cpp diff --git a/eigen/test/qr_colpivoting.cpp b/cpp/eigen/test/qr_colpivoting.cpp similarity index 100% rename from eigen/test/qr_colpivoting.cpp rename to cpp/eigen/test/qr_colpivoting.cpp diff --git a/eigen/test/qr_fullpivoting.cpp b/cpp/eigen/test/qr_fullpivoting.cpp similarity index 100% rename from eigen/test/qr_fullpivoting.cpp rename to cpp/eigen/test/qr_fullpivoting.cpp diff --git a/eigen/test/qtvector.cpp b/cpp/eigen/test/qtvector.cpp similarity index 100% rename from eigen/test/qtvector.cpp rename to cpp/eigen/test/qtvector.cpp diff --git a/eigen/test/rand.cpp b/cpp/eigen/test/rand.cpp similarity index 100% rename from eigen/test/rand.cpp rename to cpp/eigen/test/rand.cpp diff --git a/eigen/test/real_qz.cpp b/cpp/eigen/test/real_qz.cpp similarity index 100% rename from eigen/test/real_qz.cpp rename to cpp/eigen/test/real_qz.cpp diff --git a/eigen/test/redux.cpp b/cpp/eigen/test/redux.cpp similarity index 100% rename from eigen/test/redux.cpp rename to cpp/eigen/test/redux.cpp diff --git a/eigen/test/ref.cpp b/cpp/eigen/test/ref.cpp similarity index 100% rename from eigen/test/ref.cpp rename to cpp/eigen/test/ref.cpp diff --git a/eigen/test/resize.cpp b/cpp/eigen/test/resize.cpp similarity index 100% rename from eigen/test/resize.cpp rename to cpp/eigen/test/resize.cpp diff --git a/eigen/test/rvalue_types.cpp b/cpp/eigen/test/rvalue_types.cpp similarity index 100% rename from eigen/test/rvalue_types.cpp rename to cpp/eigen/test/rvalue_types.cpp diff --git a/eigen/test/schur_complex.cpp b/cpp/eigen/test/schur_complex.cpp similarity index 100% rename from eigen/test/schur_complex.cpp rename to cpp/eigen/test/schur_complex.cpp diff --git a/eigen/test/schur_real.cpp b/cpp/eigen/test/schur_real.cpp similarity index 100% rename from eigen/test/schur_real.cpp rename to cpp/eigen/test/schur_real.cpp diff --git a/eigen/test/selfadjoint.cpp b/cpp/eigen/test/selfadjoint.cpp similarity index 100% rename from eigen/test/selfadjoint.cpp rename to cpp/eigen/test/selfadjoint.cpp diff --git a/eigen/test/simplicial_cholesky.cpp b/cpp/eigen/test/simplicial_cholesky.cpp similarity index 100% rename from eigen/test/simplicial_cholesky.cpp rename to cpp/eigen/test/simplicial_cholesky.cpp diff --git a/eigen/test/sizeof.cpp b/cpp/eigen/test/sizeof.cpp similarity index 100% rename from eigen/test/sizeof.cpp rename to cpp/eigen/test/sizeof.cpp diff --git a/eigen/test/sizeoverflow.cpp b/cpp/eigen/test/sizeoverflow.cpp similarity index 100% rename from eigen/test/sizeoverflow.cpp rename to cpp/eigen/test/sizeoverflow.cpp diff --git a/eigen/test/smallvectors.cpp b/cpp/eigen/test/smallvectors.cpp similarity index 100% rename from eigen/test/smallvectors.cpp rename to cpp/eigen/test/smallvectors.cpp diff --git a/eigen/test/sparse.h b/cpp/eigen/test/sparse.h similarity index 100% rename from eigen/test/sparse.h rename to cpp/eigen/test/sparse.h diff --git a/eigen/test/sparseLM.cpp b/cpp/eigen/test/sparseLM.cpp similarity index 100% rename from eigen/test/sparseLM.cpp rename to cpp/eigen/test/sparseLM.cpp diff --git a/eigen/test/sparse_basic.cpp b/cpp/eigen/test/sparse_basic.cpp similarity index 100% rename from eigen/test/sparse_basic.cpp rename to cpp/eigen/test/sparse_basic.cpp diff --git a/eigen/test/sparse_block.cpp b/cpp/eigen/test/sparse_block.cpp similarity index 100% rename from eigen/test/sparse_block.cpp rename to cpp/eigen/test/sparse_block.cpp diff --git a/eigen/test/sparse_permutations.cpp b/cpp/eigen/test/sparse_permutations.cpp similarity index 100% rename from eigen/test/sparse_permutations.cpp rename to cpp/eigen/test/sparse_permutations.cpp diff --git a/eigen/test/sparse_product.cpp b/cpp/eigen/test/sparse_product.cpp similarity index 100% rename from eigen/test/sparse_product.cpp rename to cpp/eigen/test/sparse_product.cpp diff --git a/eigen/test/sparse_ref.cpp b/cpp/eigen/test/sparse_ref.cpp similarity index 100% rename from eigen/test/sparse_ref.cpp rename to cpp/eigen/test/sparse_ref.cpp diff --git a/eigen/test/sparse_solver.h b/cpp/eigen/test/sparse_solver.h similarity index 100% rename from eigen/test/sparse_solver.h rename to cpp/eigen/test/sparse_solver.h diff --git a/eigen/test/sparse_solvers.cpp b/cpp/eigen/test/sparse_solvers.cpp similarity index 100% rename from eigen/test/sparse_solvers.cpp rename to cpp/eigen/test/sparse_solvers.cpp diff --git a/eigen/test/sparse_vector.cpp b/cpp/eigen/test/sparse_vector.cpp similarity index 100% rename from eigen/test/sparse_vector.cpp rename to cpp/eigen/test/sparse_vector.cpp diff --git a/eigen/test/sparselu.cpp b/cpp/eigen/test/sparselu.cpp similarity index 100% rename from eigen/test/sparselu.cpp rename to cpp/eigen/test/sparselu.cpp diff --git a/eigen/test/sparseqr.cpp b/cpp/eigen/test/sparseqr.cpp similarity index 100% rename from eigen/test/sparseqr.cpp rename to cpp/eigen/test/sparseqr.cpp diff --git a/eigen/test/special_numbers.cpp b/cpp/eigen/test/special_numbers.cpp similarity index 100% rename from eigen/test/special_numbers.cpp rename to cpp/eigen/test/special_numbers.cpp diff --git a/eigen/test/spqr_support.cpp b/cpp/eigen/test/spqr_support.cpp similarity index 100% rename from eigen/test/spqr_support.cpp rename to cpp/eigen/test/spqr_support.cpp diff --git a/eigen/test/stable_norm.cpp b/cpp/eigen/test/stable_norm.cpp similarity index 100% rename from eigen/test/stable_norm.cpp rename to cpp/eigen/test/stable_norm.cpp diff --git a/eigen/test/stddeque.cpp b/cpp/eigen/test/stddeque.cpp similarity index 100% rename from eigen/test/stddeque.cpp rename to cpp/eigen/test/stddeque.cpp diff --git a/eigen/test/stddeque_overload.cpp b/cpp/eigen/test/stddeque_overload.cpp similarity index 100% rename from eigen/test/stddeque_overload.cpp rename to cpp/eigen/test/stddeque_overload.cpp diff --git a/eigen/test/stdlist.cpp b/cpp/eigen/test/stdlist.cpp similarity index 100% rename from eigen/test/stdlist.cpp rename to cpp/eigen/test/stdlist.cpp diff --git a/eigen/test/stdlist_overload.cpp b/cpp/eigen/test/stdlist_overload.cpp similarity index 100% rename from eigen/test/stdlist_overload.cpp rename to cpp/eigen/test/stdlist_overload.cpp diff --git a/eigen/test/stdvector.cpp b/cpp/eigen/test/stdvector.cpp similarity index 100% rename from eigen/test/stdvector.cpp rename to cpp/eigen/test/stdvector.cpp diff --git a/eigen/test/stdvector_overload.cpp b/cpp/eigen/test/stdvector_overload.cpp similarity index 100% rename from eigen/test/stdvector_overload.cpp rename to cpp/eigen/test/stdvector_overload.cpp diff --git a/eigen/test/superlu_support.cpp b/cpp/eigen/test/superlu_support.cpp similarity index 100% rename from eigen/test/superlu_support.cpp rename to cpp/eigen/test/superlu_support.cpp diff --git a/eigen/test/svd_common.h b/cpp/eigen/test/svd_common.h similarity index 100% rename from eigen/test/svd_common.h rename to cpp/eigen/test/svd_common.h diff --git a/eigen/test/svd_fill.h b/cpp/eigen/test/svd_fill.h similarity index 100% rename from eigen/test/svd_fill.h rename to cpp/eigen/test/svd_fill.h diff --git a/eigen/test/swap.cpp b/cpp/eigen/test/swap.cpp similarity index 100% rename from eigen/test/swap.cpp rename to cpp/eigen/test/swap.cpp diff --git a/eigen/test/triangular.cpp b/cpp/eigen/test/triangular.cpp similarity index 100% rename from eigen/test/triangular.cpp rename to cpp/eigen/test/triangular.cpp diff --git a/eigen/test/umeyama.cpp b/cpp/eigen/test/umeyama.cpp similarity index 100% rename from eigen/test/umeyama.cpp rename to cpp/eigen/test/umeyama.cpp diff --git a/eigen/test/umfpack_support.cpp b/cpp/eigen/test/umfpack_support.cpp similarity index 100% rename from eigen/test/umfpack_support.cpp rename to cpp/eigen/test/umfpack_support.cpp diff --git a/eigen/test/unalignedassert.cpp b/cpp/eigen/test/unalignedassert.cpp similarity index 100% rename from eigen/test/unalignedassert.cpp rename to cpp/eigen/test/unalignedassert.cpp diff --git a/eigen/test/unalignedcount.cpp b/cpp/eigen/test/unalignedcount.cpp similarity index 100% rename from eigen/test/unalignedcount.cpp rename to cpp/eigen/test/unalignedcount.cpp diff --git a/eigen/test/upperbidiagonalization.cpp b/cpp/eigen/test/upperbidiagonalization.cpp similarity index 100% rename from eigen/test/upperbidiagonalization.cpp rename to cpp/eigen/test/upperbidiagonalization.cpp diff --git a/eigen/test/vectorization_logic.cpp b/cpp/eigen/test/vectorization_logic.cpp similarity index 100% rename from eigen/test/vectorization_logic.cpp rename to cpp/eigen/test/vectorization_logic.cpp diff --git a/eigen/test/vectorwiseop.cpp b/cpp/eigen/test/vectorwiseop.cpp similarity index 100% rename from eigen/test/vectorwiseop.cpp rename to cpp/eigen/test/vectorwiseop.cpp diff --git a/eigen/test/visitor.cpp b/cpp/eigen/test/visitor.cpp similarity index 100% rename from eigen/test/visitor.cpp rename to cpp/eigen/test/visitor.cpp diff --git a/eigen/test/zerosized.cpp b/cpp/eigen/test/zerosized.cpp similarity index 100% rename from eigen/test/zerosized.cpp rename to cpp/eigen/test/zerosized.cpp diff --git a/eigen/unsupported/CMakeLists.txt b/cpp/eigen/unsupported/CMakeLists.txt similarity index 100% rename from eigen/unsupported/CMakeLists.txt rename to cpp/eigen/unsupported/CMakeLists.txt diff --git a/eigen/unsupported/Eigen/AdolcForward b/cpp/eigen/unsupported/Eigen/AdolcForward similarity index 100% rename from eigen/unsupported/Eigen/AdolcForward rename to cpp/eigen/unsupported/Eigen/AdolcForward diff --git a/eigen/unsupported/Eigen/AlignedVector3 b/cpp/eigen/unsupported/Eigen/AlignedVector3 similarity index 100% rename from eigen/unsupported/Eigen/AlignedVector3 rename to cpp/eigen/unsupported/Eigen/AlignedVector3 diff --git a/eigen/unsupported/Eigen/ArpackSupport b/cpp/eigen/unsupported/Eigen/ArpackSupport similarity index 100% rename from eigen/unsupported/Eigen/ArpackSupport rename to cpp/eigen/unsupported/Eigen/ArpackSupport diff --git a/eigen/unsupported/Eigen/AutoDiff b/cpp/eigen/unsupported/Eigen/AutoDiff similarity index 100% rename from eigen/unsupported/Eigen/AutoDiff rename to cpp/eigen/unsupported/Eigen/AutoDiff diff --git a/eigen/unsupported/Eigen/BVH b/cpp/eigen/unsupported/Eigen/BVH similarity index 100% rename from eigen/unsupported/Eigen/BVH rename to cpp/eigen/unsupported/Eigen/BVH diff --git a/eigen/unsupported/Eigen/CMakeLists.txt b/cpp/eigen/unsupported/Eigen/CMakeLists.txt similarity index 100% rename from eigen/unsupported/Eigen/CMakeLists.txt rename to cpp/eigen/unsupported/Eigen/CMakeLists.txt diff --git a/eigen/unsupported/Eigen/CXX11/CMakeLists.txt b/cpp/eigen/unsupported/Eigen/CXX11/CMakeLists.txt similarity index 100% rename from eigen/unsupported/Eigen/CXX11/CMakeLists.txt rename to cpp/eigen/unsupported/Eigen/CXX11/CMakeLists.txt diff --git a/eigen/unsupported/Eigen/CXX11/Tensor b/cpp/eigen/unsupported/Eigen/CXX11/Tensor similarity index 100% rename from eigen/unsupported/Eigen/CXX11/Tensor rename to cpp/eigen/unsupported/Eigen/CXX11/Tensor diff --git a/eigen/unsupported/Eigen/CXX11/TensorSymmetry b/cpp/eigen/unsupported/Eigen/CXX11/TensorSymmetry similarity index 100% rename from eigen/unsupported/Eigen/CXX11/TensorSymmetry rename to cpp/eigen/unsupported/Eigen/CXX11/TensorSymmetry diff --git a/eigen/unsupported/Eigen/CXX11/ThreadPool b/cpp/eigen/unsupported/Eigen/CXX11/ThreadPool similarity index 100% rename from eigen/unsupported/Eigen/CXX11/ThreadPool rename to cpp/eigen/unsupported/Eigen/CXX11/ThreadPool diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/README.md rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSycl.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclConvertToDeviceExpression.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExprConstructor.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractFunctors.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclLeafCount.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolderExpr.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclRun.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorSyclTuple.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h diff --git a/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h b/cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h diff --git a/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h b/cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h diff --git a/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h b/cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h diff --git a/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h b/cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h diff --git a/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h b/cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/SimpleThreadPool.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h diff --git a/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h b/cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h diff --git a/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h b/cpp/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h diff --git a/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h b/cpp/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h diff --git a/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h b/cpp/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h diff --git a/eigen/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h b/cpp/eigen/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/util/EmulateCXX11Meta.h diff --git a/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h b/cpp/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h similarity index 100% rename from eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h rename to cpp/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h diff --git a/eigen/unsupported/Eigen/EulerAngles b/cpp/eigen/unsupported/Eigen/EulerAngles similarity index 100% rename from eigen/unsupported/Eigen/EulerAngles rename to cpp/eigen/unsupported/Eigen/EulerAngles diff --git a/eigen/unsupported/Eigen/FFT b/cpp/eigen/unsupported/Eigen/FFT similarity index 100% rename from eigen/unsupported/Eigen/FFT rename to cpp/eigen/unsupported/Eigen/FFT diff --git a/eigen/unsupported/Eigen/IterativeSolvers b/cpp/eigen/unsupported/Eigen/IterativeSolvers similarity index 100% rename from eigen/unsupported/Eigen/IterativeSolvers rename to cpp/eigen/unsupported/Eigen/IterativeSolvers diff --git a/eigen/unsupported/Eigen/KroneckerProduct b/cpp/eigen/unsupported/Eigen/KroneckerProduct similarity index 100% rename from eigen/unsupported/Eigen/KroneckerProduct rename to cpp/eigen/unsupported/Eigen/KroneckerProduct diff --git a/eigen/unsupported/Eigen/LevenbergMarquardt b/cpp/eigen/unsupported/Eigen/LevenbergMarquardt similarity index 100% rename from eigen/unsupported/Eigen/LevenbergMarquardt rename to cpp/eigen/unsupported/Eigen/LevenbergMarquardt diff --git a/eigen/unsupported/Eigen/MPRealSupport b/cpp/eigen/unsupported/Eigen/MPRealSupport similarity index 100% rename from eigen/unsupported/Eigen/MPRealSupport rename to cpp/eigen/unsupported/Eigen/MPRealSupport diff --git a/eigen/unsupported/Eigen/MatrixFunctions b/cpp/eigen/unsupported/Eigen/MatrixFunctions similarity index 100% rename from eigen/unsupported/Eigen/MatrixFunctions rename to cpp/eigen/unsupported/Eigen/MatrixFunctions diff --git a/eigen/unsupported/Eigen/MoreVectorization b/cpp/eigen/unsupported/Eigen/MoreVectorization similarity index 100% rename from eigen/unsupported/Eigen/MoreVectorization rename to cpp/eigen/unsupported/Eigen/MoreVectorization diff --git a/eigen/unsupported/Eigen/NonLinearOptimization b/cpp/eigen/unsupported/Eigen/NonLinearOptimization similarity index 100% rename from eigen/unsupported/Eigen/NonLinearOptimization rename to cpp/eigen/unsupported/Eigen/NonLinearOptimization diff --git a/eigen/unsupported/Eigen/NumericalDiff b/cpp/eigen/unsupported/Eigen/NumericalDiff similarity index 100% rename from eigen/unsupported/Eigen/NumericalDiff rename to cpp/eigen/unsupported/Eigen/NumericalDiff diff --git a/eigen/unsupported/Eigen/OpenGLSupport b/cpp/eigen/unsupported/Eigen/OpenGLSupport similarity index 100% rename from eigen/unsupported/Eigen/OpenGLSupport rename to cpp/eigen/unsupported/Eigen/OpenGLSupport diff --git a/eigen/unsupported/Eigen/Polynomials b/cpp/eigen/unsupported/Eigen/Polynomials similarity index 100% rename from eigen/unsupported/Eigen/Polynomials rename to cpp/eigen/unsupported/Eigen/Polynomials diff --git a/eigen/unsupported/Eigen/Skyline b/cpp/eigen/unsupported/Eigen/Skyline similarity index 100% rename from eigen/unsupported/Eigen/Skyline rename to cpp/eigen/unsupported/Eigen/Skyline diff --git a/eigen/unsupported/Eigen/SparseExtra b/cpp/eigen/unsupported/Eigen/SparseExtra similarity index 100% rename from eigen/unsupported/Eigen/SparseExtra rename to cpp/eigen/unsupported/Eigen/SparseExtra diff --git a/eigen/unsupported/Eigen/SpecialFunctions b/cpp/eigen/unsupported/Eigen/SpecialFunctions similarity index 100% rename from eigen/unsupported/Eigen/SpecialFunctions rename to cpp/eigen/unsupported/Eigen/SpecialFunctions diff --git a/eigen/unsupported/Eigen/Splines b/cpp/eigen/unsupported/Eigen/Splines similarity index 100% rename from eigen/unsupported/Eigen/Splines rename to cpp/eigen/unsupported/Eigen/Splines diff --git a/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h b/cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h similarity index 100% rename from eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h rename to cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h diff --git a/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h b/cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h similarity index 100% rename from eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h rename to cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h diff --git a/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h b/cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h similarity index 100% rename from eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h rename to cpp/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h diff --git a/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h b/cpp/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h similarity index 100% rename from eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h rename to cpp/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h diff --git a/eigen/unsupported/Eigen/src/BVH/KdBVH.h b/cpp/eigen/unsupported/Eigen/src/BVH/KdBVH.h similarity index 100% rename from eigen/unsupported/Eigen/src/BVH/KdBVH.h rename to cpp/eigen/unsupported/Eigen/src/BVH/KdBVH.h diff --git a/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h b/cpp/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h similarity index 100% rename from eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h rename to cpp/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h diff --git a/eigen/unsupported/Eigen/src/EulerAngles/CMakeLists.txt b/cpp/eigen/unsupported/Eigen/src/EulerAngles/CMakeLists.txt similarity index 100% rename from eigen/unsupported/Eigen/src/EulerAngles/CMakeLists.txt rename to cpp/eigen/unsupported/Eigen/src/EulerAngles/CMakeLists.txt diff --git a/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h b/cpp/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h similarity index 100% rename from eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h rename to cpp/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h diff --git a/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h b/cpp/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h similarity index 100% rename from eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h rename to cpp/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h diff --git a/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h b/cpp/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h similarity index 100% rename from eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h rename to cpp/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h diff --git a/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h b/cpp/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h similarity index 100% rename from eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h rename to cpp/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h diff --git a/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h b/cpp/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h similarity index 100% rename from eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h rename to cpp/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h diff --git a/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h b/cpp/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h similarity index 100% rename from eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h rename to cpp/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h diff --git a/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h b/cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h similarity index 100% rename from eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h rename to cpp/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h diff --git a/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h b/cpp/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h similarity index 100% rename from eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h rename to cpp/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h diff --git a/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h b/cpp/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h similarity index 100% rename from eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h rename to cpp/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h diff --git a/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h b/cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h similarity index 100% rename from eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h rename to cpp/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h diff --git a/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h b/cpp/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h similarity index 100% rename from eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h rename to cpp/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h diff --git a/eigen/unsupported/Eigen/src/Polynomials/Companion.h b/cpp/eigen/unsupported/Eigen/src/Polynomials/Companion.h similarity index 100% rename from eigen/unsupported/Eigen/src/Polynomials/Companion.h rename to cpp/eigen/unsupported/Eigen/src/Polynomials/Companion.h diff --git a/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h b/cpp/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h similarity index 100% rename from eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h rename to cpp/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h diff --git a/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h b/cpp/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h similarity index 100% rename from eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h rename to cpp/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h diff --git a/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h b/cpp/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h similarity index 100% rename from eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h rename to cpp/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h diff --git a/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h b/cpp/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h similarity index 100% rename from eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h rename to cpp/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h diff --git a/eigen/unsupported/Eigen/src/SpecialFunctions/arch/CUDA/CudaSpecialFunctions.h b/cpp/eigen/unsupported/Eigen/src/SpecialFunctions/arch/CUDA/CudaSpecialFunctions.h similarity index 100% rename from eigen/unsupported/Eigen/src/SpecialFunctions/arch/CUDA/CudaSpecialFunctions.h rename to cpp/eigen/unsupported/Eigen/src/SpecialFunctions/arch/CUDA/CudaSpecialFunctions.h diff --git a/eigen/unsupported/Eigen/src/Splines/Spline.h b/cpp/eigen/unsupported/Eigen/src/Splines/Spline.h similarity index 100% rename from eigen/unsupported/Eigen/src/Splines/Spline.h rename to cpp/eigen/unsupported/Eigen/src/Splines/Spline.h diff --git a/eigen/unsupported/Eigen/src/Splines/SplineFitting.h b/cpp/eigen/unsupported/Eigen/src/Splines/SplineFitting.h similarity index 100% rename from eigen/unsupported/Eigen/src/Splines/SplineFitting.h rename to cpp/eigen/unsupported/Eigen/src/Splines/SplineFitting.h diff --git a/eigen/unsupported/Eigen/src/Splines/SplineFwd.h b/cpp/eigen/unsupported/Eigen/src/Splines/SplineFwd.h similarity index 100% rename from eigen/unsupported/Eigen/src/Splines/SplineFwd.h rename to cpp/eigen/unsupported/Eigen/src/Splines/SplineFwd.h diff --git a/eigen/unsupported/README.txt b/cpp/eigen/unsupported/README.txt similarity index 100% rename from eigen/unsupported/README.txt rename to cpp/eigen/unsupported/README.txt diff --git a/eigen/unsupported/bench/bench_svd.cpp b/cpp/eigen/unsupported/bench/bench_svd.cpp similarity index 100% rename from eigen/unsupported/bench/bench_svd.cpp rename to cpp/eigen/unsupported/bench/bench_svd.cpp diff --git a/eigen/unsupported/doc/CMakeLists.txt b/cpp/eigen/unsupported/doc/CMakeLists.txt similarity index 100% rename from eigen/unsupported/doc/CMakeLists.txt rename to cpp/eigen/unsupported/doc/CMakeLists.txt diff --git a/eigen/unsupported/doc/Overview.dox b/cpp/eigen/unsupported/doc/Overview.dox similarity index 100% rename from eigen/unsupported/doc/Overview.dox rename to cpp/eigen/unsupported/doc/Overview.dox diff --git a/eigen/unsupported/doc/eigendoxy_layout.xml.in b/cpp/eigen/unsupported/doc/eigendoxy_layout.xml.in similarity index 100% rename from eigen/unsupported/doc/eigendoxy_layout.xml.in rename to cpp/eigen/unsupported/doc/eigendoxy_layout.xml.in diff --git a/eigen/unsupported/doc/examples/BVH_Example.cpp b/cpp/eigen/unsupported/doc/examples/BVH_Example.cpp similarity index 100% rename from eigen/unsupported/doc/examples/BVH_Example.cpp rename to cpp/eigen/unsupported/doc/examples/BVH_Example.cpp diff --git a/eigen/unsupported/doc/examples/CMakeLists.txt b/cpp/eigen/unsupported/doc/examples/CMakeLists.txt similarity index 100% rename from eigen/unsupported/doc/examples/CMakeLists.txt rename to cpp/eigen/unsupported/doc/examples/CMakeLists.txt diff --git a/eigen/unsupported/doc/examples/EulerAngles.cpp b/cpp/eigen/unsupported/doc/examples/EulerAngles.cpp similarity index 100% rename from eigen/unsupported/doc/examples/EulerAngles.cpp rename to cpp/eigen/unsupported/doc/examples/EulerAngles.cpp diff --git a/eigen/unsupported/doc/examples/FFT.cpp b/cpp/eigen/unsupported/doc/examples/FFT.cpp similarity index 100% rename from eigen/unsupported/doc/examples/FFT.cpp rename to cpp/eigen/unsupported/doc/examples/FFT.cpp diff --git a/eigen/unsupported/doc/examples/MatrixExponential.cpp b/cpp/eigen/unsupported/doc/examples/MatrixExponential.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixExponential.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixExponential.cpp diff --git a/eigen/unsupported/doc/examples/MatrixFunction.cpp b/cpp/eigen/unsupported/doc/examples/MatrixFunction.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixFunction.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixFunction.cpp diff --git a/eigen/unsupported/doc/examples/MatrixLogarithm.cpp b/cpp/eigen/unsupported/doc/examples/MatrixLogarithm.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixLogarithm.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixLogarithm.cpp diff --git a/eigen/unsupported/doc/examples/MatrixPower.cpp b/cpp/eigen/unsupported/doc/examples/MatrixPower.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixPower.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixPower.cpp diff --git a/eigen/unsupported/doc/examples/MatrixPower_optimal.cpp b/cpp/eigen/unsupported/doc/examples/MatrixPower_optimal.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixPower_optimal.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixPower_optimal.cpp diff --git a/eigen/unsupported/doc/examples/MatrixSine.cpp b/cpp/eigen/unsupported/doc/examples/MatrixSine.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixSine.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixSine.cpp diff --git a/eigen/unsupported/doc/examples/MatrixSinh.cpp b/cpp/eigen/unsupported/doc/examples/MatrixSinh.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixSinh.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixSinh.cpp diff --git a/eigen/unsupported/doc/examples/MatrixSquareRoot.cpp b/cpp/eigen/unsupported/doc/examples/MatrixSquareRoot.cpp similarity index 100% rename from eigen/unsupported/doc/examples/MatrixSquareRoot.cpp rename to cpp/eigen/unsupported/doc/examples/MatrixSquareRoot.cpp diff --git a/eigen/unsupported/doc/examples/PolynomialSolver1.cpp b/cpp/eigen/unsupported/doc/examples/PolynomialSolver1.cpp similarity index 100% rename from eigen/unsupported/doc/examples/PolynomialSolver1.cpp rename to cpp/eigen/unsupported/doc/examples/PolynomialSolver1.cpp diff --git a/eigen/unsupported/doc/examples/PolynomialUtils1.cpp b/cpp/eigen/unsupported/doc/examples/PolynomialUtils1.cpp similarity index 100% rename from eigen/unsupported/doc/examples/PolynomialUtils1.cpp rename to cpp/eigen/unsupported/doc/examples/PolynomialUtils1.cpp diff --git a/eigen/unsupported/doc/snippets/CMakeLists.txt b/cpp/eigen/unsupported/doc/snippets/CMakeLists.txt similarity index 100% rename from eigen/unsupported/doc/snippets/CMakeLists.txt rename to cpp/eigen/unsupported/doc/snippets/CMakeLists.txt diff --git a/eigen/unsupported/test/BVH.cpp b/cpp/eigen/unsupported/test/BVH.cpp similarity index 100% rename from eigen/unsupported/test/BVH.cpp rename to cpp/eigen/unsupported/test/BVH.cpp diff --git a/eigen/unsupported/test/CMakeLists.txt b/cpp/eigen/unsupported/test/CMakeLists.txt similarity index 100% rename from eigen/unsupported/test/CMakeLists.txt rename to cpp/eigen/unsupported/test/CMakeLists.txt diff --git a/eigen/unsupported/test/EulerAngles.cpp b/cpp/eigen/unsupported/test/EulerAngles.cpp similarity index 100% rename from eigen/unsupported/test/EulerAngles.cpp rename to cpp/eigen/unsupported/test/EulerAngles.cpp diff --git a/eigen/unsupported/test/FFT.cpp b/cpp/eigen/unsupported/test/FFT.cpp similarity index 100% rename from eigen/unsupported/test/FFT.cpp rename to cpp/eigen/unsupported/test/FFT.cpp diff --git a/eigen/unsupported/test/FFTW.cpp b/cpp/eigen/unsupported/test/FFTW.cpp similarity index 100% rename from eigen/unsupported/test/FFTW.cpp rename to cpp/eigen/unsupported/test/FFTW.cpp diff --git a/eigen/unsupported/test/NonLinearOptimization.cpp b/cpp/eigen/unsupported/test/NonLinearOptimization.cpp similarity index 100% rename from eigen/unsupported/test/NonLinearOptimization.cpp rename to cpp/eigen/unsupported/test/NonLinearOptimization.cpp diff --git a/eigen/unsupported/test/NumericalDiff.cpp b/cpp/eigen/unsupported/test/NumericalDiff.cpp similarity index 100% rename from eigen/unsupported/test/NumericalDiff.cpp rename to cpp/eigen/unsupported/test/NumericalDiff.cpp diff --git a/eigen/unsupported/test/alignedvector3.cpp b/cpp/eigen/unsupported/test/alignedvector3.cpp similarity index 100% rename from eigen/unsupported/test/alignedvector3.cpp rename to cpp/eigen/unsupported/test/alignedvector3.cpp diff --git a/eigen/unsupported/test/autodiff.cpp b/cpp/eigen/unsupported/test/autodiff.cpp similarity index 100% rename from eigen/unsupported/test/autodiff.cpp rename to cpp/eigen/unsupported/test/autodiff.cpp diff --git a/eigen/unsupported/test/autodiff_scalar.cpp b/cpp/eigen/unsupported/test/autodiff_scalar.cpp similarity index 100% rename from eigen/unsupported/test/autodiff_scalar.cpp rename to cpp/eigen/unsupported/test/autodiff_scalar.cpp diff --git a/eigen/unsupported/test/cxx11_eventcount.cpp b/cpp/eigen/unsupported/test/cxx11_eventcount.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_eventcount.cpp rename to cpp/eigen/unsupported/test/cxx11_eventcount.cpp diff --git a/eigen/unsupported/test/cxx11_meta.cpp b/cpp/eigen/unsupported/test/cxx11_meta.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_meta.cpp rename to cpp/eigen/unsupported/test/cxx11_meta.cpp diff --git a/eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp b/cpp/eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp rename to cpp/eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp diff --git a/eigen/unsupported/test/cxx11_runqueue.cpp b/cpp/eigen/unsupported/test/cxx11_runqueue.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_runqueue.cpp rename to cpp/eigen/unsupported/test/cxx11_runqueue.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_argmax.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_argmax.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_argmax.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_argmax.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_argmax_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_argmax_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_argmax_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_argmax_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_assign.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_assign.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_assign.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_assign.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_broadcast_sycl.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_broadcast_sycl.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_broadcast_sycl.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_broadcast_sycl.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_broadcasting.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_broadcasting.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_broadcasting.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_broadcasting.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_cast_float16_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_cast_float16_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_cast_float16_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_cast_float16_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_casts.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_casts.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_casts.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_casts.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_chipping.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_chipping.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_chipping.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_chipping.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_comparisons.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_comparisons.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_comparisons.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_comparisons.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_complex_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_complex_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_complex_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_complex_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_complex_cwise_ops_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_complex_cwise_ops_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_complex_cwise_ops_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_complex_cwise_ops_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_concatenation.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_concatenation.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_concatenation.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_concatenation.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_const.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_const.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_const.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_const.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_contract_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_contract_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_contract_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_contract_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_contraction.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_contraction.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_contraction.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_contraction.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_convolution.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_convolution.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_convolution.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_convolution.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_custom_index.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_custom_index.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_custom_index.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_custom_index.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_custom_op.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_custom_op.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_custom_op.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_custom_op.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_device.cu b/cpp/eigen/unsupported/test/cxx11_tensor_device.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_device.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_device.cu diff --git a/eigen/unsupported/test/cxx11_tensor_device_sycl.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_device_sycl.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_device_sycl.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_device_sycl.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_dimension.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_dimension.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_dimension.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_dimension.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_empty.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_empty.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_empty.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_empty.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_expr.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_expr.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_expr.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_expr.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_fft.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_fft.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_fft.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_fft.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_fixed_size.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_fixed_size.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_fixed_size.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_fixed_size.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_forced_eval.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_forced_eval.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_forced_eval.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_forced_eval.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_forced_eval_sycl.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_forced_eval_sycl.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_forced_eval_sycl.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_forced_eval_sycl.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_generator.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_generator.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_generator.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_generator.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_ifft.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_ifft.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_ifft.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_ifft.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_image_patch.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_image_patch.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_image_patch.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_image_patch.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_index_list.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_index_list.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_index_list.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_index_list.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_inflation.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_inflation.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_inflation.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_inflation.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_intdiv.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_intdiv.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_intdiv.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_intdiv.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_io.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_io.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_io.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_io.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_layout_swap.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_layout_swap.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_layout_swap.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_layout_swap.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_lvalue.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_lvalue.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_lvalue.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_lvalue.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_map.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_map.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_map.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_map.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_math.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_math.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_math.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_math.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_mixed_indices.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_mixed_indices.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_mixed_indices.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_mixed_indices.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_morphing.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_morphing.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_morphing.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_morphing.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_notification.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_notification.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_notification.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_notification.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_of_complex.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_of_complex.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_of_complex.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_of_complex.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_of_const_values.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_of_const_values.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_of_const_values.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_of_const_values.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_of_float16_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_of_float16_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_of_float16_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_of_float16_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_of_strings.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_of_strings.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_of_strings.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_of_strings.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_padding.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_padding.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_padding.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_padding.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_patch.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_patch.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_patch.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_patch.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_random.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_random.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_random.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_random.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_random_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_random_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_random_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_random_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_reduction.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_reduction.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_reduction.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_reduction.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_reduction_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_reduction_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_reduction_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_reduction_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_reduction_sycl.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_reduction_sycl.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_reduction_sycl.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_reduction_sycl.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_ref.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_ref.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_ref.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_ref.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_reverse.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_reverse.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_reverse.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_reverse.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_roundings.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_roundings.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_roundings.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_roundings.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_scan.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_scan.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_scan.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_scan.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_scan_cuda.cu b/cpp/eigen/unsupported/test/cxx11_tensor_scan_cuda.cu similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_scan_cuda.cu rename to cpp/eigen/unsupported/test/cxx11_tensor_scan_cuda.cu diff --git a/eigen/unsupported/test/cxx11_tensor_shuffling.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_shuffling.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_shuffling.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_shuffling.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_simple.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_simple.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_simple.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_simple.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_striding.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_striding.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_striding.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_striding.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_sugar.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_sugar.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_sugar.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_sugar.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_sycl.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_sycl.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_sycl.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_sycl.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_symmetry.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_symmetry.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_symmetry.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_symmetry.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_thread_pool.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_thread_pool.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_thread_pool.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_thread_pool.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_uint128.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_uint128.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_uint128.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_uint128.cpp diff --git a/eigen/unsupported/test/cxx11_tensor_volume_patch.cpp b/cpp/eigen/unsupported/test/cxx11_tensor_volume_patch.cpp similarity index 100% rename from eigen/unsupported/test/cxx11_tensor_volume_patch.cpp rename to cpp/eigen/unsupported/test/cxx11_tensor_volume_patch.cpp diff --git a/eigen/unsupported/test/dgmres.cpp b/cpp/eigen/unsupported/test/dgmres.cpp similarity index 100% rename from eigen/unsupported/test/dgmres.cpp rename to cpp/eigen/unsupported/test/dgmres.cpp diff --git a/eigen/unsupported/test/forward_adolc.cpp b/cpp/eigen/unsupported/test/forward_adolc.cpp similarity index 100% rename from eigen/unsupported/test/forward_adolc.cpp rename to cpp/eigen/unsupported/test/forward_adolc.cpp diff --git a/eigen/unsupported/test/gmres.cpp b/cpp/eigen/unsupported/test/gmres.cpp similarity index 100% rename from eigen/unsupported/test/gmres.cpp rename to cpp/eigen/unsupported/test/gmres.cpp diff --git a/eigen/unsupported/test/kronecker_product.cpp b/cpp/eigen/unsupported/test/kronecker_product.cpp similarity index 100% rename from eigen/unsupported/test/kronecker_product.cpp rename to cpp/eigen/unsupported/test/kronecker_product.cpp diff --git a/eigen/unsupported/test/levenberg_marquardt.cpp b/cpp/eigen/unsupported/test/levenberg_marquardt.cpp similarity index 100% rename from eigen/unsupported/test/levenberg_marquardt.cpp rename to cpp/eigen/unsupported/test/levenberg_marquardt.cpp diff --git a/eigen/unsupported/test/matrix_exponential.cpp b/cpp/eigen/unsupported/test/matrix_exponential.cpp similarity index 100% rename from eigen/unsupported/test/matrix_exponential.cpp rename to cpp/eigen/unsupported/test/matrix_exponential.cpp diff --git a/eigen/unsupported/test/matrix_function.cpp b/cpp/eigen/unsupported/test/matrix_function.cpp similarity index 100% rename from eigen/unsupported/test/matrix_function.cpp rename to cpp/eigen/unsupported/test/matrix_function.cpp diff --git a/eigen/unsupported/test/matrix_functions.h b/cpp/eigen/unsupported/test/matrix_functions.h similarity index 100% rename from eigen/unsupported/test/matrix_functions.h rename to cpp/eigen/unsupported/test/matrix_functions.h diff --git a/eigen/unsupported/test/matrix_power.cpp b/cpp/eigen/unsupported/test/matrix_power.cpp similarity index 100% rename from eigen/unsupported/test/matrix_power.cpp rename to cpp/eigen/unsupported/test/matrix_power.cpp diff --git a/eigen/unsupported/test/matrix_square_root.cpp b/cpp/eigen/unsupported/test/matrix_square_root.cpp similarity index 100% rename from eigen/unsupported/test/matrix_square_root.cpp rename to cpp/eigen/unsupported/test/matrix_square_root.cpp diff --git a/eigen/unsupported/test/minres.cpp b/cpp/eigen/unsupported/test/minres.cpp similarity index 100% rename from eigen/unsupported/test/minres.cpp rename to cpp/eigen/unsupported/test/minres.cpp diff --git a/eigen/unsupported/test/mpreal/mpreal.h b/cpp/eigen/unsupported/test/mpreal/mpreal.h similarity index 100% rename from eigen/unsupported/test/mpreal/mpreal.h rename to cpp/eigen/unsupported/test/mpreal/mpreal.h diff --git a/eigen/unsupported/test/mpreal_support.cpp b/cpp/eigen/unsupported/test/mpreal_support.cpp similarity index 100% rename from eigen/unsupported/test/mpreal_support.cpp rename to cpp/eigen/unsupported/test/mpreal_support.cpp diff --git a/eigen/unsupported/test/openglsupport.cpp b/cpp/eigen/unsupported/test/openglsupport.cpp similarity index 100% rename from eigen/unsupported/test/openglsupport.cpp rename to cpp/eigen/unsupported/test/openglsupport.cpp diff --git a/eigen/unsupported/test/polynomialsolver.cpp b/cpp/eigen/unsupported/test/polynomialsolver.cpp similarity index 100% rename from eigen/unsupported/test/polynomialsolver.cpp rename to cpp/eigen/unsupported/test/polynomialsolver.cpp diff --git a/eigen/unsupported/test/polynomialutils.cpp b/cpp/eigen/unsupported/test/polynomialutils.cpp similarity index 100% rename from eigen/unsupported/test/polynomialutils.cpp rename to cpp/eigen/unsupported/test/polynomialutils.cpp diff --git a/eigen/unsupported/test/sparse_extra.cpp b/cpp/eigen/unsupported/test/sparse_extra.cpp similarity index 100% rename from eigen/unsupported/test/sparse_extra.cpp rename to cpp/eigen/unsupported/test/sparse_extra.cpp diff --git a/eigen/unsupported/test/special_functions.cpp b/cpp/eigen/unsupported/test/special_functions.cpp similarity index 100% rename from eigen/unsupported/test/special_functions.cpp rename to cpp/eigen/unsupported/test/special_functions.cpp diff --git a/eigen/unsupported/test/splines.cpp b/cpp/eigen/unsupported/test/splines.cpp similarity index 100% rename from eigen/unsupported/test/splines.cpp rename to cpp/eigen/unsupported/test/splines.cpp diff --git a/run_BonsaiPredict_usps10.bat b/cpp/run_BonsaiPredict_usps10.bat similarity index 100% rename from run_BonsaiPredict_usps10.bat rename to cpp/run_BonsaiPredict_usps10.bat diff --git a/run_BonsaiPredict_usps10.sh b/cpp/run_BonsaiPredict_usps10.sh similarity index 100% rename from run_BonsaiPredict_usps10.sh rename to cpp/run_BonsaiPredict_usps10.sh diff --git a/run_BonsaiTrain_usps10.bat b/cpp/run_BonsaiTrain_usps10.bat similarity index 100% rename from run_BonsaiTrain_usps10.bat rename to cpp/run_BonsaiTrain_usps10.bat diff --git a/run_BonsaiTrain_usps10.sh b/cpp/run_BonsaiTrain_usps10.sh similarity index 100% rename from run_BonsaiTrain_usps10.sh rename to cpp/run_BonsaiTrain_usps10.sh diff --git a/run_Bonsai_usps10.sh b/cpp/run_Bonsai_usps10.sh similarity index 100% rename from run_Bonsai_usps10.sh rename to cpp/run_Bonsai_usps10.sh diff --git a/run_ProtoNNPredict_usps10.bat b/cpp/run_ProtoNNPredict_usps10.bat similarity index 100% rename from run_ProtoNNPredict_usps10.bat rename to cpp/run_ProtoNNPredict_usps10.bat diff --git a/run_ProtoNNPredict_usps10.sh b/cpp/run_ProtoNNPredict_usps10.sh similarity index 100% rename from run_ProtoNNPredict_usps10.sh rename to cpp/run_ProtoNNPredict_usps10.sh diff --git a/run_ProtoNNTrain_usps10.bat b/cpp/run_ProtoNNTrain_usps10.bat similarity index 100% rename from run_ProtoNNTrain_usps10.bat rename to cpp/run_ProtoNNTrain_usps10.bat diff --git a/run_ProtoNNTrain_usps10.sh b/cpp/run_ProtoNNTrain_usps10.sh similarity index 100% rename from run_ProtoNNTrain_usps10.sh rename to cpp/run_ProtoNNTrain_usps10.sh diff --git a/src/Bonsai/Bonsai.h b/cpp/src/Bonsai/Bonsai.h similarity index 100% rename from src/Bonsai/Bonsai.h rename to cpp/src/Bonsai/Bonsai.h diff --git a/src/Bonsai/BonsaiFunctions.cpp b/cpp/src/Bonsai/BonsaiFunctions.cpp similarity index 100% rename from src/Bonsai/BonsaiFunctions.cpp rename to cpp/src/Bonsai/BonsaiFunctions.cpp diff --git a/src/Bonsai/BonsaiFunctions.h b/cpp/src/Bonsai/BonsaiFunctions.h similarity index 100% rename from src/Bonsai/BonsaiFunctions.h rename to cpp/src/Bonsai/BonsaiFunctions.h diff --git a/src/Bonsai/BonsaiHyperParams.cpp b/cpp/src/Bonsai/BonsaiHyperParams.cpp similarity index 100% rename from src/Bonsai/BonsaiHyperParams.cpp rename to cpp/src/Bonsai/BonsaiHyperParams.cpp diff --git a/src/Bonsai/BonsaiIngestTest.cpp b/cpp/src/Bonsai/BonsaiIngestTest.cpp similarity index 100% rename from src/Bonsai/BonsaiIngestTest.cpp rename to cpp/src/Bonsai/BonsaiIngestTest.cpp diff --git a/src/Bonsai/BonsaiModel.cpp b/cpp/src/Bonsai/BonsaiModel.cpp similarity index 100% rename from src/Bonsai/BonsaiModel.cpp rename to cpp/src/Bonsai/BonsaiModel.cpp diff --git a/src/Bonsai/BonsaiParams.cpp b/cpp/src/Bonsai/BonsaiParams.cpp similarity index 100% rename from src/Bonsai/BonsaiParams.cpp rename to cpp/src/Bonsai/BonsaiParams.cpp diff --git a/src/Bonsai/BonsaiPredictor.cpp b/cpp/src/Bonsai/BonsaiPredictor.cpp similarity index 100% rename from src/Bonsai/BonsaiPredictor.cpp rename to cpp/src/Bonsai/BonsaiPredictor.cpp diff --git a/src/Bonsai/BonsaiTrainer.cpp b/cpp/src/Bonsai/BonsaiTrainer.cpp similarity index 100% rename from src/Bonsai/BonsaiTrainer.cpp rename to cpp/src/Bonsai/BonsaiTrainer.cpp diff --git a/src/Bonsai/Bonsai_Multiclass_export.cpp b/cpp/src/Bonsai/Bonsai_Multiclass_export.cpp similarity index 100% rename from src/Bonsai/Bonsai_Multiclass_export.cpp rename to cpp/src/Bonsai/Bonsai_Multiclass_export.cpp diff --git a/src/Bonsai/CMakeLists.txt b/cpp/src/Bonsai/CMakeLists.txt similarity index 100% rename from src/Bonsai/CMakeLists.txt rename to cpp/src/Bonsai/CMakeLists.txt diff --git a/src/Bonsai/Makefile b/cpp/src/Bonsai/Makefile similarity index 100% rename from src/Bonsai/Makefile rename to cpp/src/Bonsai/Makefile diff --git a/src/CMakeLists.txt b/cpp/src/CMakeLists.txt similarity index 100% rename from src/CMakeLists.txt rename to cpp/src/CMakeLists.txt diff --git a/src/ProtoNN/CMakeLists.txt b/cpp/src/ProtoNN/CMakeLists.txt similarity index 100% rename from src/ProtoNN/CMakeLists.txt rename to cpp/src/ProtoNN/CMakeLists.txt diff --git a/src/ProtoNN/Makefile b/cpp/src/ProtoNN/Makefile similarity index 100% rename from src/ProtoNN/Makefile rename to cpp/src/ProtoNN/Makefile diff --git a/src/ProtoNN/ProtoNN.h b/cpp/src/ProtoNN/ProtoNN.h similarity index 100% rename from src/ProtoNN/ProtoNN.h rename to cpp/src/ProtoNN/ProtoNN.h diff --git a/src/ProtoNN/ProtoNNFunctions.cpp b/cpp/src/ProtoNN/ProtoNNFunctions.cpp similarity index 100% rename from src/ProtoNN/ProtoNNFunctions.cpp rename to cpp/src/ProtoNN/ProtoNNFunctions.cpp diff --git a/src/ProtoNN/ProtoNNFunctions.h b/cpp/src/ProtoNN/ProtoNNFunctions.h similarity index 100% rename from src/ProtoNN/ProtoNNFunctions.h rename to cpp/src/ProtoNN/ProtoNNFunctions.h diff --git a/src/ProtoNN/ProtoNNHyperParams.cpp b/cpp/src/ProtoNN/ProtoNNHyperParams.cpp similarity index 100% rename from src/ProtoNN/ProtoNNHyperParams.cpp rename to cpp/src/ProtoNN/ProtoNNHyperParams.cpp diff --git a/src/ProtoNN/ProtoNNModel.cpp b/cpp/src/ProtoNN/ProtoNNModel.cpp similarity index 100% rename from src/ProtoNN/ProtoNNModel.cpp rename to cpp/src/ProtoNN/ProtoNNModel.cpp diff --git a/src/ProtoNN/ProtoNNParams.cpp b/cpp/src/ProtoNN/ProtoNNParams.cpp similarity index 100% rename from src/ProtoNN/ProtoNNParams.cpp rename to cpp/src/ProtoNN/ProtoNNParams.cpp diff --git a/src/ProtoNN/ProtoNNPredictor.cpp b/cpp/src/ProtoNN/ProtoNNPredictor.cpp similarity index 100% rename from src/ProtoNN/ProtoNNPredictor.cpp rename to cpp/src/ProtoNN/ProtoNNPredictor.cpp diff --git a/src/ProtoNN/ProtoNNTrainer.cpp b/cpp/src/ProtoNN/ProtoNNTrainer.cpp similarity index 100% rename from src/ProtoNN/ProtoNNTrainer.cpp rename to cpp/src/ProtoNN/ProtoNNTrainer.cpp diff --git a/src/ProtoNN/ProtoNN_Multiclass_export.cpp b/cpp/src/ProtoNN/ProtoNN_Multiclass_export.cpp similarity index 100% rename from src/ProtoNN/ProtoNN_Multiclass_export.cpp rename to cpp/src/ProtoNN/ProtoNN_Multiclass_export.cpp diff --git a/src/ProtoNN/cluster.cpp b/cpp/src/ProtoNN/cluster.cpp similarity index 100% rename from src/ProtoNN/cluster.cpp rename to cpp/src/ProtoNN/cluster.cpp diff --git a/src/ProtoNN/cluster.h b/cpp/src/ProtoNN/cluster.h similarity index 100% rename from src/ProtoNN/cluster.h rename to cpp/src/ProtoNN/cluster.h diff --git a/src/common/CMakeLists.txt b/cpp/src/common/CMakeLists.txt similarity index 100% rename from src/common/CMakeLists.txt rename to cpp/src/common/CMakeLists.txt diff --git a/src/common/Data.cpp b/cpp/src/common/Data.cpp similarity index 100% rename from src/common/Data.cpp rename to cpp/src/common/Data.cpp diff --git a/src/common/Data.h b/cpp/src/common/Data.h similarity index 100% rename from src/common/Data.h rename to cpp/src/common/Data.h diff --git a/src/common/Makefile b/cpp/src/common/Makefile similarity index 100% rename from src/common/Makefile rename to cpp/src/common/Makefile diff --git a/src/common/blas_routines.cpp b/cpp/src/common/blas_routines.cpp similarity index 100% rename from src/common/blas_routines.cpp rename to cpp/src/common/blas_routines.cpp diff --git a/src/common/blas_routines.h b/cpp/src/common/blas_routines.h similarity index 100% rename from src/common/blas_routines.h rename to cpp/src/common/blas_routines.h diff --git a/src/common/goldfoil.cpp b/cpp/src/common/goldfoil.cpp similarity index 100% rename from src/common/goldfoil.cpp rename to cpp/src/common/goldfoil.cpp diff --git a/src/common/goldfoil.h b/cpp/src/common/goldfoil.h similarity index 100% rename from src/common/goldfoil.h rename to cpp/src/common/goldfoil.h diff --git a/src/common/logger.cpp b/cpp/src/common/logger.cpp similarity index 100% rename from src/common/logger.cpp rename to cpp/src/common/logger.cpp diff --git a/src/common/logger.h b/cpp/src/common/logger.h similarity index 100% rename from src/common/logger.h rename to cpp/src/common/logger.h diff --git a/src/common/metrics.cpp b/cpp/src/common/metrics.cpp similarity index 100% rename from src/common/metrics.cpp rename to cpp/src/common/metrics.cpp diff --git a/src/common/metrics.h b/cpp/src/common/metrics.h similarity index 100% rename from src/common/metrics.h rename to cpp/src/common/metrics.h diff --git a/src/common/mmaped.cpp b/cpp/src/common/mmaped.cpp similarity index 100% rename from src/common/mmaped.cpp rename to cpp/src/common/mmaped.cpp diff --git a/src/common/mmaped.h b/cpp/src/common/mmaped.h similarity index 100% rename from src/common/mmaped.h rename to cpp/src/common/mmaped.h diff --git a/src/common/par_utils.cpp b/cpp/src/common/par_utils.cpp similarity index 100% rename from src/common/par_utils.cpp rename to cpp/src/common/par_utils.cpp diff --git a/src/common/par_utils.h b/cpp/src/common/par_utils.h similarity index 100% rename from src/common/par_utils.h rename to cpp/src/common/par_utils.h diff --git a/src/common/pre_processor.h b/cpp/src/common/pre_processor.h similarity index 100% rename from src/common/pre_processor.h rename to cpp/src/common/pre_processor.h diff --git a/src/common/timer.cpp b/cpp/src/common/timer.cpp similarity index 100% rename from src/common/timer.cpp rename to cpp/src/common/timer.cpp diff --git a/src/common/timer.h b/cpp/src/common/timer.h similarity index 100% rename from src/common/timer.h rename to cpp/src/common/timer.h diff --git a/src/common/utils.cpp b/cpp/src/common/utils.cpp similarity index 100% rename from src/common/utils.cpp rename to cpp/src/common/utils.cpp diff --git a/src/common/utils.h b/cpp/src/common/utils.h similarity index 100% rename from src/common/utils.h rename to cpp/src/common/utils.h diff --git a/publications/Bonsai.pdf b/docs/publications/Bonsai.pdf similarity index 100% rename from publications/Bonsai.pdf rename to docs/publications/Bonsai.pdf diff --git a/publications/ProtoNN.pdf b/docs/publications/ProtoNN.pdf similarity index 100% rename from publications/ProtoNN.pdf rename to docs/publications/ProtoNN.pdf diff --git a/tf/README.md b/tf/README.md index 011c9747..e36cd15a 100644 --- a/tf/README.md +++ b/tf/README.md @@ -1,16 +1,30 @@ -# EdgeML: Tensorflow Implementations +## Edge Machine Learning: Tensorflow Library This directory includes, Tensorflow implementations of various techniques and algorithms developed as part of EdgeML. Currently, the following algorithms are available in Tensorflow: -1. [ProtoNN](https://github.com/Microsoft/EdgeML/blob/master/publications/ProtoNN.pdf) -2. [Bonsai](https://github.com/Microsoft/EdgeML/blob/master/publications/Bonsai.pdf) -3. FastGRNN & FastRNN -4. EMI-RNN +1. [Bonsai](../docs/publications/Bonsai.pdf) +2. [EMI-RNN](../docs/publications/EMI-RNN.pdf) +3. [Fast(G)RNN](../docs/publications/FastGRNN.pdf) +4. [ProtoNN](../docs/publications/ProtoNN.pdf) -Usage directions and examples of all of the above algorithms are provided in -`examples` subdirectory. +The TensorFlow compute graphs for these algoriths are packaged as `edgeml.graph'. Trainers for these algorithms are in `edgeml.trainer'. Usage directions and examples for these algorithms are provided in `examples` directory. -Copyright (c) Microsoft Corporation. All rights reserved. +## Dependencies + +Tested on both Python2.7 and >= Python3.5 with >= Tensorflow 1.6.0. + +### CPU +``` +pip install -r requirements-cpu.txt +``` +### GPU + +Install appropriate CUDA and cuDNN [Tested with >= CUDA 8.1 and cuDNN >= 6.1] +``` +pip install -r requirements-gpu.txt +``` + +Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. diff --git a/tf/examples/EMI-RNN/00_emi_lstm_example.ipynb b/tf/examples/EMI-RNN/00_emi_lstm_example.ipynb index fa5921e9..e4de028c 100644 --- a/tf/examples/EMI-RNN/00_emi_lstm_example.ipynb +++ b/tf/examples/EMI-RNN/00_emi_lstm_example.ipynb @@ -26,6 +26,7 @@ }, "outputs": [], "source": [ + "from __future__ import print_function\n", "import os\n", "import sys\n", "import tensorflow as tf\n", diff --git a/tf/examples/EMI-RNN/01_emi_fastgrnn_example.ipynb b/tf/examples/EMI-RNN/01_emi_fastgrnn_example.ipynb index 65ea632a..6651cce4 100644 --- a/tf/examples/EMI-RNN/01_emi_fastgrnn_example.ipynb +++ b/tf/examples/EMI-RNN/01_emi_fastgrnn_example.ipynb @@ -26,6 +26,7 @@ }, "outputs": [], "source": [ + "from __future__ import print_function\n", "import os\n", "import sys\n", "import tensorflow as tf\n", diff --git a/tf/examples/EMI-RNN/02_emi_lstm_initialization_and_restoring.ipynb b/tf/examples/EMI-RNN/02_emi_lstm_initialization_and_restoring.ipynb index 5c618f9a..3f18c766 100644 --- a/tf/examples/EMI-RNN/02_emi_lstm_initialization_and_restoring.ipynb +++ b/tf/examples/EMI-RNN/02_emi_lstm_initialization_and_restoring.ipynb @@ -26,6 +26,7 @@ }, "outputs": [], "source": [ + "from __future__ import print_function\n", "import os\n", "import sys\n", "import tensorflow as tf\n", diff --git a/tf/examples/FastCells/README.md b/tf/examples/FastCells/README.md index 3967da49..d436d828 100644 --- a/tf/examples/FastCells/README.md +++ b/tf/examples/FastCells/README.md @@ -1,7 +1,7 @@ # EdgeML FastCells on a sample public dataset This directory includes example notebook and general execution script of -FastCells (FastGRNN & FastRNN) developed as part of EdgeML. Also, we include a +FastCells (FastRNN & FastGRNN) developed as part of EdgeML. Also, we include a sample cleanup and use-case on the USPS10 public dataset. `edgeml.graph.rnn` implements the custom RNN cells of FastGRNN and FastRNN with @@ -55,9 +55,10 @@ Final Test Accuracy: 0.93721974 Non-Zeros: 1932 Model Size: 7.546875 KB hasSparse: False ``` -usps10 directory will now have a consolidated results file called `FastGRNNResults.txt` or `FastRNNResults.txt` depending on the choice of the RNN cell. -A directory `FastGRNNResults` or `FastRNNResults` with the corresponding models with each run of the code on the usps10 dataset +`usps10/` directory will now have a consolidated results file called `FastGRNNResults.txt` or `FastRNNResults.txt` depending on the choice of the RNN cell. +A directory `FastGRNNResults` or `FastRNNResults` with the corresponding models with each run of the code on the `usps10` dataset +## Byte Quantization(Q) for model compression If you wish to quantize the generated model to use byte quantized integers use `quantizeFastModels.py`. Usage Instructions: ``` diff --git a/tf/requirements-cpu.txt b/tf/requirements-cpu.txt new file mode 100644 index 00000000..1fbdfcd0 --- /dev/null +++ b/tf/requirements-cpu.txt @@ -0,0 +1,6 @@ +jupyter==1.0.0 +numpy==1.14.5 +pandas==0.23.4 +scikit-learn==0.19.2 +scipy==1.1.0 +tensorflow==1.10.1 diff --git a/tf/requirements-gpu.txt b/tf/requirements-gpu.txt new file mode 100644 index 00000000..b94c70f3 --- /dev/null +++ b/tf/requirements-gpu.txt @@ -0,0 +1,6 @@ +jupyter==1.0.0 +numpy==1.14.5 +pandas==0.23.4 +scikit-learn==0.19.2 +scipy==1.1.0 +tensorflow-gpu==1.10.1