13#ifndef TLAPACK_TESTDEFINITIONS_HH
14#define TLAPACK_TESTDEFINITIONS_HH
18#ifdef TLAPACK_TEST_EIGEN
23#ifdef TLAPACK_TEST_MDSPAN
27#ifdef TLAPACK_TEST_MPFR
31#ifdef TLAPACK_TEST_QUAD
39#ifndef TLAPACK_REAL_TYPES_TO_TEST
41 #ifndef TLAPACK_LEGACY_REAL_TYPES_TO_TEST
42 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST \
43 (tlapack::LegacyMatrix<float, std::size_t, \
44 tlapack::Layout::ColMajor>), \
45 (tlapack::LegacyMatrix<double, std::size_t, \
46 tlapack::Layout::ColMajor>), \
47 (tlapack::LegacyMatrix<float, std::size_t, \
48 tlapack::Layout::RowMajor>), \
49 (tlapack::LegacyMatrix<double, std::size_t, \
50 tlapack::Layout::RowMajor>)
61 #ifdef TLAPACK_TEST_MPFR
62 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL \
63 , tlapack::LegacyMatrix<mpfr::mpreal>
66 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL
69 #ifdef TLAPACK_TEST_QUAD
70 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD \
71 , tlapack::LegacyMatrix<__float128>
74 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD
77 #ifdef TLAPACK_TEST_EIGEN
78 #define TLAPACK_EIGEN_REAL_TYPES_TO_TEST \
79 , Eigen::MatrixXf, Eigen::MatrixXd, \
80 (Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, \
82 (Eigen::Matrix<Eigen::half, Eigen::Dynamic, Eigen::Dynamic>)
84 #define TLAPACK_EIGEN_REAL_TYPES_TO_TEST
87 #ifdef TLAPACK_TEST_MDSPAN
88 #define TLAPACK_MDSPAN_REAL_TYPES_TO_TEST \
90 (std::experimental::mdspan< \
91 float, std::experimental::dextents<std::size_t, 2>, \
92 std::experimental::layout_left>), \
93 (std::experimental::mdspan< \
94 float, std::experimental::dextents<std::size_t, 2>, \
95 std::experimental::layout_right>)
96template class std::experimental::mdspan<
98 std::experimental::dextents<std::size_t, 2>,
99 std::experimental::layout_left>;
100template class std::experimental::mdspan<
102 std::experimental::dextents<std::size_t, 2>,
103 std::experimental::layout_right>;
105 #define TLAPACK_MDSPAN_REAL_TYPES_TO_TEST
108 #define TLAPACK_REAL_TYPES_TO_TEST \
109 TLAPACK_LEGACY_REAL_TYPES_TO_TEST \
110 TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL \
111 TLAPACK_EIGEN_REAL_TYPES_TO_TEST \
112 TLAPACK_MDSPAN_REAL_TYPES_TO_TEST \
113 TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD
120#ifndef TLAPACK_COMPLEX_TYPES_TO_TEST
122 #ifndef TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST
123 #define TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST \
124 (tlapack::LegacyMatrix<std::complex<float>, std::size_t, \
125 tlapack::Layout::ColMajor>), \
126 (tlapack::LegacyMatrix<std::complex<double>, std::size_t, \
127 tlapack::Layout::ColMajor>), \
128 (tlapack::LegacyMatrix<std::complex<float>, std::size_t, \
129 tlapack::Layout::RowMajor>), \
130 (tlapack::LegacyMatrix<std::complex<double>, std::size_t, \
131 tlapack::Layout::RowMajor>)
142 #ifdef TLAPACK_TEST_EIGEN
143 #define TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST \
144 , Eigen::MatrixXcf, Eigen::MatrixXcd, \
145 (Eigen::Matrix<std::complex<float>, Eigen::Dynamic, \
146 Eigen::Dynamic, Eigen::RowMajor>)
148 #define TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST
151 #define TLAPACK_COMPLEX_TYPES_TO_TEST \
152 TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST \
153 TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST
160#ifndef TLAPACK_TYPES_TO_TEST
161 #define TLAPACK_TYPES_TO_TEST \
162 TLAPACK_REAL_TYPES_TO_TEST, TLAPACK_COMPLEX_TYPES_TO_TEST
Eigen::half compatibility with tlapack::concepts::Real.
Compatibility layer for the GNU type __float128.
mpfr::mpreal compatibility with tlapack::concepts::Real
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