Imported Upstream version 1.12.0
[platform/core/ml/nnfw.git] / runtime / libs / misc / include / misc / kernel / Shape.h
1 /*
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *    http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file     Shape.h
19  * @brief    This file contains Shape structure
20  * @ingroup  COM_AI_RUNTIME
21  */
22
23 #ifndef __NNFW_MISC_KERNEL_SHAPE_H__
24 #define __NNFW_MISC_KERNEL_SHAPE_H__
25
26 #include <cstdint>
27
28 namespace nnfw
29 {
30 namespace misc
31 {
32 namespace kernel
33 {
34
35 /**
36  * @brief Structure to Shape
37  */
38 struct Shape
39 {
40   int32_t N; /**< The kernel index */
41   int32_t C; /**< The channel index */
42   int32_t H; /**< The height index */
43   int32_t W; /**< The width index */
44
45   /**
46    * @brief Construct a new Shape object as default
47    */
48   Shape() = default;
49
50   /**
51    * @brief Construct a new Shape object with parameters
52    * @param[in] count The kernel index
53    * @param[in] depth The channel index
54    * @param[in] height The height index
55    * @param[in] width The width index
56    */
57   Shape(int32_t count, int32_t depth, int32_t height, int32_t width)
58     : N{count}, C{depth}, H{height}, W{width}
59   {
60     // DO NOTHING
61   }
62 };
63
64 } // namespace kernel
65 } // namespace misc
66 } // namespace nnfw
67
68 #endif // __NNFW_MISC_KERNEL_SHAPE_H__