Add stream operator for Index (#1116)
authorVitaliy Cherepanov/AI Tools Lab /SRR/Engineer/삼성전자 <v.cherepanov@samsung.com>
Tue, 21 Aug 2018 18:10:19 +0000 (21:10 +0300)
committerРоман Михайлович Русяев/AI Tools Lab /SRR/Staff Engineer/삼성전자 <r.rusyaev@samsung.com>
Tue, 21 Aug 2018 18:10:19 +0000 (21:10 +0300)
This commit adds stream operator for Index

contrib/nnc/libs/core/include/nnc/core/linalg/Index.h
contrib/nnc/libs/core/src/core/linalg/Index.cpp

index 0e329e6..9394c99 100644 (file)
@@ -4,6 +4,7 @@
 #include <initializer_list>
 #include <vector>
 #include <cstdint>
+#include <ostream>
 
 namespace nncc
 {
@@ -37,6 +38,8 @@ private:
   std::vector<uint32_t> _indices;
 };
 
+std::ostream &operator<<(std::ostream &s, const Index &sh);
+
 } // namespace data
 } // namespace core
 } // namespace contrib
index 102006c..94f97b1 100644 (file)
@@ -32,6 +32,20 @@ Index &Index::fill(uint32_t index)
 uint32_t &Index::at(uint32_t axis) { return _indices.at(axis); }
 uint32_t Index::at(uint32_t axis) const { return _indices.at(axis); }
 
+std::ostream &operator<<(std::ostream &s, const Index &sh)
+{
+  s << "[ ";
+  for (uint32_t i = 0; i < sh.rank(); ++i)
+  {
+    if (i != 0 )
+      s << ", ";
+    s << sh.at(i);
+  }
+  s << "]";
+
+  return s;
+}
+
 } // namespace data
 } // namespace core
 } // namespace contrib