summaryrefslogtreecommitdiff
path: root/src/routines/level2
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-05-22 16:59:14 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2016-05-22 16:59:14 +0200
commit3e9a07f00ad62c9d0e27c385249ed2b510acceff (patch)
treed82ac3f95170daecccf47fd49b48f458efb3a351 /src/routines/level2
parentf0cb3fdc81031625370d58da77f7cbe73fc130a7 (diff)
Added level-2 half-precision routines HGER/HSYR/HSPR/HSYR2/HSPR2
Diffstat (limited to 'src/routines/level2')
-rw-r--r--src/routines/level2/xger.cc2
-rw-r--r--src/routines/level2/xher.cc3
-rw-r--r--src/routines/level2/xher2.cc2
-rw-r--r--src/routines/level2/xspr.cc1
-rw-r--r--src/routines/level2/xspr2.cc1
-rw-r--r--src/routines/level2/xsyr.cc1
-rw-r--r--src/routines/level2/xsyr2.cc1
7 files changed, 11 insertions, 0 deletions
diff --git a/src/routines/level2/xger.cc b/src/routines/level2/xger.cc
index 47d7abe2..d1f98990 100644
--- a/src/routines/level2/xger.cc
+++ b/src/routines/level2/xger.cc
@@ -20,6 +20,7 @@ namespace clblast {
// =================================================================================================
// Specific implementations to get the memory-type based on a template argument
+template <> const Precision Xger<half>::precision_ = Precision::kHalf;
template <> const Precision Xger<float>::precision_ = Precision::kSingle;
template <> const Precision Xger<double>::precision_ = Precision::kDouble;
template <> const Precision Xger<float2>::precision_ = Precision::kComplexSingle;
@@ -104,6 +105,7 @@ StatusCode Xger<T>::DoGer(const Layout layout,
// =================================================================================================
// Compiles the templated class
+template class Xger<half>;
template class Xger<float>;
template class Xger<double>;
template class Xger<float2>;
diff --git a/src/routines/level2/xher.cc b/src/routines/level2/xher.cc
index 852e3f15..73e7a47d 100644
--- a/src/routines/level2/xher.cc
+++ b/src/routines/level2/xher.cc
@@ -19,6 +19,7 @@ namespace clblast {
// =================================================================================================
// Specific implementations to get the memory-type based on a template argument
+template <> const Precision Xher<half, half>::precision_ = Precision::kHalf;
template <> const Precision Xher<float, float>::precision_ = Precision::kSingle;
template <> const Precision Xher<double, double>::precision_ = Precision::kDouble;
template <> const Precision Xher<float2, float>::precision_ = Precision::kComplexSingle;
@@ -43,6 +44,7 @@ template <> float2 Xher<float2,float>::GetAlpha(const float alpha) { return floa
template <> double2 Xher<double2,double>::GetAlpha(const double alpha) { return double2{alpha, 0.0}; }
template <> float Xher<float,float>::GetAlpha(const float alpha) { return alpha; }
template <> double Xher<double,double>::GetAlpha(const double alpha) { return alpha; }
+template <> half Xher<half,half>::GetAlpha(const half alpha) { return alpha; }
// =================================================================================================
@@ -114,6 +116,7 @@ StatusCode Xher<T,U>::DoHer(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xher<half, half>;
template class Xher<float, float>;
template class Xher<double, double>;
template class Xher<float2, float>;
diff --git a/src/routines/level2/xher2.cc b/src/routines/level2/xher2.cc
index 82052187..a73dde52 100644
--- a/src/routines/level2/xher2.cc
+++ b/src/routines/level2/xher2.cc
@@ -19,6 +19,7 @@ namespace clblast {
// =================================================================================================
// Specific implementations to get the memory-type based on a template argument
+template <> const Precision Xher2<half>::precision_ = Precision::kHalf;
template <> const Precision Xher2<float>::precision_ = Precision::kSingle;
template <> const Precision Xher2<double>::precision_ = Precision::kDouble;
template <> const Precision Xher2<float2>::precision_ = Precision::kComplexSingle;
@@ -106,6 +107,7 @@ StatusCode Xher2<T>::DoHer2(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xher2<half>;
template class Xher2<float>;
template class Xher2<double>;
template class Xher2<float2>;
diff --git a/src/routines/level2/xspr.cc b/src/routines/level2/xspr.cc
index 55af2f29..c556b920 100644
--- a/src/routines/level2/xspr.cc
+++ b/src/routines/level2/xspr.cc
@@ -44,6 +44,7 @@ StatusCode Xspr<T>::DoSpr(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xspr<half>;
template class Xspr<float>;
template class Xspr<double>;
diff --git a/src/routines/level2/xspr2.cc b/src/routines/level2/xspr2.cc
index 9a3f97ce..c4ad5dc4 100644
--- a/src/routines/level2/xspr2.cc
+++ b/src/routines/level2/xspr2.cc
@@ -46,6 +46,7 @@ StatusCode Xspr2<T>::DoSpr2(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xspr2<half>;
template class Xspr2<float>;
template class Xspr2<double>;
diff --git a/src/routines/level2/xsyr.cc b/src/routines/level2/xsyr.cc
index 4b3928e5..892517d7 100644
--- a/src/routines/level2/xsyr.cc
+++ b/src/routines/level2/xsyr.cc
@@ -43,6 +43,7 @@ StatusCode Xsyr<T>::DoSyr(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xsyr<half>;
template class Xsyr<float>;
template class Xsyr<double>;
diff --git a/src/routines/level2/xsyr2.cc b/src/routines/level2/xsyr2.cc
index 3ae389e0..e6dfd158 100644
--- a/src/routines/level2/xsyr2.cc
+++ b/src/routines/level2/xsyr2.cc
@@ -45,6 +45,7 @@ StatusCode Xsyr2<T>::DoSyr2(const Layout layout, const Triangle triangle,
// =================================================================================================
// Compiles the templated class
+template class Xsyr2<half>;
template class Xsyr2<float>;
template class Xsyr2<double>;