| #include "test/cpp/tensorexpr/padded_buffer.h" | |
| #include <c10/util/Logging.h> | |
| #include <sstream> | |
| namespace torch { | |
| namespace jit { | |
| namespace tensorexpr { | |
| int PaddedBufferBase::Index(const std::vector<int>& indices) const { | |
| DCHECK_EQ(dims_.size(), indices.size()); | |
| int total_index = 0; | |
| for (size_t i = 0; i < dims_.size(); i++) { | |
| total_index += indices[i] * strides_[i]; | |
| } | |
| return total_index; | |
| } | |
| PaddedBufferBase::PaddedBufferBase( | |
| const std::vector<int>& dims, | |
| const std::string& name) | |
| : dims_(dims), name_(name), strides_(dims.size()) { | |
| for (int i = (int)dims.size() - 1; i >= 0; --i) { | |
| if (i == (int)dims.size() - 1) { | |
| strides_[i] = 1; | |
| } else { | |
| strides_[i] = strides_[i + 1] * dims[i + 1]; | |
| } | |
| } | |
| total_size_ = strides_[0] * dims[0]; | |
| } | |
| } // namespace tensorexpr | |
| } // namespace jit | |
| } // namespace torch |