From 6bb460d87b0a34672d3602828b790a13369547e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Oberhuber?= <oberhuber.tomas@gmail.com>
Date: Mon, 30 Dec 2019 18:28:24 +0100
Subject: [PATCH] Original implementation of the sparse matrices was moved to
 Matrices/Legacy.

---
 src/Benchmarks/BLAS/spmv.h                           |  8 ++++----
 .../DistSpMV/tnl-benchmark-distributed-spmv.h        |  2 +-
 .../LinearSolvers/tnl-benchmark-linear-solvers.h     |  2 +-
 .../ODESolvers/tnl-benchmark-ode-solvers.h           |  2 +-
 src/Benchmarks/SpMV/spmv.h                           | 12 ++++++------
 src/Python/pytnl/tnl/SparseMatrix.cpp                |  6 +++---
 src/Python/pytnl/tnl/SparseMatrix.h                  |  2 +-
 src/TNL/Matrices/DistributedMatrix.h                 |  2 +-
 src/TNL/Matrices/{ => Legacy}/AdEllpack.h            |  4 ++--
 src/TNL/Matrices/{ => Legacy}/AdEllpack_impl.h       |  2 +-
 src/TNL/Matrices/{ => Legacy}/BiEllpack.h            |  4 ++--
 src/TNL/Matrices/{ => Legacy}/BiEllpackSymmetric.h   |  0
 .../Matrices/{ => Legacy}/BiEllpackSymmetric_impl.h  |  0
 src/TNL/Matrices/{ => Legacy}/BiEllpack_impl.h       |  2 +-
 src/TNL/Matrices/{ => Legacy}/CSR.h                  |  4 ++--
 src/TNL/Matrices/{ => Legacy}/CSR_impl.h             |  2 +-
 src/TNL/Matrices/{ => Legacy}/ChunkedEllpack.h       |  4 ++--
 src/TNL/Matrices/{ => Legacy}/ChunkedEllpack_impl.h  |  2 +-
 src/TNL/Matrices/{ => Legacy}/Ellpack.h              |  4 ++--
 src/TNL/Matrices/{ => Legacy}/EllpackSymmetric.h     |  0
 .../Matrices/{ => Legacy}/EllpackSymmetricGraph.h    |  0
 .../{ => Legacy}/EllpackSymmetricGraph_impl.h        |  0
 .../Matrices/{ => Legacy}/EllpackSymmetric_impl.h    |  0
 src/TNL/Matrices/{ => Legacy}/Ellpack_impl.h         |  2 +-
 src/TNL/Matrices/{ => Legacy}/SlicedEllpack.h        |  4 ++--
 .../Matrices/{ => Legacy}/SlicedEllpackSymmetric.h   |  0
 .../{ => Legacy}/SlicedEllpackSymmetricGraph.h       |  0
 .../{ => Legacy}/SlicedEllpackSymmetricGraph_impl.h  |  0
 .../{ => Legacy}/SlicedEllpackSymmetric_impl.h       |  0
 src/TNL/Matrices/{ => Legacy}/SlicedEllpack_impl.h   |  2 +-
 src/TNL/Matrices/{ => Legacy}/Sparse.h               |  4 ++--
 src/TNL/Matrices/{ => Legacy}/SparseRow.h            |  2 +-
 src/TNL/Matrices/{ => Legacy}/SparseRow_impl.h       |  2 +-
 src/TNL/Matrices/{ => Legacy}/Sparse_impl.h          |  0
 src/TNL/Problems/HeatEquationProblem.h               |  2 +-
 src/TNL/Problems/PDEProblem.h                        |  2 +-
 src/TNL/Solvers/Linear/Preconditioners/ILU0.h        |  2 +-
 src/TNL/Solvers/Linear/Preconditioners/ILUT.h        |  2 +-
 src/TNL/Solvers/SolverConfig_impl.h                  |  3 +--
 src/UnitTests/Matrices/DistributedMatrixTest.h       |  2 +-
 src/UnitTests/Matrices/SparseMatrixCopyTest.h        |  6 +++---
 src/UnitTests/Matrices/SparseMatrixTest.h            |  2 +-
 src/UnitTests/Matrices/SparseMatrixTest.hpp          |  6 +++---
 src/UnitTests/Matrices/SparseMatrixTest_AdEllpack.h  |  2 +-
 src/UnitTests/Matrices/SparseMatrixTest_BiEllpack.h  |  2 +-
 src/UnitTests/Matrices/SparseMatrixTest_CSR.h        |  2 +-
 .../Matrices/SparseMatrixTest_ChunkedEllpack.h       |  2 +-
 src/UnitTests/Matrices/SparseMatrixTest_Ellpack.h    |  2 +-
 48 files changed, 58 insertions(+), 59 deletions(-)
 rename src/TNL/Matrices/{ => Legacy}/AdEllpack.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/AdEllpack_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/BiEllpack.h (98%)
 rename src/TNL/Matrices/{ => Legacy}/BiEllpackSymmetric.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/BiEllpackSymmetric_impl.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/BiEllpack_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/CSR.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/CSR_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/ChunkedEllpack.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/ChunkedEllpack_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/Ellpack.h (98%)
 rename src/TNL/Matrices/{ => Legacy}/EllpackSymmetric.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/EllpackSymmetricGraph.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/EllpackSymmetricGraph_impl.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/EllpackSymmetric_impl.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/Ellpack_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpack.h (98%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpackSymmetric.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpackSymmetricGraph.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpackSymmetricGraph_impl.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpackSymmetric_impl.h (100%)
 rename src/TNL/Matrices/{ => Legacy}/SlicedEllpack_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/Sparse.h (95%)
 rename src/TNL/Matrices/{ => Legacy}/SparseRow.h (97%)
 rename src/TNL/Matrices/{ => Legacy}/SparseRow_impl.h (99%)
 rename src/TNL/Matrices/{ => Legacy}/Sparse_impl.h (100%)

diff --git a/src/Benchmarks/BLAS/spmv.h b/src/Benchmarks/BLAS/spmv.h
index d515d52d73..6685b9f766 100644
--- a/src/Benchmarks/BLAS/spmv.h
+++ b/src/Benchmarks/BLAS/spmv.h
@@ -15,10 +15,10 @@
 #include "../Benchmarks.h"
 
 #include <TNL/Pointers/DevicePointer.h>
-#include <TNL/Matrices/CSR.h>
-#include <TNL/Matrices/Ellpack.h>
-#include <TNL/Matrices/SlicedEllpack.h>
-#include <TNL/Matrices/ChunkedEllpack.h>
+#include <TNL/Matrices/Legacy/CSR.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack.h>
 
 namespace TNL {
 namespace Benchmarks {
diff --git a/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h b/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
index aa4b29424d..b90b11088e 100644
--- a/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
+++ b/src/Benchmarks/DistSpMV/tnl-benchmark-distributed-spmv.h
@@ -30,7 +30,7 @@
 #include "../Benchmarks.h"
 #include "ordering.h"
 
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 
 using namespace TNL;
 using namespace TNL::Benchmarks;
diff --git a/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h b/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
index 4aabf39cd4..9c58d25b0e 100644
--- a/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
+++ b/src/Benchmarks/LinearSolvers/tnl-benchmark-linear-solvers.h
@@ -55,7 +55,7 @@
    #define HAVE_CUSOLVER
 #endif
 
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 
 using namespace TNL;
 using namespace TNL::Benchmarks;
diff --git a/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h b/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
index d29b680bc8..1e4bc380e7 100644
--- a/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
+++ b/src/Benchmarks/ODESolvers/tnl-benchmark-ode-solvers.h
@@ -36,7 +36,7 @@
 #include "Euler.h"
 #include "Merson.h"
 
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 
 using namespace TNL;
 using namespace TNL::Benchmarks;
diff --git a/src/Benchmarks/SpMV/spmv.h b/src/Benchmarks/SpMV/spmv.h
index 8a222c7b5e..e3a1ae047e 100644
--- a/src/Benchmarks/SpMV/spmv.h
+++ b/src/Benchmarks/SpMV/spmv.h
@@ -17,12 +17,12 @@
 #include "../Benchmarks.h"
 
 #include <TNL/Pointers/DevicePointer.h>
-#include <TNL/Matrices/CSR.h>
-#include <TNL/Matrices/Ellpack.h>
-#include <TNL/Matrices/SlicedEllpack.h>
-#include <TNL/Matrices/ChunkedEllpack.h>
-#include <TNL/Matrices/AdEllpack.h>
-#include <TNL/Matrices/BiEllpack.h>
+#include <TNL/Matrices/Legacy/CSR.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack.h>
+#include <TNL/Matrices/Legacy/AdEllpack.h>
+#include <TNL/Matrices/Legacy/BiEllpack.h>
 
 #include <TNL/Matrices/MatrixReader.h>
 
diff --git a/src/Python/pytnl/tnl/SparseMatrix.cpp b/src/Python/pytnl/tnl/SparseMatrix.cpp
index e658499831..fe3ba5aca7 100644
--- a/src/Python/pytnl/tnl/SparseMatrix.cpp
+++ b/src/Python/pytnl/tnl/SparseMatrix.cpp
@@ -3,9 +3,9 @@
 
 #include "SparseMatrix.h"
 
-#include <TNL/Matrices/CSR.h>
-#include <TNL/Matrices/Ellpack.h>
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/CSR.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 
 using CSR_host = TNL::Matrices::CSR< double, TNL::Devices::Host, int >;
 using CSR_cuda = TNL::Matrices::CSR< double, TNL::Devices::Cuda, int >;
diff --git a/src/Python/pytnl/tnl/SparseMatrix.h b/src/Python/pytnl/tnl/SparseMatrix.h
index 1a32bd257f..03ec5814c4 100644
--- a/src/Python/pytnl/tnl/SparseMatrix.h
+++ b/src/Python/pytnl/tnl/SparseMatrix.h
@@ -5,7 +5,7 @@ namespace py = pybind11;
 
 #include <TNL/String.h>
 #include <TNL/Containers/Vector.h>
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 template< typename Matrix >
 struct SpecificExports
diff --git a/src/TNL/Matrices/DistributedMatrix.h b/src/TNL/Matrices/DistributedMatrix.h
index 76b6ea8c1d..05ee283915 100644
--- a/src/TNL/Matrices/DistributedMatrix.h
+++ b/src/TNL/Matrices/DistributedMatrix.h
@@ -14,7 +14,7 @@
 
 #include <type_traits>
 
-#include <TNL/Matrices/SparseRow.h>
+#include <TNL/Matrices/Legacy/SparseRow.h>
 #include <TNL/Communicators/MpiCommunicator.h>
 #include <TNL/Containers/Subrange.h>
 #include <TNL/Containers/DistributedVector.h>
diff --git a/src/TNL/Matrices/AdEllpack.h b/src/TNL/Matrices/Legacy/AdEllpack.h
similarity index 99%
rename from src/TNL/Matrices/AdEllpack.h
rename to src/TNL/Matrices/Legacy/AdEllpack.h
index f011e6c804..3d2db7b963 100644
--- a/src/TNL/Matrices/AdEllpack.h
+++ b/src/TNL/Matrices/Legacy/AdEllpack.h
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 namespace TNL {
@@ -293,4 +293,4 @@ protected:
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/AdEllpack_impl.h>
+#include <TNL/Matrices/Legacy/AdEllpack_impl.h>
diff --git a/src/TNL/Matrices/AdEllpack_impl.h b/src/TNL/Matrices/Legacy/AdEllpack_impl.h
similarity index 99%
rename from src/TNL/Matrices/AdEllpack_impl.h
rename to src/TNL/Matrices/Legacy/AdEllpack_impl.h
index b7b97ff935..234e18f94f 100644
--- a/src/TNL/Matrices/AdEllpack_impl.h
+++ b/src/TNL/Matrices/Legacy/AdEllpack_impl.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/AdEllpack.h>
+#include <TNL/Matrices/Legacy/AdEllpack.h>
 #include <TNL/Containers/Vector.h>
 #include <TNL/Math.h>
 #include <TNL/TypeInfo.h>
diff --git a/src/TNL/Matrices/BiEllpack.h b/src/TNL/Matrices/Legacy/BiEllpack.h
similarity index 98%
rename from src/TNL/Matrices/BiEllpack.h
rename to src/TNL/Matrices/Legacy/BiEllpack.h
index 3ec4b662fe..fe3fd9e116 100644
--- a/src/TNL/Matrices/BiEllpack.h
+++ b/src/TNL/Matrices/Legacy/BiEllpack.h
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 namespace TNL {
@@ -217,5 +217,5 @@ private:
    } //namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/BiEllpack_impl.h>
+#include <TNL/Matrices/Legacy/BiEllpack_impl.h>
 
diff --git a/src/TNL/Matrices/BiEllpackSymmetric.h b/src/TNL/Matrices/Legacy/BiEllpackSymmetric.h
similarity index 100%
rename from src/TNL/Matrices/BiEllpackSymmetric.h
rename to src/TNL/Matrices/Legacy/BiEllpackSymmetric.h
diff --git a/src/TNL/Matrices/BiEllpackSymmetric_impl.h b/src/TNL/Matrices/Legacy/BiEllpackSymmetric_impl.h
similarity index 100%
rename from src/TNL/Matrices/BiEllpackSymmetric_impl.h
rename to src/TNL/Matrices/Legacy/BiEllpackSymmetric_impl.h
diff --git a/src/TNL/Matrices/BiEllpack_impl.h b/src/TNL/Matrices/Legacy/BiEllpack_impl.h
similarity index 99%
rename from src/TNL/Matrices/BiEllpack_impl.h
rename to src/TNL/Matrices/Legacy/BiEllpack_impl.h
index c659b758e9..36732a39a2 100644
--- a/src/TNL/Matrices/BiEllpack_impl.h
+++ b/src/TNL/Matrices/Legacy/BiEllpack_impl.h
@@ -11,7 +11,7 @@
 #pragma once
 
 
-#include <TNL/Matrices/BiEllpack.h>
+#include <TNL/Matrices/Legacy/BiEllpack.h>
 #include <TNL/Containers/Vector.h>
 #include <TNL/Math.h>
 #include <cstdio>
diff --git a/src/TNL/Matrices/CSR.h b/src/TNL/Matrices/Legacy/CSR.h
similarity index 99%
rename from src/TNL/Matrices/CSR.h
rename to src/TNL/Matrices/Legacy/CSR.h
index 485176d1d8..b68434252d 100644
--- a/src/TNL/Matrices/CSR.h
+++ b/src/TNL/Matrices/Legacy/CSR.h
@@ -10,7 +10,7 @@
 
 #pragma once 
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 #include <TNL/Devices/Cuda.h>
@@ -272,4 +272,4 @@ protected:
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/CSR_impl.h>
+#include <TNL/Matrices/Legacy/CSR_impl.h>
diff --git a/src/TNL/Matrices/CSR_impl.h b/src/TNL/Matrices/Legacy/CSR_impl.h
similarity index 99%
rename from src/TNL/Matrices/CSR_impl.h
rename to src/TNL/Matrices/Legacy/CSR_impl.h
index db31d6dcde..08b35f5632 100644
--- a/src/TNL/Matrices/CSR_impl.h
+++ b/src/TNL/Matrices/Legacy/CSR_impl.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 #include <TNL/Containers/VectorView.h>
 #include <TNL/Math.h>
 #include <TNL/Exceptions/NotImplementedError.h>
diff --git a/src/TNL/Matrices/ChunkedEllpack.h b/src/TNL/Matrices/Legacy/ChunkedEllpack.h
similarity index 99%
rename from src/TNL/Matrices/ChunkedEllpack.h
rename to src/TNL/Matrices/Legacy/ChunkedEllpack.h
index 9d42207960..a0f55b3263 100644
--- a/src/TNL/Matrices/ChunkedEllpack.h
+++ b/src/TNL/Matrices/Legacy/ChunkedEllpack.h
@@ -22,7 +22,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 namespace TNL {
@@ -352,5 +352,5 @@ protected:
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/ChunkedEllpack_impl.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack_impl.h>
 
diff --git a/src/TNL/Matrices/ChunkedEllpack_impl.h b/src/TNL/Matrices/Legacy/ChunkedEllpack_impl.h
similarity index 99%
rename from src/TNL/Matrices/ChunkedEllpack_impl.h
rename to src/TNL/Matrices/Legacy/ChunkedEllpack_impl.h
index 3b1fd9c8f9..4061597524 100644
--- a/src/TNL/Matrices/ChunkedEllpack_impl.h
+++ b/src/TNL/Matrices/Legacy/ChunkedEllpack_impl.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/ChunkedEllpack.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack.h>
 #include <TNL/Containers/Vector.h>
 #include <TNL/Math.h>
 #include <TNL/Exceptions/NotImplementedError.h>
diff --git a/src/TNL/Matrices/Ellpack.h b/src/TNL/Matrices/Legacy/Ellpack.h
similarity index 98%
rename from src/TNL/Matrices/Ellpack.h
rename to src/TNL/Matrices/Legacy/Ellpack.h
index 6536f5f6ca..5f6e666f92 100644
--- a/src/TNL/Matrices/Ellpack.h
+++ b/src/TNL/Matrices/Legacy/Ellpack.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 namespace TNL {
@@ -207,4 +207,4 @@ protected:
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/Ellpack_impl.h>
+#include <TNL/Matrices/Legacy/Ellpack_impl.h>
diff --git a/src/TNL/Matrices/EllpackSymmetric.h b/src/TNL/Matrices/Legacy/EllpackSymmetric.h
similarity index 100%
rename from src/TNL/Matrices/EllpackSymmetric.h
rename to src/TNL/Matrices/Legacy/EllpackSymmetric.h
diff --git a/src/TNL/Matrices/EllpackSymmetricGraph.h b/src/TNL/Matrices/Legacy/EllpackSymmetricGraph.h
similarity index 100%
rename from src/TNL/Matrices/EllpackSymmetricGraph.h
rename to src/TNL/Matrices/Legacy/EllpackSymmetricGraph.h
diff --git a/src/TNL/Matrices/EllpackSymmetricGraph_impl.h b/src/TNL/Matrices/Legacy/EllpackSymmetricGraph_impl.h
similarity index 100%
rename from src/TNL/Matrices/EllpackSymmetricGraph_impl.h
rename to src/TNL/Matrices/Legacy/EllpackSymmetricGraph_impl.h
diff --git a/src/TNL/Matrices/EllpackSymmetric_impl.h b/src/TNL/Matrices/Legacy/EllpackSymmetric_impl.h
similarity index 100%
rename from src/TNL/Matrices/EllpackSymmetric_impl.h
rename to src/TNL/Matrices/Legacy/EllpackSymmetric_impl.h
diff --git a/src/TNL/Matrices/Ellpack_impl.h b/src/TNL/Matrices/Legacy/Ellpack_impl.h
similarity index 99%
rename from src/TNL/Matrices/Ellpack_impl.h
rename to src/TNL/Matrices/Legacy/Ellpack_impl.h
index 5ae12f4087..656c3f7c2c 100644
--- a/src/TNL/Matrices/Ellpack_impl.h
+++ b/src/TNL/Matrices/Legacy/Ellpack_impl.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Ellpack.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
 #include <TNL/Containers/Vector.h>
 #include <TNL/Math.h>
 #include <TNL/Exceptions/NotImplementedError.h>
diff --git a/src/TNL/Matrices/SlicedEllpack.h b/src/TNL/Matrices/Legacy/SlicedEllpack.h
similarity index 98%
rename from src/TNL/Matrices/SlicedEllpack.h
rename to src/TNL/Matrices/Legacy/SlicedEllpack.h
index 7176019d29..b79913b235 100644
--- a/src/TNL/Matrices/SlicedEllpack.h
+++ b/src/TNL/Matrices/Legacy/SlicedEllpack.h
@@ -21,7 +21,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/Sparse.h>
+#include <TNL/Matrices/Legacy/Sparse.h>
 #include <TNL/Containers/Vector.h>
 
 namespace TNL {
@@ -235,4 +235,4 @@ public:
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/SlicedEllpack_impl.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack_impl.h>
diff --git a/src/TNL/Matrices/SlicedEllpackSymmetric.h b/src/TNL/Matrices/Legacy/SlicedEllpackSymmetric.h
similarity index 100%
rename from src/TNL/Matrices/SlicedEllpackSymmetric.h
rename to src/TNL/Matrices/Legacy/SlicedEllpackSymmetric.h
diff --git a/src/TNL/Matrices/SlicedEllpackSymmetricGraph.h b/src/TNL/Matrices/Legacy/SlicedEllpackSymmetricGraph.h
similarity index 100%
rename from src/TNL/Matrices/SlicedEllpackSymmetricGraph.h
rename to src/TNL/Matrices/Legacy/SlicedEllpackSymmetricGraph.h
diff --git a/src/TNL/Matrices/SlicedEllpackSymmetricGraph_impl.h b/src/TNL/Matrices/Legacy/SlicedEllpackSymmetricGraph_impl.h
similarity index 100%
rename from src/TNL/Matrices/SlicedEllpackSymmetricGraph_impl.h
rename to src/TNL/Matrices/Legacy/SlicedEllpackSymmetricGraph_impl.h
diff --git a/src/TNL/Matrices/SlicedEllpackSymmetric_impl.h b/src/TNL/Matrices/Legacy/SlicedEllpackSymmetric_impl.h
similarity index 100%
rename from src/TNL/Matrices/SlicedEllpackSymmetric_impl.h
rename to src/TNL/Matrices/Legacy/SlicedEllpackSymmetric_impl.h
diff --git a/src/TNL/Matrices/SlicedEllpack_impl.h b/src/TNL/Matrices/Legacy/SlicedEllpack_impl.h
similarity index 99%
rename from src/TNL/Matrices/SlicedEllpack_impl.h
rename to src/TNL/Matrices/Legacy/SlicedEllpack_impl.h
index 8c629b563c..bfba092ffd 100644
--- a/src/TNL/Matrices/SlicedEllpack_impl.h
+++ b/src/TNL/Matrices/Legacy/SlicedEllpack_impl.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 #include <TNL/Containers/Vector.h>
 #include <TNL/Math.h>
 #include <TNL/Exceptions/NotImplementedError.h>
diff --git a/src/TNL/Matrices/Sparse.h b/src/TNL/Matrices/Legacy/Sparse.h
similarity index 95%
rename from src/TNL/Matrices/Sparse.h
rename to src/TNL/Matrices/Legacy/Sparse.h
index c190024435..12c76a6a0a 100644
--- a/src/TNL/Matrices/Sparse.h
+++ b/src/TNL/Matrices/Legacy/Sparse.h
@@ -11,7 +11,7 @@
 #pragma once
 
 #include <TNL/Matrices/Matrix.h>
-#include <TNL/Matrices/SparseRow.h>
+#include <TNL/Matrices/Legacy/SparseRow.h>
 
 namespace TNL {
 namespace Matrices {
@@ -64,5 +64,5 @@ class Sparse : public Matrix< Real, Device, Index >
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/Sparse_impl.h>
+#include <TNL/Matrices/Legacy/Sparse_impl.h>
 #include <TNL/Matrices/SparseOperations.h>
diff --git a/src/TNL/Matrices/SparseRow.h b/src/TNL/Matrices/Legacy/SparseRow.h
similarity index 97%
rename from src/TNL/Matrices/SparseRow.h
rename to src/TNL/Matrices/Legacy/SparseRow.h
index f66cd2ceaf..4787e638a4 100644
--- a/src/TNL/Matrices/SparseRow.h
+++ b/src/TNL/Matrices/Legacy/SparseRow.h
@@ -80,4 +80,4 @@ std::ostream& operator<<( std::ostream& str, const SparseRow< Real, Index >& row
 } // namespace Matrices
 } // namespace TNL
 
-#include <TNL/Matrices/SparseRow_impl.h>
+#include <TNL/Matrices/Legacy/SparseRow_impl.h>
diff --git a/src/TNL/Matrices/SparseRow_impl.h b/src/TNL/Matrices/Legacy/SparseRow_impl.h
similarity index 99%
rename from src/TNL/Matrices/SparseRow_impl.h
rename to src/TNL/Matrices/Legacy/SparseRow_impl.h
index 60dfd5034e..84f8e210e2 100644
--- a/src/TNL/Matrices/SparseRow_impl.h
+++ b/src/TNL/Matrices/Legacy/SparseRow_impl.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include <TNL/Matrices/SparseRow.h>
+#include <TNL/Matrices/Legacy/SparseRow.h>
 #include <TNL/Exceptions/NotImplementedError.h>
 
 // Following includes are here to enable usage of std::vector and std::cout. To avoid having to include Device type (HOW would this be done anyway)
diff --git a/src/TNL/Matrices/Sparse_impl.h b/src/TNL/Matrices/Legacy/Sparse_impl.h
similarity index 100%
rename from src/TNL/Matrices/Sparse_impl.h
rename to src/TNL/Matrices/Legacy/Sparse_impl.h
diff --git a/src/TNL/Problems/HeatEquationProblem.h b/src/TNL/Problems/HeatEquationProblem.h
index 26df28965e..6a89742270 100644
--- a/src/TNL/Problems/HeatEquationProblem.h
+++ b/src/TNL/Problems/HeatEquationProblem.h
@@ -18,7 +18,7 @@
 
 #include <TNL/Problems/PDEProblem.h>
 #include <TNL/Operators/diffusion/LinearDiffusion.h>
-#include <TNL/Matrices/Ellpack.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
 #include <TNL/Functions/MeshFunction.h>
 #include <TNL/Timer.h>
 #include <TNL/Solvers/PDE/ExplicitUpdater.h>
diff --git a/src/TNL/Problems/PDEProblem.h b/src/TNL/Problems/PDEProblem.h
index 69d95aaeee..c81ffdd396 100644
--- a/src/TNL/Problems/PDEProblem.h
+++ b/src/TNL/Problems/PDEProblem.h
@@ -13,7 +13,7 @@
 #include <TNL/Problems/Problem.h>
 #include <TNL/Problems/CommonData.h>
 #include <TNL/Pointers/SharedPointer.h>
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 #include <TNL/Solvers/PDE/TimeDependentPDESolver.h>
 
 namespace TNL {
diff --git a/src/TNL/Solvers/Linear/Preconditioners/ILU0.h b/src/TNL/Solvers/Linear/Preconditioners/ILU0.h
index d5127fab5d..1f2b9f1981 100644
--- a/src/TNL/Solvers/Linear/Preconditioners/ILU0.h
+++ b/src/TNL/Solvers/Linear/Preconditioners/ILU0.h
@@ -15,7 +15,7 @@
 #include "Preconditioner.h"
 
 #include <TNL/Containers/Vector.h>
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 #include <TNL/Pointers/UniquePointer.h>
 #include <TNL/Exceptions/NotImplementedError.h>
 
diff --git a/src/TNL/Solvers/Linear/Preconditioners/ILUT.h b/src/TNL/Solvers/Linear/Preconditioners/ILUT.h
index cce3dc5c4b..6a4a4a83b5 100644
--- a/src/TNL/Solvers/Linear/Preconditioners/ILUT.h
+++ b/src/TNL/Solvers/Linear/Preconditioners/ILUT.h
@@ -15,7 +15,7 @@
 #include "Preconditioner.h"
 
 #include <TNL/Containers/Vector.h>
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 namespace TNL {
 namespace Solvers {
diff --git a/src/TNL/Solvers/SolverConfig_impl.h b/src/TNL/Solvers/SolverConfig_impl.h
index 9d3515157f..70e7737eee 100644
--- a/src/TNL/Solvers/SolverConfig_impl.h
+++ b/src/TNL/Solvers/SolverConfig_impl.h
@@ -16,8 +16,7 @@
 #include <TNL/Solvers/PDE/ExplicitTimeStepper.h>
 #include <TNL/Solvers/PDE/TimeDependentPDESolver.h>
 #include <TNL/Solvers/LinearSolverTypeResolver.h>
-#include <TNL/Matrices/CSR.h>
-#include <TNL/Meshes/DistributedMeshes/DistributedGrid.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 namespace TNL {
 namespace Solvers {
diff --git a/src/UnitTests/Matrices/DistributedMatrixTest.h b/src/UnitTests/Matrices/DistributedMatrixTest.h
index 93673a2906..a1a9f3eb8c 100644
--- a/src/UnitTests/Matrices/DistributedMatrixTest.h
+++ b/src/UnitTests/Matrices/DistributedMatrixTest.h
@@ -13,7 +13,7 @@
 #include <TNL/Communicators/NoDistrCommunicator.h>
 #include <TNL/Matrices/DistributedMatrix.h>
 #include <TNL/Containers/Partitioner.h>
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 using namespace TNL;
 
diff --git a/src/UnitTests/Matrices/SparseMatrixCopyTest.h b/src/UnitTests/Matrices/SparseMatrixCopyTest.h
index d100bb9398..f00daf1f3b 100644
--- a/src/UnitTests/Matrices/SparseMatrixCopyTest.h
+++ b/src/UnitTests/Matrices/SparseMatrixCopyTest.h
@@ -8,9 +8,9 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/CSR.h>
-#include <TNL/Matrices/Ellpack.h>
-#include <TNL/Matrices/SlicedEllpack.h>
+#include <TNL/Matrices/Legacy/CSR.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
+#include <TNL/Matrices/Legacy/SlicedEllpack.h>
 
 #include <TNL/Matrices/SparseMatrix.h>
 #include <TNL/Matrices/MatrixType.h>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest.h b/src/UnitTests/Matrices/SparseMatrixTest.h
index 5baeb42791..8b1d575669 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest.hpp b/src/UnitTests/Matrices/SparseMatrixTest.hpp
index 72dfc90e8e..c6ff5cbd73 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest.hpp
+++ b/src/UnitTests/Matrices/SparseMatrixTest.hpp
@@ -15,9 +15,9 @@
 #include <iostream>
 
 // Temporary, until test_OperatorEquals doesn't work for all formats.
-#include <TNL/Matrices/ChunkedEllpack.h>
-#include <TNL/Matrices/AdEllpack.h>
-#include <TNL/Matrices/BiEllpack.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack.h>
+#include <TNL/Matrices/Legacy/AdEllpack.h>
+#include <TNL/Matrices/Legacy/BiEllpack.h>
 
 #ifdef HAVE_GTEST
 #include <gtest/gtest.h>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest_AdEllpack.h b/src/UnitTests/Matrices/SparseMatrixTest_AdEllpack.h
index 7effb52cd8..2169b96df3 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest_AdEllpack.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest_AdEllpack.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/AdEllpack.h>
+#include <TNL/Matrices/Legacy/AdEllpack.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest_BiEllpack.h b/src/UnitTests/Matrices/SparseMatrixTest_BiEllpack.h
index 33e530be57..c74fa635f3 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest_BiEllpack.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest_BiEllpack.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/BiEllpack.h>
+#include <TNL/Matrices/Legacy/BiEllpack.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest_CSR.h b/src/UnitTests/Matrices/SparseMatrixTest_CSR.h
index 3530db46c1..c9dfc770f8 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest_CSR.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest_CSR.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/CSR.h>
+#include <TNL/Matrices/Legacy/CSR.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest_ChunkedEllpack.h b/src/UnitTests/Matrices/SparseMatrixTest_ChunkedEllpack.h
index 6909b53a53..45801fa3a9 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest_ChunkedEllpack.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest_ChunkedEllpack.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/ChunkedEllpack.h>
+#include <TNL/Matrices/Legacy/ChunkedEllpack.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
diff --git a/src/UnitTests/Matrices/SparseMatrixTest_Ellpack.h b/src/UnitTests/Matrices/SparseMatrixTest_Ellpack.h
index 979068e02e..26d270a3d3 100644
--- a/src/UnitTests/Matrices/SparseMatrixTest_Ellpack.h
+++ b/src/UnitTests/Matrices/SparseMatrixTest_Ellpack.h
@@ -8,7 +8,7 @@
 
 /* See Copyright Notice in tnl/Copyright */
 
-#include <TNL/Matrices/Ellpack.h>
+#include <TNL/Matrices/Legacy/Ellpack.h>
 
 #include "SparseMatrixTest.hpp"
 #include <iostream>
-- 
GitLab