summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-06-18 14:56:55 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2016-06-18 14:56:55 +0200
commit7b4c0e1cf03a94077c20f7f12ef15fb8717c74ca (patch)
treec18d714997a5e455119dbdc7f15aa96b51afff5a
parentf9947b4d7ffedcf98cdb128de835422f647e7f15 (diff)
Removed the template from the Routine base-class
-rw-r--r--include/internal/routine.h1
-rw-r--r--include/internal/routines/level1/xamax.h11
-rw-r--r--include/internal/routines/level1/xasum.h11
-rw-r--r--include/internal/routines/level1/xaxpy.h11
-rw-r--r--include/internal/routines/level1/xcopy.h11
-rw-r--r--include/internal/routines/level1/xdot.h11
-rw-r--r--include/internal/routines/level1/xnrm2.h11
-rw-r--r--include/internal/routines/level1/xscal.h11
-rw-r--r--include/internal/routines/level1/xswap.h11
-rw-r--r--include/internal/routines/level2/xgemv.h11
-rw-r--r--include/internal/routines/level2/xger.h11
-rw-r--r--include/internal/routines/level2/xher.h11
-rw-r--r--include/internal/routines/level2/xher2.h11
-rw-r--r--include/internal/routines/level2/xtbmv.h8
-rw-r--r--include/internal/routines/level2/xtpmv.h8
-rw-r--r--include/internal/routines/level2/xtrmv.h8
-rw-r--r--include/internal/routines/level3/xgemm.h11
-rw-r--r--include/internal/routines/level3/xhemm.h16
-rw-r--r--include/internal/routines/level3/xher2k.h11
-rw-r--r--include/internal/routines/level3/xherk.h11
-rw-r--r--include/internal/routines/level3/xsymm.h16
-rw-r--r--include/internal/routines/level3/xsyr2k.h11
-rw-r--r--include/internal/routines/level3/xsyrk.h11
-rw-r--r--include/internal/routines/level3/xtrmm.h16
-rw-r--r--include/internal/routines/levelx/xomatcopy.h11
-rw-r--r--src/routine.cc17
-rw-r--r--src/routines/level1/xamax.cc2
-rw-r--r--src/routines/level1/xasum.cc2
-rw-r--r--src/routines/level1/xaxpy.cc2
-rw-r--r--src/routines/level1/xcopy.cc2
-rw-r--r--src/routines/level1/xdot.cc2
-rw-r--r--src/routines/level1/xnrm2.cc2
-rw-r--r--src/routines/level1/xscal.cc2
-rw-r--r--src/routines/level1/xswap.cc2
-rw-r--r--src/routines/level2/xgemv.cc2
-rw-r--r--src/routines/level2/xger.cc2
-rw-r--r--src/routines/level2/xher.cc2
-rw-r--r--src/routines/level2/xher2.cc2
-rw-r--r--src/routines/level3/xgemm.cc2
-rw-r--r--src/routines/level3/xher2k.cc2
-rw-r--r--src/routines/level3/xherk.cc2
-rw-r--r--src/routines/level3/xsyr2k.cc2
-rw-r--r--src/routines/level3/xsyrk.cc2
-rw-r--r--src/routines/levelx/xomatcopy.cc2
44 files changed, 66 insertions, 258 deletions
diff --git a/include/internal/routine.h b/include/internal/routine.h
index c64abc4c..9db4e227 100644
--- a/include/internal/routine.h
+++ b/include/internal/routine.h
@@ -28,7 +28,6 @@ namespace clblast {
// =================================================================================================
// See comment at top of file for a description of the class
-template <typename T>
class Routine {
public:
diff --git a/include/internal/routines/level1/xamax.h b/include/internal/routines/level1/xamax.h
index 8b80044e..42f8f67c 100644
--- a/include/internal/routines/level1/xamax.h
+++ b/include/internal/routines/level1/xamax.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xamax: public Routine<T> {
+class Xamax: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xamax(Queue &queue, EventPointer event, const std::string &name = "AMAX");
diff --git a/include/internal/routines/level1/xasum.h b/include/internal/routines/level1/xasum.h
index fe8529e3..9d93a6f4 100644
--- a/include/internal/routines/level1/xasum.h
+++ b/include/internal/routines/level1/xasum.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xasum: public Routine<T> {
+class Xasum: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xasum(Queue &queue, EventPointer event, const std::string &name = "ASUM");
diff --git a/include/internal/routines/level1/xaxpy.h b/include/internal/routines/level1/xaxpy.h
index af48086a..4c8d2c1f 100644
--- a/include/internal/routines/level1/xaxpy.h
+++ b/include/internal/routines/level1/xaxpy.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xaxpy: public Routine<T> {
+class Xaxpy: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xaxpy(Queue &queue, EventPointer event, const std::string &name = "AXPY");
diff --git a/include/internal/routines/level1/xcopy.h b/include/internal/routines/level1/xcopy.h
index eb245192..c7d03dd0 100644
--- a/include/internal/routines/level1/xcopy.h
+++ b/include/internal/routines/level1/xcopy.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xcopy: public Routine<T> {
+class Xcopy: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xcopy(Queue &queue, EventPointer event, const std::string &name = "COPY");
diff --git a/include/internal/routines/level1/xdot.h b/include/internal/routines/level1/xdot.h
index ce26d267..e1968740 100644
--- a/include/internal/routines/level1/xdot.h
+++ b/include/internal/routines/level1/xdot.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xdot: public Routine<T> {
+class Xdot: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xdot(Queue &queue, EventPointer event, const std::string &name = "DOT");
diff --git a/include/internal/routines/level1/xnrm2.h b/include/internal/routines/level1/xnrm2.h
index 5186acc5..ca9268c0 100644
--- a/include/internal/routines/level1/xnrm2.h
+++ b/include/internal/routines/level1/xnrm2.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xnrm2: public Routine<T> {
+class Xnrm2: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xnrm2(Queue &queue, EventPointer event, const std::string &name = "NRM2");
diff --git a/include/internal/routines/level1/xscal.h b/include/internal/routines/level1/xscal.h
index 6c82dd89..b9430f3b 100644
--- a/include/internal/routines/level1/xscal.h
+++ b/include/internal/routines/level1/xscal.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xscal: public Routine<T> {
+class Xscal: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xscal(Queue &queue, EventPointer event, const std::string &name = "SCAL");
diff --git a/include/internal/routines/level1/xswap.h b/include/internal/routines/level1/xswap.h
index 6a568377..bd063afc 100644
--- a/include/internal/routines/level1/xswap.h
+++ b/include/internal/routines/level1/xswap.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xswap: public Routine<T> {
+class Xswap: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xswap(Queue &queue, EventPointer event, const std::string &name = "SWAP");
diff --git a/include/internal/routines/level2/xgemv.h b/include/internal/routines/level2/xgemv.h
index b1277079..e9804c62 100644
--- a/include/internal/routines/level2/xgemv.h
+++ b/include/internal/routines/level2/xgemv.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xgemv: public Routine<T> {
+class Xgemv: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xgemv(Queue &queue, EventPointer event, const std::string &name = "GEMV");
diff --git a/include/internal/routines/level2/xger.h b/include/internal/routines/level2/xger.h
index aab5075d..184f8477 100644
--- a/include/internal/routines/level2/xger.h
+++ b/include/internal/routines/level2/xger.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xger: public Routine<T> {
+class Xger: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xger(Queue &queue, EventPointer event, const std::string &name = "GER");
diff --git a/include/internal/routines/level2/xher.h b/include/internal/routines/level2/xher.h
index 97ccfde7..fca8bb97 100644
--- a/include/internal/routines/level2/xher.h
+++ b/include/internal/routines/level2/xher.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T, typename U>
-class Xher: public Routine<T> {
+class Xher: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xher(Queue &queue, EventPointer event, const std::string &name = "HER");
diff --git a/include/internal/routines/level2/xher2.h b/include/internal/routines/level2/xher2.h
index 067f85e6..9a7610f1 100644
--- a/include/internal/routines/level2/xher2.h
+++ b/include/internal/routines/level2/xher2.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xher2: public Routine<T> {
+class Xher2: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xher2(Queue &queue, EventPointer event, const std::string &name = "HER2");
diff --git a/include/internal/routines/level2/xtbmv.h b/include/internal/routines/level2/xtbmv.h
index 3ccdf3f8..493a9853 100644
--- a/include/internal/routines/level2/xtbmv.h
+++ b/include/internal/routines/level2/xtbmv.h
@@ -25,14 +25,10 @@ namespace clblast {
template <typename T>
class Xtbmv: public Xgemv<T> {
public:
-
- // Members from the base class
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
// Uses the generic matrix-vector routine
+ using Xgemv<T>::queue_;
+ using Xgemv<T>::context_;
using Xgemv<T>::MatVec;
// Constructor
diff --git a/include/internal/routines/level2/xtpmv.h b/include/internal/routines/level2/xtpmv.h
index 7619197d..ce5cae6f 100644
--- a/include/internal/routines/level2/xtpmv.h
+++ b/include/internal/routines/level2/xtpmv.h
@@ -25,14 +25,10 @@ namespace clblast {
template <typename T>
class Xtpmv: public Xgemv<T> {
public:
-
- // Members from the base class
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
// Uses the generic matrix-vector routine
+ using Xgemv<T>::queue_;
+ using Xgemv<T>::context_;
using Xgemv<T>::MatVec;
// Constructor
diff --git a/include/internal/routines/level2/xtrmv.h b/include/internal/routines/level2/xtrmv.h
index 4021b39c..4407bad7 100644
--- a/include/internal/routines/level2/xtrmv.h
+++ b/include/internal/routines/level2/xtrmv.h
@@ -25,14 +25,10 @@ namespace clblast {
template <typename T>
class Xtrmv: public Xgemv<T> {
public:
-
- // Members from the base class
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
// Uses the generic matrix-vector routine
+ using Xgemv<T>::queue_;
+ using Xgemv<T>::context_;
using Xgemv<T>::MatVec;
// Constructor
diff --git a/include/internal/routines/level3/xgemm.h b/include/internal/routines/level3/xgemm.h
index 211ae990..c0541eef 100644
--- a/include/internal/routines/level3/xgemm.h
+++ b/include/internal/routines/level3/xgemm.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xgemm: public Routine<T> {
+class Xgemm: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xgemm(Queue &queue, EventPointer event, const std::string &name = "GEMM");
diff --git a/include/internal/routines/level3/xhemm.h b/include/internal/routines/level3/xhemm.h
index a9a422b0..e0f35669 100644
--- a/include/internal/routines/level3/xhemm.h
+++ b/include/internal/routines/level3/xhemm.h
@@ -25,16 +25,14 @@ template <typename T>
class Xhemm: public Xgemm<T> {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
- // Uses the regular Xgemm routine
- using Xgemm<T>::DoGemm;
+ // Uses methods and variables the regular Xgemm routine
using Xgemm<T>::precision_;
+ using Xgemm<T>::routine_name_;
+ using Xgemm<T>::queue_;
+ using Xgemm<T>::context_;
+ using Xgemm<T>::device_;
+ using Xgemm<T>::db_;
+ using Xgemm<T>::DoGemm;
// Constructor
Xhemm(Queue &queue, EventPointer event, const std::string &name = "HEMM");
diff --git a/include/internal/routines/level3/xher2k.h b/include/internal/routines/level3/xher2k.h
index dfeb737e..b7764e18 100644
--- a/include/internal/routines/level3/xher2k.h
+++ b/include/internal/routines/level3/xher2k.h
@@ -23,18 +23,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T, typename U>
-class Xher2k: public Routine<T> {
+class Xher2k: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xher2k(Queue &queue, EventPointer event, const std::string &name = "HER2K");
diff --git a/include/internal/routines/level3/xherk.h b/include/internal/routines/level3/xherk.h
index 7ea59579..abcf4c1a 100644
--- a/include/internal/routines/level3/xherk.h
+++ b/include/internal/routines/level3/xherk.h
@@ -23,18 +23,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T, typename U>
-class Xherk: public Routine<T> {
+class Xherk: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xherk(Queue &queue, EventPointer event, const std::string &name = "HERK");
diff --git a/include/internal/routines/level3/xsymm.h b/include/internal/routines/level3/xsymm.h
index 991284f5..889abfb7 100644
--- a/include/internal/routines/level3/xsymm.h
+++ b/include/internal/routines/level3/xsymm.h
@@ -27,16 +27,14 @@ template <typename T>
class Xsymm: public Xgemm<T> {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
- // Uses the regular Xgemm routine
- using Xgemm<T>::DoGemm;
+ // Uses methods and variables the regular Xgemm routine
using Xgemm<T>::precision_;
+ using Xgemm<T>::routine_name_;
+ using Xgemm<T>::queue_;
+ using Xgemm<T>::context_;
+ using Xgemm<T>::device_;
+ using Xgemm<T>::db_;
+ using Xgemm<T>::DoGemm;
// Constructor
Xsymm(Queue &queue, EventPointer event, const std::string &name = "SYMM");
diff --git a/include/internal/routines/level3/xsyr2k.h b/include/internal/routines/level3/xsyr2k.h
index aefd016d..f75c91e5 100644
--- a/include/internal/routines/level3/xsyr2k.h
+++ b/include/internal/routines/level3/xsyr2k.h
@@ -23,18 +23,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xsyr2k: public Routine<T> {
+class Xsyr2k: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xsyr2k(Queue &queue, EventPointer event, const std::string &name = "SYR2K");
diff --git a/include/internal/routines/level3/xsyrk.h b/include/internal/routines/level3/xsyrk.h
index 75726496..0710fa74 100644
--- a/include/internal/routines/level3/xsyrk.h
+++ b/include/internal/routines/level3/xsyrk.h
@@ -25,18 +25,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xsyrk: public Routine<T> {
+class Xsyrk: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xsyrk(Queue &queue, EventPointer event, const std::string &name = "SYRK");
diff --git a/include/internal/routines/level3/xtrmm.h b/include/internal/routines/level3/xtrmm.h
index caf1ca75..e18ad17a 100644
--- a/include/internal/routines/level3/xtrmm.h
+++ b/include/internal/routines/level3/xtrmm.h
@@ -26,16 +26,14 @@ template <typename T>
class Xtrmm: public Xgemm<T> {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
- // Uses the regular Xgemm routine
- using Xgemm<T>::DoGemm;
+ // Uses methods and variables the regular Xgemm routine
using Xgemm<T>::precision_;
+ using Xgemm<T>::routine_name_;
+ using Xgemm<T>::queue_;
+ using Xgemm<T>::context_;
+ using Xgemm<T>::device_;
+ using Xgemm<T>::db_;
+ using Xgemm<T>::DoGemm;
// Constructor
Xtrmm(Queue &queue, EventPointer event, const std::string &name = "TRMM");
diff --git a/include/internal/routines/levelx/xomatcopy.h b/include/internal/routines/levelx/xomatcopy.h
index e5c0529f..d2acb50d 100644
--- a/include/internal/routines/levelx/xomatcopy.h
+++ b/include/internal/routines/levelx/xomatcopy.h
@@ -21,18 +21,9 @@ namespace clblast {
// See comment at top of file for a description of the class
template <typename T>
-class Xomatcopy: public Routine<T> {
+class Xomatcopy: public Routine {
public:
- // Members and methods from the base class
- using Routine<T>::db_;
- using Routine<T>::source_string_;
- using Routine<T>::queue_;
- using Routine<T>::device_;
- using Routine<T>::event_;
- using Routine<T>::context_;
- using Routine<T>::routine_name_;
-
// Constructor
Xomatcopy(Queue &queue, EventPointer event, const std::string &name = "OMATCOPY");
diff --git a/src/routine.cc b/src/routine.cc
index 1086aead..9b1640b5 100644
--- a/src/routine.cc
+++ b/src/routine.cc
@@ -20,9 +20,8 @@ namespace clblast {
// =================================================================================================
// Constructor: not much here, because no status codes can be returned
-template <typename T>
-Routine<T>::Routine(Queue &queue, EventPointer event, const std::string &name,
- const std::vector<std::string> &routines, const Precision precision):
+Routine::Routine(Queue &queue, EventPointer event, const std::string &name,
+ const std::vector<std::string> &routines, const Precision precision):
precision_(precision),
routine_name_(name),
queue_(queue),
@@ -36,8 +35,7 @@ Routine<T>::Routine(Queue &queue, EventPointer event, const std::string &name,
// =================================================================================================
// Separate set-up function to allow for status codes to be returned
-template <typename T>
-StatusCode Routine<T>::SetUp() {
+StatusCode Routine::SetUp() {
// Queries the cache to see whether or not the program (context-specific) is already there
if (ProgramIsInCache(context_, precision_, routine_name_)) { return StatusCode::kSuccess; }
@@ -175,13 +173,4 @@ StatusCode RunKernel(Kernel &kernel, Queue queue, const Device device,
}
// =================================================================================================
-
-// Compiles the templated class
-template class Routine<half>;
-template class Routine<float>;
-template class Routine<double>;
-template class Routine<float2>;
-template class Routine<double2>;
-
-// =================================================================================================
} // namespace clblast
diff --git a/src/routines/level1/xamax.cc b/src/routines/level1/xamax.cc
index 1a3441ef..b4add2a3 100644
--- a/src/routines/level1/xamax.cc
+++ b/src/routines/level1/xamax.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xamax<T>::Xamax(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/xamax.opencl"
;
diff --git a/src/routines/level1/xasum.cc b/src/routines/level1/xasum.cc
index 85c6e1ed..80f04829 100644
--- a/src/routines/level1/xasum.cc
+++ b/src/routines/level1/xasum.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xasum<T>::Xasum(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/xasum.opencl"
;
diff --git a/src/routines/level1/xaxpy.cc b/src/routines/level1/xaxpy.cc
index 39121067..4a548757 100644
--- a/src/routines/level1/xaxpy.cc
+++ b/src/routines/level1/xaxpy.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xaxpy<T>::Xaxpy(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/level1.opencl"
#include "../../kernels/level1/xaxpy.opencl"
diff --git a/src/routines/level1/xcopy.cc b/src/routines/level1/xcopy.cc
index d85efca3..92d31786 100644
--- a/src/routines/level1/xcopy.cc
+++ b/src/routines/level1/xcopy.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xcopy<T>::Xcopy(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/level1.opencl"
#include "../../kernels/level1/xcopy.opencl"
diff --git a/src/routines/level1/xdot.cc b/src/routines/level1/xdot.cc
index e3a6b1f0..8709c541 100644
--- a/src/routines/level1/xdot.cc
+++ b/src/routines/level1/xdot.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xdot<T>::Xdot(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/xdot.opencl"
;
diff --git a/src/routines/level1/xnrm2.cc b/src/routines/level1/xnrm2.cc
index 1730e144..105f991c 100644
--- a/src/routines/level1/xnrm2.cc
+++ b/src/routines/level1/xnrm2.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xnrm2<T>::Xnrm2(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xdot"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/xnrm2.opencl"
;
diff --git a/src/routines/level1/xscal.cc b/src/routines/level1/xscal.cc
index 4792d40b..3c1b5257 100644
--- a/src/routines/level1/xscal.cc
+++ b/src/routines/level1/xscal.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xscal<T>::Xscal(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/level1.opencl"
#include "../../kernels/level1/xscal.opencl"
diff --git a/src/routines/level1/xswap.cc b/src/routines/level1/xswap.cc
index 897515fb..27eb9b13 100644
--- a/src/routines/level1/xswap.cc
+++ b/src/routines/level1/xswap.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xswap<T>::Xswap(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xaxpy"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level1/level1.opencl"
#include "../../kernels/level1/xswap.opencl"
diff --git a/src/routines/level2/xgemv.cc b/src/routines/level2/xgemv.cc
index ea3b245d..ccadd131 100644
--- a/src/routines/level2/xgemv.cc
+++ b/src/routines/level2/xgemv.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xgemv<T>::Xgemv(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Pad", "Xgemv"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Pad", "Xgemv"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level2/xgemv.opencl"
#include "../../kernels/level2/xgemv_fast.opencl"
diff --git a/src/routines/level2/xger.cc b/src/routines/level2/xger.cc
index e487d41b..6ceaa00e 100644
--- a/src/routines/level2/xger.cc
+++ b/src/routines/level2/xger.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xger<T>::Xger(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level2/level2.opencl"
#include "../../kernels/level2/xger.opencl"
diff --git a/src/routines/level2/xher.cc b/src/routines/level2/xher.cc
index 08ff5a2e..939e17bb 100644
--- a/src/routines/level2/xher.cc
+++ b/src/routines/level2/xher.cc
@@ -21,7 +21,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T, typename U>
Xher<T,U>::Xher(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level2/level2.opencl"
#include "../../kernels/level2/xher.opencl"
diff --git a/src/routines/level2/xher2.cc b/src/routines/level2/xher2.cc
index d5d4323b..95dbd87a 100644
--- a/src/routines/level2/xher2.cc
+++ b/src/routines/level2/xher2.cc
@@ -21,7 +21,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xher2<T>::Xher2(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Xger"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level2/level2.opencl"
#include "../../kernels/level2/xher2.opencl"
diff --git a/src/routines/level3/xgemm.cc b/src/routines/level3/xgemm.cc
index 7d06c2a2..8386ad09 100644
--- a/src/routines/level3/xgemm.cc
+++ b/src/routines/level3/xgemm.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xgemm<T>::Xgemm(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"
diff --git a/src/routines/level3/xher2k.cc b/src/routines/level3/xher2k.cc
index 0e5178df..bd0f83dd 100644
--- a/src/routines/level3/xher2k.cc
+++ b/src/routines/level3/xher2k.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T, typename U>
Xher2k<T,U>::Xher2k(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"
diff --git a/src/routines/level3/xherk.cc b/src/routines/level3/xherk.cc
index f8ec217a..6155734a 100644
--- a/src/routines/level3/xherk.cc
+++ b/src/routines/level3/xherk.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T, typename U>
Xherk<T,U>::Xherk(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"
diff --git a/src/routines/level3/xsyr2k.cc b/src/routines/level3/xsyr2k.cc
index b517520c..f9655889 100644
--- a/src/routines/level3/xsyr2k.cc
+++ b/src/routines/level3/xsyr2k.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xsyr2k<T>::Xsyr2k(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"
diff --git a/src/routines/level3/xsyrk.cc b/src/routines/level3/xsyrk.cc
index ccf8710c..bceb6afd 100644
--- a/src/routines/level3/xsyrk.cc
+++ b/src/routines/level3/xsyrk.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xsyrk<T>::Xsyrk(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose","Xgemm"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"
diff --git a/src/routines/levelx/xomatcopy.cc b/src/routines/levelx/xomatcopy.cc
index c724b56b..6e4bddb2 100644
--- a/src/routines/levelx/xomatcopy.cc
+++ b/src/routines/levelx/xomatcopy.cc
@@ -22,7 +22,7 @@ namespace clblast {
// Constructor: forwards to base class constructor
template <typename T>
Xomatcopy<T>::Xomatcopy(Queue &queue, EventPointer event, const std::string &name):
- Routine<T>(queue, event, name, {"Copy","Pad","Transpose","Padtranspose"}, PrecisionValue<T>()) {
+ Routine(queue, event, name, {"Copy","Pad","Transpose","Padtranspose"}, PrecisionValue<T>()) {
source_string_ =
#include "../../kernels/level3/level3.opencl"
#include "../../kernels/level3/copy_fast.opencl"