summaryrefslogtreecommitdiff
path: root/src/routines/level2
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-02-04 22:48:06 +0100
committerCedric Nugteren <web@cedricnugteren.nl>2017-02-04 22:48:06 +0100
commitc209dd7af90d604c8210cc5680b6c7a50b2b995f (patch)
tree4987a7af1eb34efd6bb6cfcdf249bff01e0073ec /src/routines/level2
parentfec8c1a8069a2307b8d3aba118ebb61b94871996 (diff)
Improved substition kernels a bit; added complex support
Diffstat (limited to 'src/routines/level2')
-rw-r--r--src/routines/level2/xtrsv.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/routines/level2/xtrsv.cpp b/src/routines/level2/xtrsv.cpp
index 6e651e33..b0e4c5ae 100644
--- a/src/routines/level2/xtrsv.cpp
+++ b/src/routines/level2/xtrsv.cpp
@@ -44,6 +44,7 @@ void Xtrsv<T>::Substitution(const Layout layout, const Triangle triangle,
const auto is_unit_diagonal = (diagonal == Diagonal::kNonUnit) ? 0 : 1;
const auto is_transposed = ((a_transpose == Transpose::kNo && layout == Layout::kColMajor) ||
(a_transpose != Transpose::kNo && layout != Layout::kColMajor)) ? 0 : 1;
+ const auto do_conjugate = (a_transpose == Transpose::kConjugate) ? 1 : 0;
// The data is either in the upper or lower triangle
const auto is_upper = ((triangle == Triangle::kUpper && a_transpose == Transpose::kNo) ||
@@ -66,6 +67,7 @@ void Xtrsv<T>::Substitution(const Layout layout, const Triangle triangle,
kernel.SetArgument(9, static_cast<int>(x_inc));
kernel.SetArgument(10, static_cast<int>(is_transposed));
kernel.SetArgument(11, static_cast<int>(is_unit_diagonal));
+ kernel.SetArgument(12, static_cast<int>(do_conjugate));
// Launches the kernel
const auto local = std::vector<size_t>{db_["TRSV_BLOCK_SIZE"]};