10#ifndef TLAPACK_CUDA_UTILS_HH
11#define TLAPACK_CUDA_UTILS_HH
20using std::enable_if_t;
27 template <
class...
Ts>
29 static constexpr bool value =
false;
33 template <
class...
Ts>
37 template <
class...
Ts>
39#ifdef STARPU_HAVE_LIBCUSOLVER
51 static constexpr bool value =
true;
56 static constexpr bool value =
true;
59 template <
class T1,
class T2,
class...
Ts>
60 struct is_cublas<
T1,
T2,
Ts...> {
62 static constexpr bool value = is_cublas<T1, int>::value &&
63 is_cublas<
T2,
Ts...>::value &&
64 std::is_constructible_v<T, T1>;
Concept for types that represent tlapack::Diag.
Concept for types that represent tlapack::Op.
Concept for types that represent tlapack::Side.
Concept for types that represent tlapack::Uplo.
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
@ Unit
The main diagonal is assumed to consist of 1's.
@ NonUnit
The main diagonal is not assumed to consist of 1's.
typename traits::scalar_type_traits< Types..., int >::type scalar_type
The common scalar type of the list of types.
Definition scalar_type_traits.hpp:250
constexpr auto diag(T &A, int diagIdx=0) noexcept
Get the Diagonal of an Eigen Matrix.
Definition eigen.hpp:576
@ Conj
non-transpose conjugate
@ ConjTrans
conjugate transpose
@ Upper
0 <= i <= j, 0 <= j <= n.
@ Lower
0 <= i <= m, 0 <= j <= i.
constexpr bool is_cublas_v
Alias for is_cublas<>::value.
Definition utils.hpp:34
constexpr bool is_cusolver_v
True if a type is supported by cuSOLVER.
Definition utils.hpp:38
Strong zero type.
Definition StrongZero.hpp:43
Check if a type is supported by cuBLAS.
Definition utils.hpp:28