13#ifndef TLAPACK_TESTDEFINITIONS_HH
14#define TLAPACK_TESTDEFINITIONS_HH
18#ifdef TLAPACK_TEST_EIGEN
24#ifdef TLAPACK_TEST_MDSPAN
28#ifdef TLAPACK_TEST_MPFR
32#ifdef TLAPACK_TEST_QUAD
40#ifndef TLAPACK_REAL_TYPES_TO_TEST
42 #ifndef TLAPACK_LEGACY_REAL_TYPES_TO_TEST
43 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST \
44 (tlapack::LegacyMatrix<float, std::size_t, \
45 tlapack::Layout::ColMajor>), \
46 (tlapack::LegacyMatrix<double, std::size_t, \
47 tlapack::Layout::ColMajor>), \
48 (tlapack::LegacyMatrix<float, std::size_t, \
49 tlapack::Layout::RowMajor>), \
50 (tlapack::LegacyMatrix<double, std::size_t, \
51 tlapack::Layout::RowMajor>)
62 #ifdef TLAPACK_TEST_MPFR
63 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL \
64 , tlapack::LegacyMatrix<mpfr::mpreal>
67 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL
70 #ifdef TLAPACK_TEST_QUAD
71 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD \
72 , tlapack::LegacyMatrix<__float128>
75 #define TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD
78 #ifdef TLAPACK_TEST_EIGEN
79 #define TLAPACK_EIGEN_REAL_TYPES_TO_TEST \
80 , Eigen::MatrixXf, Eigen::MatrixXd, \
81 (Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, \
83 (Eigen::Matrix<Eigen::half, Eigen::Dynamic, Eigen::Dynamic>)
85 #define TLAPACK_EIGEN_REAL_TYPES_TO_TEST
88 #ifdef TLAPACK_TEST_MDSPAN
89 #define TLAPACK_MDSPAN_REAL_TYPES_TO_TEST \
91 (std::experimental::mdspan< \
92 float, std::experimental::dextents<std::size_t, 2>, \
93 std::experimental::layout_left>), \
94 (std::experimental::mdspan< \
95 float, std::experimental::dextents<std::size_t, 2>, \
96 std::experimental::layout_right>)
97template class std::experimental::mdspan<
99 std::experimental::dextents<std::size_t, 2>,
100 std::experimental::layout_left>;
101template class std::experimental::mdspan<
103 std::experimental::dextents<std::size_t, 2>,
104 std::experimental::layout_right>;
106 #define TLAPACK_MDSPAN_REAL_TYPES_TO_TEST
109 #define TLAPACK_REAL_TYPES_TO_TEST \
110 TLAPACK_LEGACY_REAL_TYPES_TO_TEST \
111 TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_MPREAL \
112 TLAPACK_EIGEN_REAL_TYPES_TO_TEST \
113 TLAPACK_MDSPAN_REAL_TYPES_TO_TEST \
114 TLAPACK_LEGACY_REAL_TYPES_TO_TEST_WITH_QUAD
121#ifndef TLAPACK_COMPLEX_TYPES_TO_TEST
123 #ifndef TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST
124 #define TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST \
125 (tlapack::LegacyMatrix<std::complex<float>, std::size_t, \
126 tlapack::Layout::ColMajor>), \
127 (tlapack::LegacyMatrix<std::complex<double>, std::size_t, \
128 tlapack::Layout::ColMajor>), \
129 (tlapack::LegacyMatrix<std::complex<float>, std::size_t, \
130 tlapack::Layout::RowMajor>), \
131 (tlapack::LegacyMatrix<std::complex<double>, std::size_t, \
132 tlapack::Layout::RowMajor>)
143 #ifdef TLAPACK_TEST_EIGEN
144 #define TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST \
145 , Eigen::MatrixXcf, Eigen::MatrixXcd, \
146 (Eigen::Matrix<std::complex<float>, Eigen::Dynamic, \
147 Eigen::Dynamic, Eigen::RowMajor>)
149 #define TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST
152 #define TLAPACK_COMPLEX_TYPES_TO_TEST \
153 TLAPACK_LEGACY_COMPLEX_TYPES_TO_TEST \
154 TLAPACK_EIGEN_COMPLEX_TYPES_TO_TEST
161#ifndef TLAPACK_TYPES_TO_TEST
162 #define TLAPACK_TYPES_TO_TEST \
163 TLAPACK_REAL_TYPES_TO_TEST, TLAPACK_COMPLEX_TYPES_TO_TEST
Eigen::bfloat16 compatibility with tlapack::concepts::Real.
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