1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
7 #include "perf_count.h"
10 #include <mkldnn_types.h>
11 #include <ie_common.h>
14 namespace MKLDNNPlugin {
18 MKLDNNDims() = default;
20 explicit MKLDNNDims(const InferenceEngine::SizeVector& size) {
21 dims = std::vector<ptrdiff_t>(size.begin(), size.end());
24 explicit MKLDNNDims(const std::vector<ptrdiff_t>& dim) {
28 MKLDNNDims(const mkldnn_dims_t dnn_dims, int dnn_ndims) {
29 dims = std::vector<ptrdiff_t>(dnn_dims, dnn_dims + dnn_ndims);
32 explicit MKLDNNDims(std::initializer_list<ptrdiff_t> ilist) : dims(ilist) {}
33 explicit MKLDNNDims(std::initializer_list<size_t > ilist) : dims(ilist.begin(), ilist.end()) {}
35 InferenceEngine::SizeVector ToSizeVector() const {
36 InferenceEngine::SizeVector size;
48 ptrdiff_t size() const {
52 ptrdiff_t size(int start) const {
55 for (int i = start; i < dims.size(); i++) {
62 void push_back(int val) {
66 operator mkldnn::memory::dims() const {
70 bool operator == (const MKLDNNDims& rhs) const {
71 if (dims.size() != rhs.dims.size()) {
75 return std::equal(rhs.dims.begin(), rhs.dims.end(), dims.begin());
78 bool operator != (const MKLDNNDims& rhs) const {
79 return !(*this == rhs);
82 ptrdiff_t& operator[](int idx) {
86 ptrdiff_t operator[](int idx) const {
91 std::vector<ptrdiff_t> dims;
94 } // namespace MKLDNNPlugin