1 // Copyright (C) 2018 Intel Corporation
3 // SPDX-License-Identifier: Apache-2.0
8 #include "perf_count.h"
11 #include <mkldnn_types.h>
14 namespace MKLDNNPlugin {
21 explicit MKLDNNDims(const InferenceEngine::SizeVector& size) {
22 dims = std::vector<int>(size.begin(), size.end());
25 explicit MKLDNNDims(const std::vector<int>& dim) {
29 MKLDNNDims(const mkldnn_dims_t dnn_dims, int dnn_ndims) {
30 dims = std::vector<int>(dnn_dims, dnn_dims + dnn_ndims);
33 explicit MKLDNNDims(std::initializer_list<int> ilist) : dims(ilist) {}
35 InferenceEngine::SizeVector ToSizeVector() const {
36 InferenceEngine::SizeVector size;
52 int size(int start) const {
55 for (int i = start; i < dims.size(); i++) {
62 void insert(int at, int val) {
63 dims.insert(dims.begin() + at, val);
66 void push_back(int val) {
70 void swap(int from, int to) {
72 dims[from] = dims[to];
76 operator mkldnn::memory::dims() const {
80 bool operator == (const MKLDNNDims& rhs) {
81 if (dims.size() != rhs.dims.size()) {
85 return std::equal(rhs.dims.begin(), rhs.dims.end(), dims.begin());
88 bool operator != (const MKLDNNDims& rhs) {
89 return !(*this == rhs);
92 int& operator[](int idx) {
96 int operator[](int idx) const {
101 std::vector<int> dims;
104 } // namespace MKLDNNPlugin