diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2017-02-04 22:48:06 +0100 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2017-02-04 22:48:06 +0100 |
commit | c209dd7af90d604c8210cc5680b6c7a50b2b995f (patch) | |
tree | 4987a7af1eb34efd6bb6cfcdf249bff01e0073ec /src/routines/level2 | |
parent | fec8c1a8069a2307b8d3aba118ebb61b94871996 (diff) |
Improved substition kernels a bit; added complex support
Diffstat (limited to 'src/routines/level2')
-rw-r--r-- | src/routines/level2/xtrsv.cpp | 2 |
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"]}; |