| 61 | typename Layout_ |
| 62 | > |
| 63 | class TensorViewPlanarComplex : public TensorRefPlanarComplex<Element_, Layout_> { |
| 64 | public: |
| 65 | |
| 66 | /// Base tensor reference |
| 67 | using Base = cutlass::TensorRefPlanarComplex<Element_, Layout_>; |
| 68 | |
| 69 | /// Mapping function from logical coordinate to internal n-D array |
| 70 | using Layout = Layout_; |
| 71 | |
| 72 | /// TensorRef pointing to constant memory |
| 73 | using ConstTensorRef = typename Base::ConstTensorRef; |
| 74 | |
| 75 | /// Underlying TensorRef type |
| 76 | using TensorRef = Base; |
| 77 | |
| 78 | /// Data type of individual access |
| 79 | using Element = Element_; |
| 80 | |
| 81 | /// Reference type to an element |
| 82 | using Reference = Element &; |
| 83 | |
| 84 | /// Logical rank of tensor index space |
| 85 | static int const kRank = Layout::kRank; |
| 86 | |
| 87 | /// Index type |
| 88 | using Index = typename Layout::Index; |
| 89 | |
| 90 | /// Long index used for pointer offsets |
| 91 | using LongIndex = typename Layout::LongIndex; |
| 92 | |
| 93 | /// Coordinate in logical tensor space |
| 94 | using TensorCoord = typename Layout::TensorCoord; |
| 95 | |
| 96 | /// Coordinate in storage n-D array |
| 97 | using Stride = typename Layout::Stride; |
| 98 | |
| 99 | /// TensorView pointing to constant memory |
| 100 | using ConstTensorView = TensorViewPlanarComplex< |
| 101 | typename platform::remove_const<Element>::type const, |
| 102 | Layout>; |
| 103 | |
| 104 | /// TensorView pointing to non-constant memory |
| 105 | using NonConstTensorView = TensorViewPlanarComplex< |
| 106 | typename platform::remove_const<Element>::type, |
| 107 | Layout>; |
| 108 | |
| 109 | /// Require at least rank=1. Mathematically, a rank=0 tensor would be considered to be a |
| 110 | /// scalar, but degenerate cases such as these are difficult to accommodate without |
| 111 | /// extensive C++ metaprogramming or support for zero-length arrays. |
| 112 | static_assert(kRank > 0, "Cannot define a zero-rank TensorRef"); |
| 113 | |
| 114 | private: |
| 115 | |
| 116 | /// View extent |
| 117 | TensorCoord extent_; |
| 118 | |
| 119 | public: |
| 120 |
nothing calls this directly
no test coverage detected