MUDA
Loading...
Searching...
No Matches
log_proxy.inl
1#define MUDA_LOG_MATRIX(M, N) \
2 { \
3 for(int i = 0; i < (M); ++i) \
4 { \
5 for(int j = 0; j < (N); ++j) \
6 { \
7 o << val(i, j); \
8 if(j != (N)-1) \
9 o << " "; \
10 } \
11 if(i != (M)-1) \
12 o << "\n"; \
13 } \
14 return o; \
15 }
16
17namespace muda
18{
19template <typename T, int M, int N>
20MUDA_DEVICE LogProxy operator<<(LogProxy o, const Eigen::Matrix<T, M, N>& val)
21 MUDA_LOG_MATRIX(M, N);
22
23template <typename T, int M, int N, int MapOptions, typename StrideType>
24MUDA_DEVICE LogProxy operator<<(LogProxy o,
25 const Eigen::Map<Eigen::Matrix<T, M, N>, MapOptions, StrideType>& val)
26 MUDA_LOG_MATRIX(M, N);
27
28template <typename T, int M, int N, int MapOptions, typename StrideType>
29MUDA_DEVICE LogProxy operator<<(LogProxy o,
30 const Eigen::Map<const Eigen::Matrix<T, M, N>, MapOptions, StrideType>& val)
31 MUDA_LOG_MATRIX(M, N);
32
33template <typename T>
34MUDA_DEVICE LogProxy operator<<(LogProxy o, const Eigen::MatrixX<T>& val)
35 MUDA_LOG_MATRIX(val.rows(), val.cols());
36
37template <typename T>
38MUDA_DEVICE LogProxy operator<<(LogProxy o, const Eigen::VectorX<T>& val)
39 MUDA_LOG_MATRIX(val.rows(), val.cols());
40
41template <typename T>
42MUDA_DEVICE LogProxy operator<<(LogProxy o, const Eigen::RowVectorX<T>& val)
43 MUDA_LOG_MATRIX(val.rows(), val.cols());
44} // namespace muda
45
46#undef MUDA_LOG_MATRIX