From 27529fe74bae1c5e0e0c74c071047d335bd9f543 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Mon, 7 Nov 2016 22:24:06 +0100
Subject: [PATCH] Moved files for explicit template instantiation out of the
 way

---
 src/TNL/Containers/Algorithms/CMakeLists.txt  | 37 +------------------
 .../CMakeLists.txt                            | 33 +++++++++++++++++
 .../cuda-prefix-sum_impl.cu                   |  0
 .../cuda-reduction-abs-max_impl.cu            |  0
 .../cuda-reduction-abs-min_impl.cu            |  0
 .../cuda-reduction-abs-sum_impl.cu            |  0
 .../cuda-reduction-and_impl.cu                |  0
 .../cuda-reduction-diff-abs-max_impl.cu       |  0
 .../cuda-reduction-diff-abs-min_impl.cu       |  0
 .../cuda-reduction-diff-abs-sum_impl.cu       |  0
 .../cuda-reduction-diff-l2-norm_impl.cu       |  0
 .../cuda-reduction-diff-lp-norm_impl.cu       |  0
 .../cuda-reduction-diff-max_impl.cu           |  0
 .../cuda-reduction-diff-min_impl.cu           |  0
 .../cuda-reduction-diff-sum_impl.cu           |  0
 .../cuda-reduction-equalities_impl.cu         |  0
 .../cuda-reduction-inequalities_impl.cu       |  0
 .../cuda-reduction-l2-norm_impl.cu            |  0
 .../cuda-reduction-lp-norm_impl.cu            |  0
 .../cuda-reduction-max_impl.cu                |  0
 .../cuda-reduction-min_impl.cu                |  0
 .../cuda-reduction-or_impl.cu                 |  0
 .../cuda-reduction-scalar-product_impl.cu     |  0
 .../cuda-reduction-sum_impl.cu                |  0
 .../cuda-reduction_impl.cpp                   |  0
 .../Algorithms/cuda-prefix-sum_impl.cpp       | 13 -------
 26 files changed, 35 insertions(+), 48 deletions(-)
 create mode 100755 src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-prefix-sum_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-abs-max_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-abs-min_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-abs-sum_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-and_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-abs-max_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-abs-min_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-abs-sum_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-l2-norm_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-lp-norm_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-max_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-min_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-diff-sum_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-equalities_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-inequalities_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-l2-norm_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-lp-norm_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-max_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-min_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-or_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-scalar-product_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction-sum_impl.cu (100%)
 rename src/TNL/Containers/Algorithms/{ => TemplateExplicitInstantiation}/cuda-reduction_impl.cpp (100%)
 delete mode 100644 src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp

diff --git a/src/TNL/Containers/Algorithms/CMakeLists.txt b/src/TNL/Containers/Algorithms/CMakeLists.txt
index ea0148af12..f3ccab86d7 100755
--- a/src/TNL/Containers/Algorithms/CMakeLists.txt
+++ b/src/TNL/Containers/Algorithms/CMakeLists.txt
@@ -1,3 +1,5 @@
+ADD_SUBDIRECTORY( TemplateExplicitInstantiation )
+
 set( headers cuda-prefix-sum.h
              cuda-prefix-sum_impl.h
              cuda-reduction.h             
@@ -12,39 +14,4 @@ set( headers cuda-prefix-sum.h
              Multireduction_impl.h
    )
 
-SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms ) 
-IF( BUILD_CUDA )
-   set( tnl_core_cuda_CUDA__SOURCES
-        ${common_SOURCES}
-        ${CURRENT_DIR}/cuda-reduction-sum_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-min_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-max_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-and_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-or_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-equalities_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu
-        ${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu        
-        ${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu        
-        ${CURRENT_DIR}/cuda-prefix-sum_impl.cu
-        PARENT_SCOPE ) 
-endif() 
-
-set( tnl_core_cuda_SOURCES
-     ${common_SOURCES}
-     ${CURRENT_DIR}/cuda-reduction_impl.cpp
-     ${CURRENT_DIR}/cuda-prefix-sum_impl.cpp     
-     PARENT_SCOPE )               
-        
 INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/TNL/Containers/Algorithms )
diff --git a/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt
new file mode 100755
index 0000000000..266952e328
--- /dev/null
+++ b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/CMakeLists.txt
@@ -0,0 +1,33 @@
+SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation ) 
+IF( BUILD_CUDA )
+   set( tnl_core_cuda_CUDA__SOURCES
+        ${common_SOURCES}
+        ${CURRENT_DIR}/cuda-reduction-sum_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-min_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-max_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-abs-sum_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-abs-min_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-abs-max_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-and_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-or_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-l2-norm_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-lp-norm_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-equalities_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-inequalities_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-scalar-product_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-sum_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-min_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-max_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-abs-sum_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-abs-min_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-abs-max_impl.cu
+        ${CURRENT_DIR}/cuda-reduction-diff-l2-norm_impl.cu        
+        ${CURRENT_DIR}/cuda-reduction-diff-lp-norm_impl.cu        
+        ${CURRENT_DIR}/cuda-prefix-sum_impl.cu
+        PARENT_SCOPE ) 
+endif() 
+
+set( tnl_core_cuda_SOURCES
+     ${common_SOURCES}
+     ${CURRENT_DIR}/cuda-reduction_impl.cpp
+     PARENT_SCOPE )               
diff --git a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-prefix-sum_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-prefix-sum_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-max_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-max_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-max_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-min_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-min_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-min_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-abs-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-sum_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-abs-sum_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-abs-sum_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-and_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-and_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-and_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-and_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-max_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-max_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-max_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-min_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-min_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-min_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-sum_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-abs-sum_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-abs-sum_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-l2-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-l2-norm_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-l2-norm_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-l2-norm_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-lp-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-lp-norm_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-lp-norm_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-lp-norm_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-max_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-max_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-max_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-min_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-min_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-min_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-diff-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-sum_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-diff-sum_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-diff-sum_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-equalities_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-equalities_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-equalities_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-equalities_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-inequalities_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-inequalities_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-inequalities_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-inequalities_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-l2-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-l2-norm_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-l2-norm_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-l2-norm_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-lp-norm_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-lp-norm_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-lp-norm_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-lp-norm_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-max_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-max_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-max_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-max_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-min_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-min_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-min_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-min_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-or_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-or_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-or_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-or_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-scalar-product_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-scalar-product_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-scalar-product_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-scalar-product_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction-sum_impl.cu b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-sum_impl.cu
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction-sum_impl.cu
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction-sum_impl.cu
diff --git a/src/TNL/Containers/Algorithms/cuda-reduction_impl.cpp b/src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction_impl.cpp
similarity index 100%
rename from src/TNL/Containers/Algorithms/cuda-reduction_impl.cpp
rename to src/TNL/Containers/Algorithms/TemplateExplicitInstantiation/cuda-reduction_impl.cpp
diff --git a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp b/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp
deleted file mode 100644
index ebce329454..0000000000
--- a/src/TNL/Containers/Algorithms/cuda-prefix-sum_impl.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-/***************************************************************************
-                          cuda-prefix-sum_impl.cpp  -  description
-                             -------------------
-    begin                : Jan 18, 2014
-    copyright            : (C) 2014 by Tomas Oberhuber
-    email                : tomas.oberhuber@fjfi.cvut.cz
- ***************************************************************************/
-
-/* See Copyright Notice in tnl/Copyright */
-
-
-
-
-- 
GitLab