ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Shape.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
3 * Copyright (C) 2017 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef __SHAPE_H__
19#define __SHAPE_H__
20
21#include "OperandType.h"
22
23#include <vector>
24#include <cstdint>
25
26// The type and dimensions of an operand.
27struct Shape
28{
30 std::vector<uint32_t> dimensions;
31 float scale;
32 int32_t offset;
33};
34
35// Verifies that the two shapes are the same.
36bool SameShape(const Shape &in1, const Shape &in2);
37
38// Sets out to the same shape as in.
39bool SetShape(const Shape &in, Shape *out);
40
41// Return the total number of elements, i.e. all the dimensions multiplied
42// together. For a scalar, returns one.
43uint32_t getNumberOfElements(const Shape &shape);
44uint32_t getNumberOfDimensions(const Shape &shape);
45uint32_t getSizeOfDimension(const Shape &shape, uint32_t dimensionIdx);
46
47#endif // __SHAPE_H__
OperandType
Definition OperandType.h:24
uint32_t getNumberOfElements(const Shape &shape)
Definition Shape.cpp:48
uint32_t getSizeOfDimension(const Shape &shape, uint32_t dimensionIdx)
Definition Shape.cpp:60
uint32_t getNumberOfDimensions(const Shape &shape)
Definition Shape.cpp:58
bool SetShape(const Shape &in, Shape *out)
Definition Shape.cpp:38
bool SameShape(const Shape &in1, const Shape &in2)
Definition Shape.cpp:22
Definition Shape.h:28
float scale
Definition Shape.h:31
int32_t offset
Definition Shape.h:32
OperandType type
Definition Shape.h:29
std::vector< uint32_t > dimensions
Definition Shape.h:30