Imported Upstream version 1.12.0
[platform/core/ml/nnfw.git] / runtime / libs / misc / include / misc / feature / 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 class for feature
20  * @ingroup  COM_AI_RUNTIME
21  */
22
23 #ifndef __NNFW_MISC_FEATURE_SHAPE_H__
24 #define __NNFW_MISC_FEATURE_SHAPE_H__
25
26 #include <cstdint>
27
28 namespace nnfw
29 {
30 namespace misc
31 {
32 namespace feature
33 {
34
35 /**
36  * @brief  Structure to have values of dimensions for feature
37  */
38 struct Shape
39 {
40   int32_t N; /**< The batch value  */
41   int32_t C; /**< The depth value  */
42   int32_t H; /**< The height value */
43   int32_t W; /**< The width value  */
44
45   /**
46    * @brief  Construct Shape object using default constrcutor
47    */
48   Shape() = default;
49   /**
50    * @brief  Construct Shape object with three values of dimensions
51    * @param[in]  depth  The depth value
52    * @param[in]  height The height value
53    * @param[in]  width  The width value
54    */
55   Shape(int32_t depth, int32_t height, int32_t width) : N{1}, C{depth}, H{height}, W{width}
56   {
57     // DO NOTHING
58   }
59   /**
60    * @brief  Construct Shape object with four values of dimensions
61    * @param[in]  batch  The batch value
62    * @param[in]  depth  The depth value
63    * @param[in]  height The height value
64    * @param[in]  width  The width value
65    */
66   Shape(int32_t batch, int32_t depth, int32_t height, int32_t width)
67     : N{batch}, C{depth}, H{height}, W{width}
68   {
69     // DO NOTHING
70   }
71 };
72
73 } // namespace feature
74 } // namespace misc
75 } // namespace nnfw
76
77 #endif // __NNFW_MISC_FEATURE_H__