12#ifndef COMMON_DEBUG_HELPERS_H
13#define COMMON_DEBUG_HELPERS_H
19#include <Kokkos_Core.hpp>
24 std::vector<size_t>&
indices,
size_t dim,
const std::vector<size_t>&
strides) {
37 for (
size_t j = 0;
j < dim; ++
j) {
40 os << std::setw(5) <<
i;
51template <
typename ViewType>
53 static_assert(Kokkos::is_view<ViewType>::value,
"Input must be a Kokkos view");
55 if (
view.size() == 0) {
56 os <<
"[] (Empty view)\n";
61 const auto* data =
view.data();
67 for (
size_t i = 0;
i <
view.rank(); ++
i) {
72 std::string
layout = (std::is_same<typename ViewType::array_layout, Kokkos::LayoutRight>::value)
73 ?
"Kokkos::LayoutRight"
74 :
"Kokkos::LayoutLeft";
77 os <<
"View Metadata:\n";
78 os <<
" Rank: " <<
view.rank() <<
"\n";
98 os <<
"View Elements:\n";
99 os <<
"Dim" <<
view.rank() - 1 <<
":";
100 if (
view.rank() > 1) {
101 for (
size_t i = 0;
i <
view.rank() - 2; ++
i) {
106 os << std::setw(6) <<
i;
109 for (
size_t i = 0;
i <
view.rank() - 1; ++
i) {
110 os <<
"Dim" <<
i <<
" ";
void print_view_recursive(const T *data, const std::vector< size_t > &extents, std::ostream &os, std::vector< size_t > &indices, size_t dim, const std::vector< size_t > &strides)
Definition common_debug_helpers.h:23
void print_view(const ViewType &view, std::ostream &os=std::cout)
Definition common_debug_helpers.h:52
KOKKOS_INLINE_FUNCTION rtype dot(const rtype *a, const rtype *b)
Compute the dot product of two arrays.
Definition common_math.h:32
TeamLayout layout
Definition teno_setup.cpp:1813