diff --git a/.daq_pm/configs/run_net_x86 b/.daq_pm/configs/run_net_x86 new file mode 100644 index 0000000..2e15388 --- /dev/null +++ b/.daq_pm/configs/run_net_x86 @@ -0,0 +1,6 @@ +# It is a configuration file for [project_manager.vim](https://github.com/daquexian/project_manager.vim) +name binary-nn +type cpp +build_dir build_main_x86 +cmake_options -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Debug -DBNN_BUILD_TEST=OFF -DBNN_BUILD_BENCHMARK=OFF -DBNN_BUILD_MAIN_LIB=ON +target run diff --git a/dabnn/CMakeLists.txt b/dabnn/CMakeLists.txt index dea2fd6..58cda2b 100644 --- a/dabnn/CMakeLists.txt +++ b/dabnn/CMakeLists.txt @@ -41,6 +41,11 @@ target_include_directories(dabnn ${CMAKE_CURRENT_BINARY_DIR} ${PROJECT_SOURCE_DIR} ) +target_include_directories(dabnn + SYSTEM + PUBLIC + ${PROJECT_SOURCE_DIR}/third_party/eigen + ) target_link_libraries(dabnn glog::glog flatbuffers diff --git a/dabnn/layers/BinConv.cpp b/dabnn/layers/BinConv.cpp index 27ad5ce..ccf7ff1 100644 --- a/dabnn/layers/BinConv.cpp +++ b/dabnn/layers/BinConv.cpp @@ -25,14 +25,16 @@ BinConv::BinConv(NetCP net, const std::string &name, css input, css weight, stride_h(stride_h), stride_w(stride_w) { auto &mat_map = net.lock()->mat_map_; - const auto binaized_name = "binaized_for_" + output + "_cal"; - if (mat_map.find(binaized_name) == mat_map.end()) { - auto &input_mat = *mat_map[input]; - mat_map[binaized_name] = - std::make_shared(input_mat.h, input_mat.w, input_mat.elem_c, - DataType::Bit, binaized_name); + if (method() == Method::DIRECT_CONV || method() == Method::BCONV_NAIVE) { + const auto binaized_name = "binaized_for_" + output + "_cal"; + if (mat_map.find(binaized_name) == mat_map.end()) { + auto &input_mat = *mat_map[input]; + mat_map[binaized_name] = std::make_shared( + input_mat.h, input_mat.w, input_mat.elem_c, DataType::Bit, + binaized_name); + } + binarized_mat = mat(binaized_name); } - binarized_mat = mat(binaized_name); const auto pad_name = "pad_for_" + output + "_cal"; if (mat_map.find(pad_name) == mat_map.end()) { @@ -43,18 +45,17 @@ BinConv::BinConv(NetCP net, const std::string &name, css input, css weight, } padded_mat = mat(pad_name); - const auto col_mat_name = "col_for_" + output + "_cal"; - if (mat_map.find(col_mat_name) == mat_map.end()) { - const auto len = - output_mat->h * output_mat->w * - align_to(weight_mat->h * weight_mat->w * input_mat->elem_c, 128); - mat_map[col_mat_name] = - std::make_shared(1, 1, len, bnn::DataType::Bit); - } - col_mat = mat(col_mat_name); - - if (net.lock()->optimize && !direct_conv_compatible() && - gemm_compatible()) { + if (method() == Method::BGEMM || method() == Method::BGEMM_NAIVE) { + const auto col_mat_name = "col_for_" + output + "_cal"; + if (mat_map.find(col_mat_name) == mat_map.end()) { + const auto len = + output_mat->h * output_mat->w * + align_to(weight_mat->h * weight_mat->w * input_mat->elem_c, + 128); + mat_map[col_mat_name] = + std::make_shared(1, 1, len, bnn::DataType::Bit); + } + col_mat = mat(col_mat_name); const auto trans_weight_mat_name = "trans_" + weight; // transpose the weight for bgemm const int m = weight_mat->n; @@ -76,6 +77,24 @@ BinConv::BinConv(NetCP net, const std::string &name, css input, css weight, } } +BinConv::Method BinConv::method() const { + if (net_.lock()->optimize) { + if (direct_conv_compatible()) { + return Method::DIRECT_CONV; + } else if (gemm_compatible()) { + return Method::BGEMM; + } else { + return Method::BCONV_NAIVE; + } + } else { + if (weight_mat->c == 1) { + return Method::BCONV_NAIVE; + } else { + return Method::BGEMM_NAIVE; + } + } +} + bool BinConv::direct_conv_compatible() const { #ifdef __aarch64__ if (weight_mat->h == 3 && weight_mat->w == 3 && input_mat->elem_c == 64 && @@ -121,12 +140,14 @@ bool BinConv::gemm_compatible() const { } void BinConv::forward_impl() const { - if (net_.lock()->optimize) { - if (direct_conv_compatible()) { + switch (method()) { + case Method::DIRECT_CONV: { pack_mat(*input_mat, *binarized_mat); pad(*binarized_mat, pad_h, pad_w, *padded_mat); bconv_3x3(*padded_mat, *weight_mat, *output_mat, stride_h); - } else if (gemm_compatible()) { + break; + } + case Method::BGEMM: { output_mat->fill(0.f); bnn::fused_binarize_im2col(*input_mat, weight_mat->h, weight_mat->w, @@ -139,17 +160,31 @@ void BinConv::forward_impl() const { bgemm(m, n, k, static_cast(transposed_weight_mat->data), m, static_cast(col_mat->data), k, static_cast(output_mat->data), m); - } else { + break; + } + case Method::BGEMM_NAIVE: { + output_mat->fill(0.f); + + bnn::fused_binarize_im2col(*input_mat, weight_mat->h, weight_mat->w, + pad_h, pad_w, stride_h, stride_w, 1, 1, + *col_mat); + + const int m = weight_mat->n; + const int n = output_mat->h * output_mat->w; + const int k = weight_mat->total() / weight_mat->n; + bgemm_naive(m, n, k, + static_cast(transposed_weight_mat->data), m, + static_cast(col_mat->data), k, + static_cast(output_mat->data), m); + break; + } + case Method::BCONV_NAIVE: { pack_mat(*input_mat, *binarized_mat); baseline_bconv(*binarized_mat, *weight_mat, weight_mat->h, weight_mat->w, pad_h, pad_w, stride_h, stride_w, 1, 1, output_mat->c, *output_mat); + break; } - } else { - pack_mat(*input_mat, *binarized_mat); - baseline_bconv(*binarized_mat, *weight_mat, weight_mat->h, - weight_mat->w, pad_h, pad_w, stride_h, stride_w, 1, 1, - output_mat->c, *output_mat); } } diff --git a/dabnn/layers/BinConv.h b/dabnn/layers/BinConv.h index dd61572..430f04d 100644 --- a/dabnn/layers/BinConv.h +++ b/dabnn/layers/BinConv.h @@ -26,8 +26,15 @@ class BinConv : public Layer { virtual std::string to_str() const; private: + enum Method { + DIRECT_CONV = 0, + BGEMM, + BCONV_NAIVE, + BGEMM_NAIVE + }; bool direct_conv_compatible() const; bool gemm_compatible() const; + Method method() const; }; } // namespace bnn diff --git a/dabnn/mat.h b/dabnn/mat.h index e49bc33..3c0066c 100644 --- a/dabnn/mat.h +++ b/dabnn/mat.h @@ -273,7 +273,6 @@ inline Mat::Mat(int _n, int _w, int _h, int _c, void *_data, DataType data_type, ", ", h, ", ", c); } elemsize = data_type == DataType::Float ? sizeof(float) : sizeof(uint64_t); - BNN_ASSERT(c > 0, c); std::stringstream ss; ss << "Not align, w: " << w << ", c: " << c << ", elemsize: " << elemsize; BNN_ASSERT(!require_align || w * c == 1 || w * c * elemsize % 16 == 0, @@ -283,7 +282,10 @@ inline Mat::Mat(int _n, int _w, int _h, int _c, void *_data, DataType data_type, } else { hstep = w * c; } - BNN_ASSERT(hstep > 0, hstep); + if (data_num == 0) { + BNN_ASSERT(c > 0, c); + BNN_ASSERT(hstep > 0, hstep); + } external_memory = true; } @@ -529,11 +531,6 @@ inline void Mat::create(int _w, int _h, int _c, DataType _data_type) { h = _h; c = _c; - if (w * c != 1 && w * c * elemsize % 16 != 0) { - LOG(FATAL) << "Not align, w: " << w << ", c: " << c - << ", elemsize: " << elemsize; - throw std::invalid_argument("Not align!"); - } hstep = ncnn::alignSize(w * c * elemsize, 16) / elemsize; if (total() > 0) { @@ -563,11 +560,6 @@ inline void Mat::create(int _n, int _w, int _h, int _c, DataType _data_type, if (h != 0) dims++; if (c != 0) dims++; - if (require_align && w * c != 1 && w * c * elemsize % 16 != 0) { - LOG(FATAL) << "Not align, w: " << w << ", c: " << c - << ", elemsize: " << elemsize; - throw std::invalid_argument("Not align!"); - } if (require_align) { hstep = ncnn::alignSize(w * c * elemsize, 16) / elemsize; } else { @@ -612,24 +604,28 @@ inline size_t Mat::total() const { template inline const T *Mat::point(int _n, int _h, int _w) const { + BNN_ASSERT(w * c == 1 || w * c * elemsize % 16 == 0, ""); BNN_ASSERT((_n == 0 && _h == 0 && _w == 0) || hstep > 0, hstep); return (T *)data + _n * h * hstep + _h * hstep + _w * c; } template inline const T *Mat::point(int _h, int _w) const { + BNN_ASSERT(w * c == 1 || w * c * elemsize % 16 == 0, ""); BNN_ASSERT((_h == 0 && _w == 0) || hstep > 0, hstep); return (T *)data + _h * hstep + _w * c; } template inline T *Mat::point(int _n, int _h, int _w) { + BNN_ASSERT(w * c == 1 || w * c * elemsize % 16 == 0, ""); BNN_ASSERT((_n == 0 && _h == 0 && _w == 0) || hstep > 0, hstep); return (T *)data + _n * h * hstep + _h * hstep + _w * c; } template inline T *Mat::point(int _h, int _w) { + BNN_ASSERT(w * c == 1 || w * c * elemsize % 16 == 0, ""); BNN_ASSERT((_h == 0 && _w == 0) || hstep > 0, hstep); return (T *)data + _h * hstep + _w * c; } diff --git a/tests/net_test.cpp b/tests/net_test.cpp index 85b97ad..3d9a01f 100644 --- a/tests/net_test.cpp +++ b/tests/net_test.cpp @@ -34,15 +34,15 @@ TEST(net, bireal18imagenet_comparison) { std::shared_ptr blob1, blob2; { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet.dab"); net->optimize = false; + net->read("/data/local/tmp/model_imagenet.dab"); net->run(input); blob1 = net->get_blob(blob_name); } { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet.dab"); net->optimize = true; + net->read("/data/local/tmp/model_imagenet.dab"); net->run(input); blob2 = net->get_blob(blob_name); } @@ -56,8 +56,8 @@ TEST(net, bireal18imagenet) { const std::string blob_name = "188"; { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet.dab"); net->optimize = true; + net->read("/data/local/tmp/model_imagenet.dab"); net->run(input); const auto blob = net->get_blob(blob_name); ASSERT_NEAR((*blob)[0], -0.9431, 1e-4); @@ -74,15 +74,15 @@ TEST(net, bireal18imagenetstem_comparison) { std::shared_ptr blob1, blob2; { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet_stem.dab"); net->optimize = false; + net->read("/data/local/tmp/model_imagenet_stem.dab"); net->run(input); blob1 = net->get_blob(blob_name); } { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet_stem.dab"); net->optimize = true; + net->read("/data/local/tmp/model_imagenet_stem.dab"); net->run(input); blob2 = net->get_blob(blob_name); } @@ -96,8 +96,8 @@ TEST(net, bireal18imagenetstem) { const std::string blob_name = "216"; { auto net = bnn::Net::create(); - net->read("/data/local/tmp/model_imagenet_stem.dab"); net->optimize = true; + net->read("/data/local/tmp/model_imagenet_stem.dab"); net->run(input); const auto &blob = net->get_blob(blob_name); ASSERT_NEAR((*blob)[0], 1.9842, 1e-4); diff --git a/Eigen/CMakeLists.txt b/third_party/eigen/Eigen/CMakeLists.txt similarity index 100% rename from Eigen/CMakeLists.txt rename to third_party/eigen/Eigen/CMakeLists.txt diff --git a/Eigen/Cholesky b/third_party/eigen/Eigen/Cholesky similarity index 100% rename from Eigen/Cholesky rename to third_party/eigen/Eigen/Cholesky diff --git a/Eigen/CholmodSupport b/third_party/eigen/Eigen/CholmodSupport similarity index 100% rename from Eigen/CholmodSupport rename to third_party/eigen/Eigen/CholmodSupport diff --git a/Eigen/Core b/third_party/eigen/Eigen/Core similarity index 100% rename from Eigen/Core rename to third_party/eigen/Eigen/Core diff --git a/Eigen/Dense b/third_party/eigen/Eigen/Dense similarity index 100% rename from Eigen/Dense rename to third_party/eigen/Eigen/Dense diff --git a/Eigen/Eigen b/third_party/eigen/Eigen/Eigen similarity index 100% rename from Eigen/Eigen rename to third_party/eigen/Eigen/Eigen diff --git a/Eigen/Eigenvalues b/third_party/eigen/Eigen/Eigenvalues similarity index 100% rename from Eigen/Eigenvalues rename to third_party/eigen/Eigen/Eigenvalues diff --git a/Eigen/Geometry b/third_party/eigen/Eigen/Geometry similarity index 100% rename from Eigen/Geometry rename to third_party/eigen/Eigen/Geometry diff --git a/Eigen/Householder b/third_party/eigen/Eigen/Householder similarity index 100% rename from Eigen/Householder rename to third_party/eigen/Eigen/Householder diff --git a/Eigen/IterativeLinearSolvers b/third_party/eigen/Eigen/IterativeLinearSolvers similarity index 100% rename from Eigen/IterativeLinearSolvers rename to third_party/eigen/Eigen/IterativeLinearSolvers diff --git a/Eigen/Jacobi b/third_party/eigen/Eigen/Jacobi similarity index 100% rename from Eigen/Jacobi rename to third_party/eigen/Eigen/Jacobi diff --git a/Eigen/LU b/third_party/eigen/Eigen/LU similarity index 100% rename from Eigen/LU rename to third_party/eigen/Eigen/LU diff --git a/Eigen/MetisSupport b/third_party/eigen/Eigen/MetisSupport similarity index 100% rename from Eigen/MetisSupport rename to third_party/eigen/Eigen/MetisSupport diff --git a/Eigen/OrderingMethods b/third_party/eigen/Eigen/OrderingMethods similarity index 100% rename from Eigen/OrderingMethods rename to third_party/eigen/Eigen/OrderingMethods diff --git a/Eigen/PaStiXSupport b/third_party/eigen/Eigen/PaStiXSupport similarity index 100% rename from Eigen/PaStiXSupport rename to third_party/eigen/Eigen/PaStiXSupport diff --git a/Eigen/PardisoSupport b/third_party/eigen/Eigen/PardisoSupport similarity index 100% rename from Eigen/PardisoSupport rename to third_party/eigen/Eigen/PardisoSupport diff --git a/Eigen/QR b/third_party/eigen/Eigen/QR similarity index 100% rename from Eigen/QR rename to third_party/eigen/Eigen/QR diff --git a/Eigen/QtAlignedMalloc b/third_party/eigen/Eigen/QtAlignedMalloc similarity index 100% rename from Eigen/QtAlignedMalloc rename to third_party/eigen/Eigen/QtAlignedMalloc diff --git a/Eigen/SPQRSupport b/third_party/eigen/Eigen/SPQRSupport similarity index 100% rename from Eigen/SPQRSupport rename to third_party/eigen/Eigen/SPQRSupport diff --git a/Eigen/SVD b/third_party/eigen/Eigen/SVD similarity index 100% rename from Eigen/SVD rename to third_party/eigen/Eigen/SVD diff --git a/Eigen/Sparse b/third_party/eigen/Eigen/Sparse similarity index 100% rename from Eigen/Sparse rename to third_party/eigen/Eigen/Sparse diff --git a/Eigen/SparseCholesky b/third_party/eigen/Eigen/SparseCholesky similarity index 100% rename from Eigen/SparseCholesky rename to third_party/eigen/Eigen/SparseCholesky diff --git a/Eigen/SparseCore b/third_party/eigen/Eigen/SparseCore similarity index 100% rename from Eigen/SparseCore rename to third_party/eigen/Eigen/SparseCore diff --git a/Eigen/SparseLU b/third_party/eigen/Eigen/SparseLU similarity index 100% rename from Eigen/SparseLU rename to third_party/eigen/Eigen/SparseLU diff --git a/Eigen/SparseQR b/third_party/eigen/Eigen/SparseQR similarity index 100% rename from Eigen/SparseQR rename to third_party/eigen/Eigen/SparseQR diff --git a/Eigen/StdDeque b/third_party/eigen/Eigen/StdDeque similarity index 100% rename from Eigen/StdDeque rename to third_party/eigen/Eigen/StdDeque diff --git a/Eigen/StdList b/third_party/eigen/Eigen/StdList similarity index 100% rename from Eigen/StdList rename to third_party/eigen/Eigen/StdList diff --git a/Eigen/StdVector b/third_party/eigen/Eigen/StdVector similarity index 100% rename from Eigen/StdVector rename to third_party/eigen/Eigen/StdVector diff --git a/Eigen/SuperLUSupport b/third_party/eigen/Eigen/SuperLUSupport similarity index 100% rename from Eigen/SuperLUSupport rename to third_party/eigen/Eigen/SuperLUSupport diff --git a/Eigen/UmfPackSupport b/third_party/eigen/Eigen/UmfPackSupport similarity index 100% rename from Eigen/UmfPackSupport rename to third_party/eigen/Eigen/UmfPackSupport diff --git a/Eigen/src/Cholesky/LDLT.h b/third_party/eigen/Eigen/src/Cholesky/LDLT.h similarity index 100% rename from Eigen/src/Cholesky/LDLT.h rename to third_party/eigen/Eigen/src/Cholesky/LDLT.h diff --git a/Eigen/src/Cholesky/LLT.h b/third_party/eigen/Eigen/src/Cholesky/LLT.h similarity index 100% rename from Eigen/src/Cholesky/LLT.h rename to third_party/eigen/Eigen/src/Cholesky/LLT.h diff --git a/Eigen/src/Cholesky/LLT_LAPACKE.h b/third_party/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h similarity index 100% rename from Eigen/src/Cholesky/LLT_LAPACKE.h rename to third_party/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h diff --git a/Eigen/src/CholmodSupport/CholmodSupport.h b/third_party/eigen/Eigen/src/CholmodSupport/CholmodSupport.h similarity index 100% rename from Eigen/src/CholmodSupport/CholmodSupport.h rename to third_party/eigen/Eigen/src/CholmodSupport/CholmodSupport.h diff --git a/Eigen/src/Core/Array.h b/third_party/eigen/Eigen/src/Core/Array.h similarity index 100% rename from Eigen/src/Core/Array.h rename to third_party/eigen/Eigen/src/Core/Array.h diff --git a/Eigen/src/Core/ArrayBase.h b/third_party/eigen/Eigen/src/Core/ArrayBase.h similarity index 100% rename from Eigen/src/Core/ArrayBase.h rename to third_party/eigen/Eigen/src/Core/ArrayBase.h diff --git a/Eigen/src/Core/ArrayWrapper.h b/third_party/eigen/Eigen/src/Core/ArrayWrapper.h similarity index 100% rename from Eigen/src/Core/ArrayWrapper.h rename to third_party/eigen/Eigen/src/Core/ArrayWrapper.h diff --git a/Eigen/src/Core/Assign.h b/third_party/eigen/Eigen/src/Core/Assign.h similarity index 100% rename from Eigen/src/Core/Assign.h rename to third_party/eigen/Eigen/src/Core/Assign.h diff --git a/Eigen/src/Core/AssignEvaluator.h b/third_party/eigen/Eigen/src/Core/AssignEvaluator.h similarity index 100% rename from Eigen/src/Core/AssignEvaluator.h rename to third_party/eigen/Eigen/src/Core/AssignEvaluator.h diff --git a/Eigen/src/Core/Assign_MKL.h b/third_party/eigen/Eigen/src/Core/Assign_MKL.h similarity index 100% rename from Eigen/src/Core/Assign_MKL.h rename to third_party/eigen/Eigen/src/Core/Assign_MKL.h diff --git a/Eigen/src/Core/BandMatrix.h b/third_party/eigen/Eigen/src/Core/BandMatrix.h similarity index 100% rename from Eigen/src/Core/BandMatrix.h rename to third_party/eigen/Eigen/src/Core/BandMatrix.h diff --git a/Eigen/src/Core/Block.h b/third_party/eigen/Eigen/src/Core/Block.h similarity index 100% rename from Eigen/src/Core/Block.h rename to third_party/eigen/Eigen/src/Core/Block.h diff --git a/Eigen/src/Core/BooleanRedux.h b/third_party/eigen/Eigen/src/Core/BooleanRedux.h similarity index 100% rename from Eigen/src/Core/BooleanRedux.h rename to third_party/eigen/Eigen/src/Core/BooleanRedux.h diff --git a/Eigen/src/Core/CommaInitializer.h b/third_party/eigen/Eigen/src/Core/CommaInitializer.h similarity index 100% rename from Eigen/src/Core/CommaInitializer.h rename to third_party/eigen/Eigen/src/Core/CommaInitializer.h diff --git a/Eigen/src/Core/ConditionEstimator.h b/third_party/eigen/Eigen/src/Core/ConditionEstimator.h similarity index 100% rename from Eigen/src/Core/ConditionEstimator.h rename to third_party/eigen/Eigen/src/Core/ConditionEstimator.h diff --git a/Eigen/src/Core/CoreEvaluators.h b/third_party/eigen/Eigen/src/Core/CoreEvaluators.h similarity index 100% rename from Eigen/src/Core/CoreEvaluators.h rename to third_party/eigen/Eigen/src/Core/CoreEvaluators.h diff --git a/Eigen/src/Core/CoreIterators.h b/third_party/eigen/Eigen/src/Core/CoreIterators.h similarity index 100% rename from Eigen/src/Core/CoreIterators.h rename to third_party/eigen/Eigen/src/Core/CoreIterators.h diff --git a/Eigen/src/Core/CwiseBinaryOp.h b/third_party/eigen/Eigen/src/Core/CwiseBinaryOp.h similarity index 100% rename from Eigen/src/Core/CwiseBinaryOp.h rename to third_party/eigen/Eigen/src/Core/CwiseBinaryOp.h diff --git a/Eigen/src/Core/CwiseNullaryOp.h b/third_party/eigen/Eigen/src/Core/CwiseNullaryOp.h similarity index 100% rename from Eigen/src/Core/CwiseNullaryOp.h rename to third_party/eigen/Eigen/src/Core/CwiseNullaryOp.h diff --git a/Eigen/src/Core/CwiseTernaryOp.h b/third_party/eigen/Eigen/src/Core/CwiseTernaryOp.h similarity index 100% rename from Eigen/src/Core/CwiseTernaryOp.h rename to third_party/eigen/Eigen/src/Core/CwiseTernaryOp.h diff --git a/Eigen/src/Core/CwiseUnaryOp.h b/third_party/eigen/Eigen/src/Core/CwiseUnaryOp.h similarity index 100% rename from Eigen/src/Core/CwiseUnaryOp.h rename to third_party/eigen/Eigen/src/Core/CwiseUnaryOp.h diff --git a/Eigen/src/Core/CwiseUnaryView.h b/third_party/eigen/Eigen/src/Core/CwiseUnaryView.h similarity index 100% rename from Eigen/src/Core/CwiseUnaryView.h rename to third_party/eigen/Eigen/src/Core/CwiseUnaryView.h diff --git a/Eigen/src/Core/DenseBase.h b/third_party/eigen/Eigen/src/Core/DenseBase.h similarity index 100% rename from Eigen/src/Core/DenseBase.h rename to third_party/eigen/Eigen/src/Core/DenseBase.h diff --git a/Eigen/src/Core/DenseCoeffsBase.h b/third_party/eigen/Eigen/src/Core/DenseCoeffsBase.h similarity index 100% rename from Eigen/src/Core/DenseCoeffsBase.h rename to third_party/eigen/Eigen/src/Core/DenseCoeffsBase.h diff --git a/Eigen/src/Core/DenseStorage.h b/third_party/eigen/Eigen/src/Core/DenseStorage.h similarity index 100% rename from Eigen/src/Core/DenseStorage.h rename to third_party/eigen/Eigen/src/Core/DenseStorage.h diff --git a/Eigen/src/Core/Diagonal.h b/third_party/eigen/Eigen/src/Core/Diagonal.h similarity index 100% rename from Eigen/src/Core/Diagonal.h rename to third_party/eigen/Eigen/src/Core/Diagonal.h diff --git a/Eigen/src/Core/DiagonalMatrix.h b/third_party/eigen/Eigen/src/Core/DiagonalMatrix.h similarity index 100% rename from Eigen/src/Core/DiagonalMatrix.h rename to third_party/eigen/Eigen/src/Core/DiagonalMatrix.h diff --git a/Eigen/src/Core/DiagonalProduct.h b/third_party/eigen/Eigen/src/Core/DiagonalProduct.h similarity index 100% rename from Eigen/src/Core/DiagonalProduct.h rename to third_party/eigen/Eigen/src/Core/DiagonalProduct.h diff --git a/Eigen/src/Core/Dot.h b/third_party/eigen/Eigen/src/Core/Dot.h similarity index 100% rename from Eigen/src/Core/Dot.h rename to third_party/eigen/Eigen/src/Core/Dot.h diff --git a/Eigen/src/Core/EigenBase.h b/third_party/eigen/Eigen/src/Core/EigenBase.h similarity index 100% rename from Eigen/src/Core/EigenBase.h rename to third_party/eigen/Eigen/src/Core/EigenBase.h diff --git a/Eigen/src/Core/ForceAlignedAccess.h b/third_party/eigen/Eigen/src/Core/ForceAlignedAccess.h similarity index 100% rename from Eigen/src/Core/ForceAlignedAccess.h rename to third_party/eigen/Eigen/src/Core/ForceAlignedAccess.h diff --git a/Eigen/src/Core/Fuzzy.h b/third_party/eigen/Eigen/src/Core/Fuzzy.h similarity index 100% rename from Eigen/src/Core/Fuzzy.h rename to third_party/eigen/Eigen/src/Core/Fuzzy.h diff --git a/Eigen/src/Core/GeneralProduct.h b/third_party/eigen/Eigen/src/Core/GeneralProduct.h similarity index 100% rename from Eigen/src/Core/GeneralProduct.h rename to third_party/eigen/Eigen/src/Core/GeneralProduct.h diff --git a/Eigen/src/Core/GenericPacketMath.h b/third_party/eigen/Eigen/src/Core/GenericPacketMath.h similarity index 100% rename from Eigen/src/Core/GenericPacketMath.h rename to third_party/eigen/Eigen/src/Core/GenericPacketMath.h diff --git a/Eigen/src/Core/GlobalFunctions.h b/third_party/eigen/Eigen/src/Core/GlobalFunctions.h similarity index 100% rename from Eigen/src/Core/GlobalFunctions.h rename to third_party/eigen/Eigen/src/Core/GlobalFunctions.h diff --git a/Eigen/src/Core/IO.h b/third_party/eigen/Eigen/src/Core/IO.h similarity index 100% rename from Eigen/src/Core/IO.h rename to third_party/eigen/Eigen/src/Core/IO.h diff --git a/Eigen/src/Core/Inverse.h b/third_party/eigen/Eigen/src/Core/Inverse.h similarity index 100% rename from Eigen/src/Core/Inverse.h rename to third_party/eigen/Eigen/src/Core/Inverse.h diff --git a/Eigen/src/Core/Map.h b/third_party/eigen/Eigen/src/Core/Map.h similarity index 100% rename from Eigen/src/Core/Map.h rename to third_party/eigen/Eigen/src/Core/Map.h diff --git a/Eigen/src/Core/MapBase.h b/third_party/eigen/Eigen/src/Core/MapBase.h similarity index 100% rename from Eigen/src/Core/MapBase.h rename to third_party/eigen/Eigen/src/Core/MapBase.h diff --git a/Eigen/src/Core/MathFunctions.h b/third_party/eigen/Eigen/src/Core/MathFunctions.h similarity index 100% rename from Eigen/src/Core/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/MathFunctions.h diff --git a/Eigen/src/Core/MathFunctionsImpl.h b/third_party/eigen/Eigen/src/Core/MathFunctionsImpl.h similarity index 100% rename from Eigen/src/Core/MathFunctionsImpl.h rename to third_party/eigen/Eigen/src/Core/MathFunctionsImpl.h diff --git a/Eigen/src/Core/Matrix.h b/third_party/eigen/Eigen/src/Core/Matrix.h similarity index 100% rename from Eigen/src/Core/Matrix.h rename to third_party/eigen/Eigen/src/Core/Matrix.h diff --git a/Eigen/src/Core/MatrixBase.h b/third_party/eigen/Eigen/src/Core/MatrixBase.h similarity index 100% rename from Eigen/src/Core/MatrixBase.h rename to third_party/eigen/Eigen/src/Core/MatrixBase.h diff --git a/Eigen/src/Core/NestByValue.h b/third_party/eigen/Eigen/src/Core/NestByValue.h similarity index 100% rename from Eigen/src/Core/NestByValue.h rename to third_party/eigen/Eigen/src/Core/NestByValue.h diff --git a/Eigen/src/Core/NoAlias.h b/third_party/eigen/Eigen/src/Core/NoAlias.h similarity index 100% rename from Eigen/src/Core/NoAlias.h rename to third_party/eigen/Eigen/src/Core/NoAlias.h diff --git a/Eigen/src/Core/NumTraits.h b/third_party/eigen/Eigen/src/Core/NumTraits.h similarity index 100% rename from Eigen/src/Core/NumTraits.h rename to third_party/eigen/Eigen/src/Core/NumTraits.h diff --git a/Eigen/src/Core/PermutationMatrix.h b/third_party/eigen/Eigen/src/Core/PermutationMatrix.h similarity index 100% rename from Eigen/src/Core/PermutationMatrix.h rename to third_party/eigen/Eigen/src/Core/PermutationMatrix.h diff --git a/Eigen/src/Core/PlainObjectBase.h b/third_party/eigen/Eigen/src/Core/PlainObjectBase.h similarity index 100% rename from Eigen/src/Core/PlainObjectBase.h rename to third_party/eigen/Eigen/src/Core/PlainObjectBase.h diff --git a/Eigen/src/Core/Product.h b/third_party/eigen/Eigen/src/Core/Product.h similarity index 100% rename from Eigen/src/Core/Product.h rename to third_party/eigen/Eigen/src/Core/Product.h diff --git a/Eigen/src/Core/ProductEvaluators.h b/third_party/eigen/Eigen/src/Core/ProductEvaluators.h similarity index 100% rename from Eigen/src/Core/ProductEvaluators.h rename to third_party/eigen/Eigen/src/Core/ProductEvaluators.h diff --git a/Eigen/src/Core/Random.h b/third_party/eigen/Eigen/src/Core/Random.h similarity index 100% rename from Eigen/src/Core/Random.h rename to third_party/eigen/Eigen/src/Core/Random.h diff --git a/Eigen/src/Core/Redux.h b/third_party/eigen/Eigen/src/Core/Redux.h similarity index 100% rename from Eigen/src/Core/Redux.h rename to third_party/eigen/Eigen/src/Core/Redux.h diff --git a/Eigen/src/Core/Ref.h b/third_party/eigen/Eigen/src/Core/Ref.h similarity index 100% rename from Eigen/src/Core/Ref.h rename to third_party/eigen/Eigen/src/Core/Ref.h diff --git a/Eigen/src/Core/Replicate.h b/third_party/eigen/Eigen/src/Core/Replicate.h similarity index 100% rename from Eigen/src/Core/Replicate.h rename to third_party/eigen/Eigen/src/Core/Replicate.h diff --git a/Eigen/src/Core/ReturnByValue.h b/third_party/eigen/Eigen/src/Core/ReturnByValue.h similarity index 100% rename from Eigen/src/Core/ReturnByValue.h rename to third_party/eigen/Eigen/src/Core/ReturnByValue.h diff --git a/Eigen/src/Core/Reverse.h b/third_party/eigen/Eigen/src/Core/Reverse.h similarity index 100% rename from Eigen/src/Core/Reverse.h rename to third_party/eigen/Eigen/src/Core/Reverse.h diff --git a/Eigen/src/Core/Select.h b/third_party/eigen/Eigen/src/Core/Select.h similarity index 100% rename from Eigen/src/Core/Select.h rename to third_party/eigen/Eigen/src/Core/Select.h diff --git a/Eigen/src/Core/SelfAdjointView.h b/third_party/eigen/Eigen/src/Core/SelfAdjointView.h similarity index 100% rename from Eigen/src/Core/SelfAdjointView.h rename to third_party/eigen/Eigen/src/Core/SelfAdjointView.h diff --git a/Eigen/src/Core/SelfCwiseBinaryOp.h b/third_party/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h similarity index 100% rename from Eigen/src/Core/SelfCwiseBinaryOp.h rename to third_party/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h diff --git a/Eigen/src/Core/Solve.h b/third_party/eigen/Eigen/src/Core/Solve.h similarity index 100% rename from Eigen/src/Core/Solve.h rename to third_party/eigen/Eigen/src/Core/Solve.h diff --git a/Eigen/src/Core/SolveTriangular.h b/third_party/eigen/Eigen/src/Core/SolveTriangular.h similarity index 100% rename from Eigen/src/Core/SolveTriangular.h rename to third_party/eigen/Eigen/src/Core/SolveTriangular.h diff --git a/Eigen/src/Core/SolverBase.h b/third_party/eigen/Eigen/src/Core/SolverBase.h similarity index 100% rename from Eigen/src/Core/SolverBase.h rename to third_party/eigen/Eigen/src/Core/SolverBase.h diff --git a/Eigen/src/Core/StableNorm.h b/third_party/eigen/Eigen/src/Core/StableNorm.h similarity index 100% rename from Eigen/src/Core/StableNorm.h rename to third_party/eigen/Eigen/src/Core/StableNorm.h diff --git a/Eigen/src/Core/Stride.h b/third_party/eigen/Eigen/src/Core/Stride.h similarity index 100% rename from Eigen/src/Core/Stride.h rename to third_party/eigen/Eigen/src/Core/Stride.h diff --git a/Eigen/src/Core/Swap.h b/third_party/eigen/Eigen/src/Core/Swap.h similarity index 100% rename from Eigen/src/Core/Swap.h rename to third_party/eigen/Eigen/src/Core/Swap.h diff --git a/Eigen/src/Core/Transpose.h b/third_party/eigen/Eigen/src/Core/Transpose.h similarity index 100% rename from Eigen/src/Core/Transpose.h rename to third_party/eigen/Eigen/src/Core/Transpose.h diff --git a/Eigen/src/Core/Transpositions.h b/third_party/eigen/Eigen/src/Core/Transpositions.h similarity index 100% rename from Eigen/src/Core/Transpositions.h rename to third_party/eigen/Eigen/src/Core/Transpositions.h diff --git a/Eigen/src/Core/TriangularMatrix.h b/third_party/eigen/Eigen/src/Core/TriangularMatrix.h similarity index 100% rename from Eigen/src/Core/TriangularMatrix.h rename to third_party/eigen/Eigen/src/Core/TriangularMatrix.h diff --git a/Eigen/src/Core/VectorBlock.h b/third_party/eigen/Eigen/src/Core/VectorBlock.h similarity index 100% rename from Eigen/src/Core/VectorBlock.h rename to third_party/eigen/Eigen/src/Core/VectorBlock.h diff --git a/Eigen/src/Core/VectorwiseOp.h b/third_party/eigen/Eigen/src/Core/VectorwiseOp.h similarity index 100% rename from Eigen/src/Core/VectorwiseOp.h rename to third_party/eigen/Eigen/src/Core/VectorwiseOp.h diff --git a/Eigen/src/Core/Visitor.h b/third_party/eigen/Eigen/src/Core/Visitor.h similarity index 100% rename from Eigen/src/Core/Visitor.h rename to third_party/eigen/Eigen/src/Core/Visitor.h diff --git a/Eigen/src/Core/arch/AVX/Complex.h b/third_party/eigen/Eigen/src/Core/arch/AVX/Complex.h similarity index 100% rename from Eigen/src/Core/arch/AVX/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/AVX/Complex.h diff --git a/Eigen/src/Core/arch/AVX/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/AVX/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h diff --git a/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/AVX/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/AVX/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/AVX/PacketMath.h diff --git a/Eigen/src/Core/arch/AVX/TypeCasting.h b/third_party/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h similarity index 100% rename from Eigen/src/Core/arch/AVX/TypeCasting.h rename to third_party/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h diff --git a/Eigen/src/Core/arch/AVX512/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/AVX512/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h diff --git a/Eigen/src/Core/arch/AVX512/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/AVX512/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h diff --git a/Eigen/src/Core/arch/AltiVec/Complex.h b/third_party/eigen/Eigen/src/Core/arch/AltiVec/Complex.h similarity index 100% rename from Eigen/src/Core/arch/AltiVec/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/AltiVec/Complex.h diff --git a/Eigen/src/Core/arch/AltiVec/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/AltiVec/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/AltiVec/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h diff --git a/Eigen/src/Core/arch/CUDA/Complex.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/Complex.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/Complex.h diff --git a/Eigen/src/Core/arch/CUDA/Half.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/Half.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/Half.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/Half.h diff --git a/Eigen/src/Core/arch/CUDA/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h diff --git a/Eigen/src/Core/arch/CUDA/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/PacketMathHalf.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h diff --git a/Eigen/src/Core/arch/CUDA/TypeCasting.h b/third_party/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h similarity index 100% rename from Eigen/src/Core/arch/CUDA/TypeCasting.h rename to third_party/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h diff --git a/Eigen/src/Core/arch/Default/ConjHelper.h b/third_party/eigen/Eigen/src/Core/arch/Default/ConjHelper.h similarity index 100% rename from Eigen/src/Core/arch/Default/ConjHelper.h rename to third_party/eigen/Eigen/src/Core/arch/Default/ConjHelper.h diff --git a/Eigen/src/Core/arch/Default/Settings.h b/third_party/eigen/Eigen/src/Core/arch/Default/Settings.h similarity index 100% rename from Eigen/src/Core/arch/Default/Settings.h rename to third_party/eigen/Eigen/src/Core/arch/Default/Settings.h diff --git a/Eigen/src/Core/arch/NEON/Complex.h b/third_party/eigen/Eigen/src/Core/arch/NEON/Complex.h similarity index 100% rename from Eigen/src/Core/arch/NEON/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/NEON/Complex.h diff --git a/Eigen/src/Core/arch/NEON/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/NEON/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h diff --git a/Eigen/src/Core/arch/NEON/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/NEON/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/NEON/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/NEON/PacketMath.h diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/third_party/eigen/Eigen/src/Core/arch/SSE/Complex.h similarity index 100% rename from Eigen/src/Core/arch/SSE/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/SSE/Complex.h diff --git a/Eigen/src/Core/arch/SSE/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/SSE/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h diff --git a/Eigen/src/Core/arch/SSE/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/SSE/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/SSE/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/SSE/PacketMath.h diff --git a/Eigen/src/Core/arch/SSE/TypeCasting.h b/third_party/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h similarity index 100% rename from Eigen/src/Core/arch/SSE/TypeCasting.h rename to third_party/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h diff --git a/Eigen/src/Core/arch/ZVector/Complex.h b/third_party/eigen/Eigen/src/Core/arch/ZVector/Complex.h similarity index 100% rename from Eigen/src/Core/arch/ZVector/Complex.h rename to third_party/eigen/Eigen/src/Core/arch/ZVector/Complex.h diff --git a/Eigen/src/Core/arch/ZVector/MathFunctions.h b/third_party/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h similarity index 100% rename from Eigen/src/Core/arch/ZVector/MathFunctions.h rename to third_party/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h diff --git a/Eigen/src/Core/arch/ZVector/PacketMath.h b/third_party/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h similarity index 100% rename from Eigen/src/Core/arch/ZVector/PacketMath.h rename to third_party/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h diff --git a/Eigen/src/Core/functors/AssignmentFunctors.h b/third_party/eigen/Eigen/src/Core/functors/AssignmentFunctors.h similarity index 100% rename from Eigen/src/Core/functors/AssignmentFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/AssignmentFunctors.h diff --git a/Eigen/src/Core/functors/BinaryFunctors.h b/third_party/eigen/Eigen/src/Core/functors/BinaryFunctors.h similarity index 100% rename from Eigen/src/Core/functors/BinaryFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/BinaryFunctors.h diff --git a/Eigen/src/Core/functors/NullaryFunctors.h b/third_party/eigen/Eigen/src/Core/functors/NullaryFunctors.h similarity index 100% rename from Eigen/src/Core/functors/NullaryFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/NullaryFunctors.h diff --git a/Eigen/src/Core/functors/StlFunctors.h b/third_party/eigen/Eigen/src/Core/functors/StlFunctors.h similarity index 100% rename from Eigen/src/Core/functors/StlFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/StlFunctors.h diff --git a/Eigen/src/Core/functors/TernaryFunctors.h b/third_party/eigen/Eigen/src/Core/functors/TernaryFunctors.h similarity index 100% rename from Eigen/src/Core/functors/TernaryFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/TernaryFunctors.h diff --git a/Eigen/src/Core/functors/UnaryFunctors.h b/third_party/eigen/Eigen/src/Core/functors/UnaryFunctors.h similarity index 100% rename from Eigen/src/Core/functors/UnaryFunctors.h rename to third_party/eigen/Eigen/src/Core/functors/UnaryFunctors.h diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/third_party/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h similarity index 100% rename from Eigen/src/Core/products/GeneralBlockPanelKernel.h rename to third_party/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h diff --git a/Eigen/src/Core/products/GeneralMatrixMatrix.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixMatrix.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h diff --git a/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h diff --git a/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h diff --git a/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h diff --git a/Eigen/src/Core/products/GeneralMatrixVector.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixVector.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector.h diff --git a/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h b/third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h similarity index 100% rename from Eigen/src/Core/products/GeneralMatrixVector_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h diff --git a/Eigen/src/Core/products/Parallelizer.h b/third_party/eigen/Eigen/src/Core/products/Parallelizer.h similarity index 100% rename from Eigen/src/Core/products/Parallelizer.h rename to third_party/eigen/Eigen/src/Core/products/Parallelizer.h diff --git a/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointMatrixMatrix.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h diff --git a/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h diff --git a/Eigen/src/Core/products/SelfadjointMatrixVector.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointMatrixVector.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h diff --git a/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h diff --git a/Eigen/src/Core/products/SelfadjointProduct.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointProduct.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointProduct.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointProduct.h diff --git a/Eigen/src/Core/products/SelfadjointRank2Update.h b/third_party/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h similarity index 100% rename from Eigen/src/Core/products/SelfadjointRank2Update.h rename to third_party/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h diff --git a/Eigen/src/Core/products/TriangularMatrixMatrix.h b/third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h similarity index 100% rename from Eigen/src/Core/products/TriangularMatrixMatrix.h rename to third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h diff --git a/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h b/third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h similarity index 100% rename from Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h diff --git a/Eigen/src/Core/products/TriangularMatrixVector.h b/third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector.h similarity index 100% rename from Eigen/src/Core/products/TriangularMatrixVector.h rename to third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector.h diff --git a/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h b/third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h similarity index 100% rename from Eigen/src/Core/products/TriangularMatrixVector_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h diff --git a/Eigen/src/Core/products/TriangularSolverMatrix.h b/third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h similarity index 100% rename from Eigen/src/Core/products/TriangularSolverMatrix.h rename to third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h diff --git a/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h b/third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h similarity index 100% rename from Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h rename to third_party/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h diff --git a/Eigen/src/Core/products/TriangularSolverVector.h b/third_party/eigen/Eigen/src/Core/products/TriangularSolverVector.h similarity index 100% rename from Eigen/src/Core/products/TriangularSolverVector.h rename to third_party/eigen/Eigen/src/Core/products/TriangularSolverVector.h diff --git a/Eigen/src/Core/util/BlasUtil.h b/third_party/eigen/Eigen/src/Core/util/BlasUtil.h similarity index 100% rename from Eigen/src/Core/util/BlasUtil.h rename to third_party/eigen/Eigen/src/Core/util/BlasUtil.h diff --git a/Eigen/src/Core/util/Constants.h b/third_party/eigen/Eigen/src/Core/util/Constants.h similarity index 100% rename from Eigen/src/Core/util/Constants.h rename to third_party/eigen/Eigen/src/Core/util/Constants.h diff --git a/Eigen/src/Core/util/DisableStupidWarnings.h b/third_party/eigen/Eigen/src/Core/util/DisableStupidWarnings.h similarity index 100% rename from Eigen/src/Core/util/DisableStupidWarnings.h rename to third_party/eigen/Eigen/src/Core/util/DisableStupidWarnings.h diff --git a/Eigen/src/Core/util/ForwardDeclarations.h b/third_party/eigen/Eigen/src/Core/util/ForwardDeclarations.h similarity index 100% rename from Eigen/src/Core/util/ForwardDeclarations.h rename to third_party/eigen/Eigen/src/Core/util/ForwardDeclarations.h diff --git a/Eigen/src/Core/util/MKL_support.h b/third_party/eigen/Eigen/src/Core/util/MKL_support.h similarity index 100% rename from Eigen/src/Core/util/MKL_support.h rename to third_party/eigen/Eigen/src/Core/util/MKL_support.h diff --git a/Eigen/src/Core/util/Macros.h b/third_party/eigen/Eigen/src/Core/util/Macros.h similarity index 100% rename from Eigen/src/Core/util/Macros.h rename to third_party/eigen/Eigen/src/Core/util/Macros.h diff --git a/Eigen/src/Core/util/Memory.h b/third_party/eigen/Eigen/src/Core/util/Memory.h similarity index 100% rename from Eigen/src/Core/util/Memory.h rename to third_party/eigen/Eigen/src/Core/util/Memory.h diff --git a/Eigen/src/Core/util/Meta.h b/third_party/eigen/Eigen/src/Core/util/Meta.h similarity index 100% rename from Eigen/src/Core/util/Meta.h rename to third_party/eigen/Eigen/src/Core/util/Meta.h diff --git a/Eigen/src/Core/util/NonMPL2.h b/third_party/eigen/Eigen/src/Core/util/NonMPL2.h similarity index 100% rename from Eigen/src/Core/util/NonMPL2.h rename to third_party/eigen/Eigen/src/Core/util/NonMPL2.h diff --git a/Eigen/src/Core/util/ReenableStupidWarnings.h b/third_party/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h similarity index 100% rename from Eigen/src/Core/util/ReenableStupidWarnings.h rename to third_party/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h diff --git a/Eigen/src/Core/util/StaticAssert.h b/third_party/eigen/Eigen/src/Core/util/StaticAssert.h similarity index 100% rename from Eigen/src/Core/util/StaticAssert.h rename to third_party/eigen/Eigen/src/Core/util/StaticAssert.h diff --git a/Eigen/src/Core/util/XprHelper.h b/third_party/eigen/Eigen/src/Core/util/XprHelper.h similarity index 100% rename from Eigen/src/Core/util/XprHelper.h rename to third_party/eigen/Eigen/src/Core/util/XprHelper.h diff --git a/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/third_party/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h similarity index 100% rename from Eigen/src/Eigenvalues/ComplexEigenSolver.h rename to third_party/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h diff --git a/Eigen/src/Eigenvalues/ComplexSchur.h b/third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur.h similarity index 100% rename from Eigen/src/Eigenvalues/ComplexSchur.h rename to third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur.h diff --git a/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h b/third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h similarity index 100% rename from Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h rename to third_party/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h diff --git a/Eigen/src/Eigenvalues/EigenSolver.h b/third_party/eigen/Eigen/src/Eigenvalues/EigenSolver.h similarity index 100% rename from Eigen/src/Eigenvalues/EigenSolver.h rename to third_party/eigen/Eigen/src/Eigenvalues/EigenSolver.h diff --git a/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/third_party/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h similarity index 100% rename from Eigen/src/Eigenvalues/GeneralizedEigenSolver.h rename to third_party/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h diff --git a/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/third_party/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h similarity index 100% rename from Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h rename to third_party/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h diff --git a/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/third_party/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h similarity index 100% rename from Eigen/src/Eigenvalues/HessenbergDecomposition.h rename to third_party/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h diff --git a/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/third_party/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h similarity index 100% rename from Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h rename to third_party/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h diff --git a/Eigen/src/Eigenvalues/RealQZ.h b/third_party/eigen/Eigen/src/Eigenvalues/RealQZ.h similarity index 100% rename from Eigen/src/Eigenvalues/RealQZ.h rename to third_party/eigen/Eigen/src/Eigenvalues/RealQZ.h diff --git a/Eigen/src/Eigenvalues/RealSchur.h b/third_party/eigen/Eigen/src/Eigenvalues/RealSchur.h similarity index 100% rename from Eigen/src/Eigenvalues/RealSchur.h rename to third_party/eigen/Eigen/src/Eigenvalues/RealSchur.h diff --git a/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h b/third_party/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h similarity index 100% rename from Eigen/src/Eigenvalues/RealSchur_LAPACKE.h rename to third_party/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h diff --git a/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h similarity index 100% rename from Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h rename to third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h diff --git a/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h b/third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h similarity index 100% rename from Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h rename to third_party/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h diff --git a/Eigen/src/Eigenvalues/Tridiagonalization.h b/third_party/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h similarity index 100% rename from Eigen/src/Eigenvalues/Tridiagonalization.h rename to third_party/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h diff --git a/Eigen/src/Geometry/AlignedBox.h b/third_party/eigen/Eigen/src/Geometry/AlignedBox.h similarity index 100% rename from Eigen/src/Geometry/AlignedBox.h rename to third_party/eigen/Eigen/src/Geometry/AlignedBox.h diff --git a/Eigen/src/Geometry/AngleAxis.h b/third_party/eigen/Eigen/src/Geometry/AngleAxis.h similarity index 100% rename from Eigen/src/Geometry/AngleAxis.h rename to third_party/eigen/Eigen/src/Geometry/AngleAxis.h diff --git a/Eigen/src/Geometry/EulerAngles.h b/third_party/eigen/Eigen/src/Geometry/EulerAngles.h similarity index 100% rename from Eigen/src/Geometry/EulerAngles.h rename to third_party/eigen/Eigen/src/Geometry/EulerAngles.h diff --git a/Eigen/src/Geometry/Homogeneous.h b/third_party/eigen/Eigen/src/Geometry/Homogeneous.h similarity index 100% rename from Eigen/src/Geometry/Homogeneous.h rename to third_party/eigen/Eigen/src/Geometry/Homogeneous.h diff --git a/Eigen/src/Geometry/Hyperplane.h b/third_party/eigen/Eigen/src/Geometry/Hyperplane.h similarity index 100% rename from Eigen/src/Geometry/Hyperplane.h rename to third_party/eigen/Eigen/src/Geometry/Hyperplane.h diff --git a/Eigen/src/Geometry/OrthoMethods.h b/third_party/eigen/Eigen/src/Geometry/OrthoMethods.h similarity index 100% rename from Eigen/src/Geometry/OrthoMethods.h rename to third_party/eigen/Eigen/src/Geometry/OrthoMethods.h diff --git a/Eigen/src/Geometry/ParametrizedLine.h b/third_party/eigen/Eigen/src/Geometry/ParametrizedLine.h similarity index 100% rename from Eigen/src/Geometry/ParametrizedLine.h rename to third_party/eigen/Eigen/src/Geometry/ParametrizedLine.h diff --git a/Eigen/src/Geometry/Quaternion.h b/third_party/eigen/Eigen/src/Geometry/Quaternion.h similarity index 100% rename from Eigen/src/Geometry/Quaternion.h rename to third_party/eigen/Eigen/src/Geometry/Quaternion.h diff --git a/Eigen/src/Geometry/Rotation2D.h b/third_party/eigen/Eigen/src/Geometry/Rotation2D.h similarity index 100% rename from Eigen/src/Geometry/Rotation2D.h rename to third_party/eigen/Eigen/src/Geometry/Rotation2D.h diff --git a/Eigen/src/Geometry/RotationBase.h b/third_party/eigen/Eigen/src/Geometry/RotationBase.h similarity index 100% rename from Eigen/src/Geometry/RotationBase.h rename to third_party/eigen/Eigen/src/Geometry/RotationBase.h diff --git a/Eigen/src/Geometry/Scaling.h b/third_party/eigen/Eigen/src/Geometry/Scaling.h similarity index 100% rename from Eigen/src/Geometry/Scaling.h rename to third_party/eigen/Eigen/src/Geometry/Scaling.h diff --git a/Eigen/src/Geometry/Transform.h b/third_party/eigen/Eigen/src/Geometry/Transform.h similarity index 100% rename from Eigen/src/Geometry/Transform.h rename to third_party/eigen/Eigen/src/Geometry/Transform.h diff --git a/Eigen/src/Geometry/Translation.h b/third_party/eigen/Eigen/src/Geometry/Translation.h similarity index 100% rename from Eigen/src/Geometry/Translation.h rename to third_party/eigen/Eigen/src/Geometry/Translation.h diff --git a/Eigen/src/Geometry/Umeyama.h b/third_party/eigen/Eigen/src/Geometry/Umeyama.h similarity index 100% rename from Eigen/src/Geometry/Umeyama.h rename to third_party/eigen/Eigen/src/Geometry/Umeyama.h diff --git a/Eigen/src/Geometry/arch/Geometry_SSE.h b/third_party/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h similarity index 100% rename from Eigen/src/Geometry/arch/Geometry_SSE.h rename to third_party/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h diff --git a/Eigen/src/Householder/BlockHouseholder.h b/third_party/eigen/Eigen/src/Householder/BlockHouseholder.h similarity index 100% rename from Eigen/src/Householder/BlockHouseholder.h rename to third_party/eigen/Eigen/src/Householder/BlockHouseholder.h diff --git a/Eigen/src/Householder/Householder.h b/third_party/eigen/Eigen/src/Householder/Householder.h similarity index 100% rename from Eigen/src/Householder/Householder.h rename to third_party/eigen/Eigen/src/Householder/Householder.h diff --git a/Eigen/src/Householder/HouseholderSequence.h b/third_party/eigen/Eigen/src/Householder/HouseholderSequence.h similarity index 100% rename from Eigen/src/Householder/HouseholderSequence.h rename to third_party/eigen/Eigen/src/Householder/HouseholderSequence.h diff --git a/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h diff --git a/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/BiCGSTAB.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h diff --git a/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/ConjugateGradient.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h diff --git a/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h diff --git a/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/IncompleteLUT.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h diff --git a/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h diff --git a/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h diff --git a/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h b/third_party/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h similarity index 100% rename from Eigen/src/IterativeLinearSolvers/SolveWithGuess.h rename to third_party/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h diff --git a/Eigen/src/Jacobi/Jacobi.h b/third_party/eigen/Eigen/src/Jacobi/Jacobi.h similarity index 100% rename from Eigen/src/Jacobi/Jacobi.h rename to third_party/eigen/Eigen/src/Jacobi/Jacobi.h diff --git a/Eigen/src/LU/Determinant.h b/third_party/eigen/Eigen/src/LU/Determinant.h similarity index 100% rename from Eigen/src/LU/Determinant.h rename to third_party/eigen/Eigen/src/LU/Determinant.h diff --git a/Eigen/src/LU/FullPivLU.h b/third_party/eigen/Eigen/src/LU/FullPivLU.h similarity index 100% rename from Eigen/src/LU/FullPivLU.h rename to third_party/eigen/Eigen/src/LU/FullPivLU.h diff --git a/Eigen/src/LU/InverseImpl.h b/third_party/eigen/Eigen/src/LU/InverseImpl.h similarity index 100% rename from Eigen/src/LU/InverseImpl.h rename to third_party/eigen/Eigen/src/LU/InverseImpl.h diff --git a/Eigen/src/LU/PartialPivLU.h b/third_party/eigen/Eigen/src/LU/PartialPivLU.h similarity index 100% rename from Eigen/src/LU/PartialPivLU.h rename to third_party/eigen/Eigen/src/LU/PartialPivLU.h diff --git a/Eigen/src/LU/PartialPivLU_LAPACKE.h b/third_party/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h similarity index 100% rename from Eigen/src/LU/PartialPivLU_LAPACKE.h rename to third_party/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h diff --git a/Eigen/src/LU/arch/Inverse_SSE.h b/third_party/eigen/Eigen/src/LU/arch/Inverse_SSE.h similarity index 100% rename from Eigen/src/LU/arch/Inverse_SSE.h rename to third_party/eigen/Eigen/src/LU/arch/Inverse_SSE.h diff --git a/Eigen/src/MetisSupport/MetisSupport.h b/third_party/eigen/Eigen/src/MetisSupport/MetisSupport.h similarity index 100% rename from Eigen/src/MetisSupport/MetisSupport.h rename to third_party/eigen/Eigen/src/MetisSupport/MetisSupport.h diff --git a/Eigen/src/OrderingMethods/Amd.h b/third_party/eigen/Eigen/src/OrderingMethods/Amd.h similarity index 100% rename from Eigen/src/OrderingMethods/Amd.h rename to third_party/eigen/Eigen/src/OrderingMethods/Amd.h diff --git a/Eigen/src/OrderingMethods/Eigen_Colamd.h b/third_party/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h similarity index 100% rename from Eigen/src/OrderingMethods/Eigen_Colamd.h rename to third_party/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h diff --git a/Eigen/src/OrderingMethods/Ordering.h b/third_party/eigen/Eigen/src/OrderingMethods/Ordering.h similarity index 100% rename from Eigen/src/OrderingMethods/Ordering.h rename to third_party/eigen/Eigen/src/OrderingMethods/Ordering.h diff --git a/Eigen/src/PaStiXSupport/PaStiXSupport.h b/third_party/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h similarity index 100% rename from Eigen/src/PaStiXSupport/PaStiXSupport.h rename to third_party/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h diff --git a/Eigen/src/PardisoSupport/PardisoSupport.h b/third_party/eigen/Eigen/src/PardisoSupport/PardisoSupport.h similarity index 100% rename from Eigen/src/PardisoSupport/PardisoSupport.h rename to third_party/eigen/Eigen/src/PardisoSupport/PardisoSupport.h diff --git a/Eigen/src/QR/ColPivHouseholderQR.h b/third_party/eigen/Eigen/src/QR/ColPivHouseholderQR.h similarity index 100% rename from Eigen/src/QR/ColPivHouseholderQR.h rename to third_party/eigen/Eigen/src/QR/ColPivHouseholderQR.h diff --git a/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h b/third_party/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h similarity index 100% rename from Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h rename to third_party/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h diff --git a/Eigen/src/QR/CompleteOrthogonalDecomposition.h b/third_party/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h similarity index 100% rename from Eigen/src/QR/CompleteOrthogonalDecomposition.h rename to third_party/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h diff --git a/Eigen/src/QR/FullPivHouseholderQR.h b/third_party/eigen/Eigen/src/QR/FullPivHouseholderQR.h similarity index 100% rename from Eigen/src/QR/FullPivHouseholderQR.h rename to third_party/eigen/Eigen/src/QR/FullPivHouseholderQR.h diff --git a/Eigen/src/QR/HouseholderQR.h b/third_party/eigen/Eigen/src/QR/HouseholderQR.h similarity index 100% rename from Eigen/src/QR/HouseholderQR.h rename to third_party/eigen/Eigen/src/QR/HouseholderQR.h diff --git a/Eigen/src/QR/HouseholderQR_LAPACKE.h b/third_party/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h similarity index 100% rename from Eigen/src/QR/HouseholderQR_LAPACKE.h rename to third_party/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h diff --git a/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/third_party/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h similarity index 100% rename from Eigen/src/SPQRSupport/SuiteSparseQRSupport.h rename to third_party/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h diff --git a/Eigen/src/SVD/BDCSVD.h b/third_party/eigen/Eigen/src/SVD/BDCSVD.h similarity index 100% rename from Eigen/src/SVD/BDCSVD.h rename to third_party/eigen/Eigen/src/SVD/BDCSVD.h diff --git a/Eigen/src/SVD/JacobiSVD.h b/third_party/eigen/Eigen/src/SVD/JacobiSVD.h similarity index 100% rename from Eigen/src/SVD/JacobiSVD.h rename to third_party/eigen/Eigen/src/SVD/JacobiSVD.h diff --git a/Eigen/src/SVD/JacobiSVD_LAPACKE.h b/third_party/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h similarity index 100% rename from Eigen/src/SVD/JacobiSVD_LAPACKE.h rename to third_party/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h diff --git a/Eigen/src/SVD/SVDBase.h b/third_party/eigen/Eigen/src/SVD/SVDBase.h similarity index 100% rename from Eigen/src/SVD/SVDBase.h rename to third_party/eigen/Eigen/src/SVD/SVDBase.h diff --git a/Eigen/src/SVD/UpperBidiagonalization.h b/third_party/eigen/Eigen/src/SVD/UpperBidiagonalization.h similarity index 100% rename from Eigen/src/SVD/UpperBidiagonalization.h rename to third_party/eigen/Eigen/src/SVD/UpperBidiagonalization.h diff --git a/Eigen/src/SparseCholesky/SimplicialCholesky.h b/third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h similarity index 100% rename from Eigen/src/SparseCholesky/SimplicialCholesky.h rename to third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h diff --git a/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h similarity index 100% rename from Eigen/src/SparseCholesky/SimplicialCholesky_impl.h rename to third_party/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h diff --git a/Eigen/src/SparseCore/AmbiVector.h b/third_party/eigen/Eigen/src/SparseCore/AmbiVector.h similarity index 100% rename from Eigen/src/SparseCore/AmbiVector.h rename to third_party/eigen/Eigen/src/SparseCore/AmbiVector.h diff --git a/Eigen/src/SparseCore/CompressedStorage.h b/third_party/eigen/Eigen/src/SparseCore/CompressedStorage.h similarity index 100% rename from Eigen/src/SparseCore/CompressedStorage.h rename to third_party/eigen/Eigen/src/SparseCore/CompressedStorage.h diff --git a/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/third_party/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h similarity index 100% rename from Eigen/src/SparseCore/ConservativeSparseSparseProduct.h rename to third_party/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h diff --git a/Eigen/src/SparseCore/MappedSparseMatrix.h b/third_party/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h similarity index 100% rename from Eigen/src/SparseCore/MappedSparseMatrix.h rename to third_party/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h diff --git a/Eigen/src/SparseCore/SparseAssign.h b/third_party/eigen/Eigen/src/SparseCore/SparseAssign.h similarity index 100% rename from Eigen/src/SparseCore/SparseAssign.h rename to third_party/eigen/Eigen/src/SparseCore/SparseAssign.h diff --git a/Eigen/src/SparseCore/SparseBlock.h b/third_party/eigen/Eigen/src/SparseCore/SparseBlock.h similarity index 100% rename from Eigen/src/SparseCore/SparseBlock.h rename to third_party/eigen/Eigen/src/SparseCore/SparseBlock.h diff --git a/Eigen/src/SparseCore/SparseColEtree.h b/third_party/eigen/Eigen/src/SparseCore/SparseColEtree.h similarity index 100% rename from Eigen/src/SparseCore/SparseColEtree.h rename to third_party/eigen/Eigen/src/SparseCore/SparseColEtree.h diff --git a/Eigen/src/SparseCore/SparseCompressedBase.h b/third_party/eigen/Eigen/src/SparseCore/SparseCompressedBase.h similarity index 100% rename from Eigen/src/SparseCore/SparseCompressedBase.h rename to third_party/eigen/Eigen/src/SparseCore/SparseCompressedBase.h diff --git a/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/third_party/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h similarity index 100% rename from Eigen/src/SparseCore/SparseCwiseBinaryOp.h rename to third_party/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h diff --git a/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/third_party/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h similarity index 100% rename from Eigen/src/SparseCore/SparseCwiseUnaryOp.h rename to third_party/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h diff --git a/Eigen/src/SparseCore/SparseDenseProduct.h b/third_party/eigen/Eigen/src/SparseCore/SparseDenseProduct.h similarity index 100% rename from Eigen/src/SparseCore/SparseDenseProduct.h rename to third_party/eigen/Eigen/src/SparseCore/SparseDenseProduct.h diff --git a/Eigen/src/SparseCore/SparseDiagonalProduct.h b/third_party/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h similarity index 100% rename from Eigen/src/SparseCore/SparseDiagonalProduct.h rename to third_party/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h diff --git a/Eigen/src/SparseCore/SparseDot.h b/third_party/eigen/Eigen/src/SparseCore/SparseDot.h similarity index 100% rename from Eigen/src/SparseCore/SparseDot.h rename to third_party/eigen/Eigen/src/SparseCore/SparseDot.h diff --git a/Eigen/src/SparseCore/SparseFuzzy.h b/third_party/eigen/Eigen/src/SparseCore/SparseFuzzy.h similarity index 100% rename from Eigen/src/SparseCore/SparseFuzzy.h rename to third_party/eigen/Eigen/src/SparseCore/SparseFuzzy.h diff --git a/Eigen/src/SparseCore/SparseMap.h b/third_party/eigen/Eigen/src/SparseCore/SparseMap.h similarity index 100% rename from Eigen/src/SparseCore/SparseMap.h rename to third_party/eigen/Eigen/src/SparseCore/SparseMap.h diff --git a/Eigen/src/SparseCore/SparseMatrix.h b/third_party/eigen/Eigen/src/SparseCore/SparseMatrix.h similarity index 100% rename from Eigen/src/SparseCore/SparseMatrix.h rename to third_party/eigen/Eigen/src/SparseCore/SparseMatrix.h diff --git a/Eigen/src/SparseCore/SparseMatrixBase.h b/third_party/eigen/Eigen/src/SparseCore/SparseMatrixBase.h similarity index 100% rename from Eigen/src/SparseCore/SparseMatrixBase.h rename to third_party/eigen/Eigen/src/SparseCore/SparseMatrixBase.h diff --git a/Eigen/src/SparseCore/SparsePermutation.h b/third_party/eigen/Eigen/src/SparseCore/SparsePermutation.h similarity index 100% rename from Eigen/src/SparseCore/SparsePermutation.h rename to third_party/eigen/Eigen/src/SparseCore/SparsePermutation.h diff --git a/Eigen/src/SparseCore/SparseProduct.h b/third_party/eigen/Eigen/src/SparseCore/SparseProduct.h similarity index 100% rename from Eigen/src/SparseCore/SparseProduct.h rename to third_party/eigen/Eigen/src/SparseCore/SparseProduct.h diff --git a/Eigen/src/SparseCore/SparseRedux.h b/third_party/eigen/Eigen/src/SparseCore/SparseRedux.h similarity index 100% rename from Eigen/src/SparseCore/SparseRedux.h rename to third_party/eigen/Eigen/src/SparseCore/SparseRedux.h diff --git a/Eigen/src/SparseCore/SparseRef.h b/third_party/eigen/Eigen/src/SparseCore/SparseRef.h similarity index 100% rename from Eigen/src/SparseCore/SparseRef.h rename to third_party/eigen/Eigen/src/SparseCore/SparseRef.h diff --git a/Eigen/src/SparseCore/SparseSelfAdjointView.h b/third_party/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h similarity index 100% rename from Eigen/src/SparseCore/SparseSelfAdjointView.h rename to third_party/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h diff --git a/Eigen/src/SparseCore/SparseSolverBase.h b/third_party/eigen/Eigen/src/SparseCore/SparseSolverBase.h similarity index 100% rename from Eigen/src/SparseCore/SparseSolverBase.h rename to third_party/eigen/Eigen/src/SparseCore/SparseSolverBase.h diff --git a/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/third_party/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h similarity index 100% rename from Eigen/src/SparseCore/SparseSparseProductWithPruning.h rename to third_party/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h diff --git a/Eigen/src/SparseCore/SparseTranspose.h b/third_party/eigen/Eigen/src/SparseCore/SparseTranspose.h similarity index 100% rename from Eigen/src/SparseCore/SparseTranspose.h rename to third_party/eigen/Eigen/src/SparseCore/SparseTranspose.h diff --git a/Eigen/src/SparseCore/SparseTriangularView.h b/third_party/eigen/Eigen/src/SparseCore/SparseTriangularView.h similarity index 100% rename from Eigen/src/SparseCore/SparseTriangularView.h rename to third_party/eigen/Eigen/src/SparseCore/SparseTriangularView.h diff --git a/Eigen/src/SparseCore/SparseUtil.h b/third_party/eigen/Eigen/src/SparseCore/SparseUtil.h similarity index 100% rename from Eigen/src/SparseCore/SparseUtil.h rename to third_party/eigen/Eigen/src/SparseCore/SparseUtil.h diff --git a/Eigen/src/SparseCore/SparseVector.h b/third_party/eigen/Eigen/src/SparseCore/SparseVector.h similarity index 100% rename from Eigen/src/SparseCore/SparseVector.h rename to third_party/eigen/Eigen/src/SparseCore/SparseVector.h diff --git a/Eigen/src/SparseCore/SparseView.h b/third_party/eigen/Eigen/src/SparseCore/SparseView.h similarity index 100% rename from Eigen/src/SparseCore/SparseView.h rename to third_party/eigen/Eigen/src/SparseCore/SparseView.h diff --git a/Eigen/src/SparseCore/TriangularSolver.h b/third_party/eigen/Eigen/src/SparseCore/TriangularSolver.h similarity index 100% rename from Eigen/src/SparseCore/TriangularSolver.h rename to third_party/eigen/Eigen/src/SparseCore/TriangularSolver.h diff --git a/Eigen/src/SparseLU/SparseLU.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU.h diff --git a/Eigen/src/SparseLU/SparseLUImpl.h b/third_party/eigen/Eigen/src/SparseLU/SparseLUImpl.h similarity index 100% rename from Eigen/src/SparseLU/SparseLUImpl.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLUImpl.h diff --git a/Eigen/src/SparseLU/SparseLU_Memory.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_Memory.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_Memory.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_Memory.h diff --git a/Eigen/src/SparseLU/SparseLU_Structs.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_Structs.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_Structs.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_Structs.h diff --git a/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h diff --git a/Eigen/src/SparseLU/SparseLU_Utils.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_Utils.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_Utils.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_Utils.h diff --git a/Eigen/src/SparseLU/SparseLU_column_bmod.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_column_bmod.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h diff --git a/Eigen/src/SparseLU/SparseLU_column_dfs.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_column_dfs.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h diff --git a/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_copy_to_ucol.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h diff --git a/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_gemm_kernel.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h diff --git a/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_heap_relax_snode.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h diff --git a/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_kernel_bmod.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h diff --git a/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_panel_bmod.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h diff --git a/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_panel_dfs.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h diff --git a/Eigen/src/SparseLU/SparseLU_pivotL.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_pivotL.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h diff --git a/Eigen/src/SparseLU/SparseLU_pruneL.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_pruneL.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h diff --git a/Eigen/src/SparseLU/SparseLU_relax_snode.h b/third_party/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h similarity index 100% rename from Eigen/src/SparseLU/SparseLU_relax_snode.h rename to third_party/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h diff --git a/Eigen/src/SparseQR/SparseQR.h b/third_party/eigen/Eigen/src/SparseQR/SparseQR.h similarity index 100% rename from Eigen/src/SparseQR/SparseQR.h rename to third_party/eigen/Eigen/src/SparseQR/SparseQR.h diff --git a/Eigen/src/StlSupport/StdDeque.h b/third_party/eigen/Eigen/src/StlSupport/StdDeque.h similarity index 100% rename from Eigen/src/StlSupport/StdDeque.h rename to third_party/eigen/Eigen/src/StlSupport/StdDeque.h diff --git a/Eigen/src/StlSupport/StdList.h b/third_party/eigen/Eigen/src/StlSupport/StdList.h similarity index 100% rename from Eigen/src/StlSupport/StdList.h rename to third_party/eigen/Eigen/src/StlSupport/StdList.h diff --git a/Eigen/src/StlSupport/StdVector.h b/third_party/eigen/Eigen/src/StlSupport/StdVector.h similarity index 100% rename from Eigen/src/StlSupport/StdVector.h rename to third_party/eigen/Eigen/src/StlSupport/StdVector.h diff --git a/Eigen/src/StlSupport/details.h b/third_party/eigen/Eigen/src/StlSupport/details.h similarity index 100% rename from Eigen/src/StlSupport/details.h rename to third_party/eigen/Eigen/src/StlSupport/details.h diff --git a/Eigen/src/SuperLUSupport/SuperLUSupport.h b/third_party/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h similarity index 100% rename from Eigen/src/SuperLUSupport/SuperLUSupport.h rename to third_party/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h diff --git a/Eigen/src/UmfPackSupport/UmfPackSupport.h b/third_party/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h similarity index 100% rename from Eigen/src/UmfPackSupport/UmfPackSupport.h rename to third_party/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h diff --git a/Eigen/src/misc/Image.h b/third_party/eigen/Eigen/src/misc/Image.h similarity index 100% rename from Eigen/src/misc/Image.h rename to third_party/eigen/Eigen/src/misc/Image.h diff --git a/Eigen/src/misc/Kernel.h b/third_party/eigen/Eigen/src/misc/Kernel.h similarity index 100% rename from Eigen/src/misc/Kernel.h rename to third_party/eigen/Eigen/src/misc/Kernel.h diff --git a/Eigen/src/misc/RealSvd2x2.h b/third_party/eigen/Eigen/src/misc/RealSvd2x2.h similarity index 100% rename from Eigen/src/misc/RealSvd2x2.h rename to third_party/eigen/Eigen/src/misc/RealSvd2x2.h diff --git a/Eigen/src/misc/blas.h b/third_party/eigen/Eigen/src/misc/blas.h similarity index 100% rename from Eigen/src/misc/blas.h rename to third_party/eigen/Eigen/src/misc/blas.h diff --git a/Eigen/src/misc/lapack.h b/third_party/eigen/Eigen/src/misc/lapack.h similarity index 100% rename from Eigen/src/misc/lapack.h rename to third_party/eigen/Eigen/src/misc/lapack.h diff --git a/Eigen/src/misc/lapacke.h b/third_party/eigen/Eigen/src/misc/lapacke.h similarity index 100% rename from Eigen/src/misc/lapacke.h rename to third_party/eigen/Eigen/src/misc/lapacke.h diff --git a/Eigen/src/misc/lapacke_mangling.h b/third_party/eigen/Eigen/src/misc/lapacke_mangling.h similarity index 100% rename from Eigen/src/misc/lapacke_mangling.h rename to third_party/eigen/Eigen/src/misc/lapacke_mangling.h diff --git a/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/third_party/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h similarity index 100% rename from Eigen/src/plugins/ArrayCwiseBinaryOps.h rename to third_party/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h diff --git a/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/third_party/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h similarity index 100% rename from Eigen/src/plugins/ArrayCwiseUnaryOps.h rename to third_party/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h diff --git a/Eigen/src/plugins/BlockMethods.h b/third_party/eigen/Eigen/src/plugins/BlockMethods.h similarity index 100% rename from Eigen/src/plugins/BlockMethods.h rename to third_party/eigen/Eigen/src/plugins/BlockMethods.h diff --git a/Eigen/src/plugins/CommonCwiseBinaryOps.h b/third_party/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h similarity index 100% rename from Eigen/src/plugins/CommonCwiseBinaryOps.h rename to third_party/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h diff --git a/Eigen/src/plugins/CommonCwiseUnaryOps.h b/third_party/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h similarity index 100% rename from Eigen/src/plugins/CommonCwiseUnaryOps.h rename to third_party/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h diff --git a/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/third_party/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h similarity index 100% rename from Eigen/src/plugins/MatrixCwiseBinaryOps.h rename to third_party/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h diff --git a/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/third_party/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h similarity index 100% rename from Eigen/src/plugins/MatrixCwiseUnaryOps.h rename to third_party/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h