10#ifndef TLAPACK_ARRAY_TRAITS_HH 
   11#define TLAPACK_ARRAY_TRAITS_HH 
   18using std::enable_if_t;
 
   39    template <
class T, 
class = 
int>
 
   60    template <
class T, 
class = 
int>
 
   62        using type = std::size_t;
 
 
   74    template <
class array_t, 
class = 
int>
 
   88    template <
class matrix_t, 
class = 
int>
 
   90        static_assert(
false && 
sizeof(matrix_t),
 
   91                      "Must use correct specialization");
 
  104        template <
class T, 
class idx_t>
 
  105        constexpr auto operator()(std::vector<T>& v, idx_t m, idx_t n = 1)
 const 
 
  120        template <
class T, 
class idx_t>
 
 
  140    template <
class matrix_t, 
int m, 
int n, 
class = 
int>
 
  142        static_assert(
false && 
sizeof(matrix_t),
 
  143                      "Must use correct specialization");
 
  144        static_assert(m >= 0 && n >= -1);
 
  156        template <
typename T>
 
 
  175    template <
class... matrix_t>
 
  179    template <
class matrix_t>
 
  185    template <
class matrixA_t, 
class matrixB_t, 
class... matrix_t>
 
  202    template <
class... vector_t>
 
  206    template <
class vector_t>
 
  212    template <
class vectorA_t, 
class vectorB_t, 
class... vector_t>
 
  224using type_t = 
typename traits::entry_type_trait<T, int>::type;
 
  228using size_type = 
typename traits::size_type_trait<T, int>::type;
 
  231template <
class array_t>
 
  272template <
class T, 
int m, 
int n = -1>
 
  276template <
class... matrix_t>
 
  280template <
class... vector_t>
 
 
Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D' ).
Definition arrayTraits.hpp:15
 
typename traits::entry_type_trait< T, int >::type type_t
Entry type of a matrix or vector.
Definition arrayTraits.hpp:224
 
typename traits::vector_type_traits< vector_t..., int >::type vector_type
Common vector type deduced from the list of types.
Definition arrayTraits.hpp:281
 
typename traits::size_type_trait< T, int >::type size_type
Size type of a matrix or vector.
Definition arrayTraits.hpp:228
 
constexpr Layout layout
Layout of a matrix or vector.
Definition arrayTraits.hpp:232
 
typename traits::matrix_type_traits< matrix_t..., int >::type matrix_type
Common matrix type deduced from the list of types.
Definition arrayTraits.hpp:277
 
Layout
Definition types.hpp:29
 
@ Unspecified
Used on all other data structures.
 
Functor for data creation.
Definition arrayTraits.hpp:89
 
constexpr auto operator()(std::vector< T > &v, idx_t n) const
Creates a vector of size n with entries of type T.
Definition arrayTraits.hpp:121
 
constexpr auto operator()(std::vector< T > &v, idx_t m, idx_t n=1) const
Creates a m-by-n matrix with entries of type T.
Definition arrayTraits.hpp:105
 
Functor for data creation with static size.
Definition arrayTraits.hpp:141
 
constexpr auto operator()(T *v) const
Creates a m-by-n matrix or, if n == -1, a vector of size m.
Definition arrayTraits.hpp:157
 
Entry type trait.
Definition arrayTraits.hpp:40
 
Trait to determine the layout of a given data structure.
Definition arrayTraits.hpp:75
 
Matrix type deduction.
Definition arrayTraits.hpp:176
 
Size type trait.
Definition arrayTraits.hpp:61
 
Vector type deduction.
Definition arrayTraits.hpp:203