blob: 49e1bb0767e5fe01ea7994979c3b33a91b395601 [file] [log] [blame]
#ifndef TEST_PACKET_OSTREAM
#define TEST_PACKET_OSTREAM
#include <type_traits>
#include <ostream>
// Include this header to be able to print Packets while debugging.
template <typename Packet,
typename EnableIf = std::enable_if_t<Eigen::internal::unpacket_traits<Packet>::vectorizable> >
std::ostream& operator<<(std::ostream& os, const Packet& packet) {
using Scalar = typename Eigen::internal::unpacket_traits<Packet>::type;
Scalar v[Eigen::internal::unpacket_traits<Packet>::size];
Eigen::internal::pstoreu(v, packet);
os << "{" << v[0];
for (int i = 1; i < Eigen::internal::unpacket_traits<Packet>::size; ++i) {
os << "," << v[i];
}
os << "}";
return os;
}
#endif // TEST_PACKET_OSTREAM