aboutsummaryrefslogtreecommitdiff
path: root/21.02/_descriptors_8cpp_source.xhtml
blob: 243eb068d4a09c943868b48303c47df4642deb14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!-- Copyright (c) 2020 ARM Limited. -->
<!--                                 -->
<!-- SPDX-License-Identifier: MIT    -->
<!--                                 -->
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: src/armnn/Descriptors.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">21.02</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_descriptors_8cpp_source.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Descriptors.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_descriptors_8cpp.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright © 2017 Arm Ltd. All rights reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// SPDX-License-Identifier: MIT</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_descriptors_8hpp.xhtml">armnn/Descriptors.hpp</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_logging_8hpp.xhtml">armnn/Logging.hpp</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_assert_8hpp.xhtml">armnn/utility/Assert.hpp</a>&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_numeric_cast_8hpp.xhtml">armnn/utility/NumericCast.hpp</a>&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;fmt/format.h&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacearmnn.xhtml">armnn</a></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classarmnn_1_1_permutation_vector.xhtml#a399359e369b182e7c86840d7b6a38c41">   20</a></span>&#160;<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a399359e369b182e7c86840d7b6a38c41">PermutationVector::PermutationVector</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a9e70f27e3e424e90566080423b1fe2db">ValueType</a> *dimMappings, <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">SizeType</a> numDimMappings)</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">// Validation</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keywordflow">if</span> (numDimMappings &gt; <a class="code" href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">MaxNumOfTensorDimensions</a>)</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;            fmt::format(<span class="stringliteral">&quot;The number of mappings ({0}) cannot be greater &quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                        <span class="stringliteral">&quot;than the maximum number of dimensions supported ({1})&quot;</span>,</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                        numDimMappings,</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                        <a class="code" href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">MaxNumOfTensorDimensions</a>));</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    }</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">if</span> ((dimMappings == <span class="keyword">nullptr</span>) &amp;&amp; (numDimMappings != 0))</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(<span class="stringliteral">&quot;Dimension mappings must not be NULL if the number of mappings is positive&quot;</span>);</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    }</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordflow">for</span> (<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">SizeType</a> i = 0; i &lt; numDimMappings; ++i)</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a9e70f27e3e424e90566080423b1fe2db">ValueType</a> dstIndex = dimMappings[i];</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keywordflow">if</span> (dstIndex &gt;= numDimMappings)</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        {</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                fmt::format(<span class="stringliteral">&quot;Dimension mapping at index {0} is invalid: &quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                            <span class="stringliteral">&quot;{1} is outside of the valid range [0,{2}]&quot;</span>,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                            i,</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                            dstIndex,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                            (numDimMappings - 1)));</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="comment">// Validation: Detect duplicates</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        std::array&lt;bool, MaxNumOfTensorDimensions&gt; observedDims;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        observedDims.fill(<span class="keyword">false</span>);</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keywordflow">for</span> (<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">SizeType</a> i = 0; i &lt; numDimMappings; ++i)</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        {</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            <span class="keyword">const</span> <a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a9e70f27e3e424e90566080423b1fe2db">ValueType</a> dstIndex = dimMappings[i];</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            <span class="keywordflow">if</span> (observedDims[dstIndex])</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;            {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="keywordflow">throw</span> <a class="code" href="classarmnn_1_1_invalid_argument_exception.xhtml">InvalidArgumentException</a>(<span class="stringliteral">&quot;Invalid dimension mappings: Two or more source dimensions are mapped &quot;</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                    <span class="stringliteral">&quot;to the same output dimension&quot;</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;            }</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            observedDims[dstIndex] = <span class="keyword">true</span>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    }</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">// Initialize</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">for</span> (<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">SizeType</a> i = 0; i &lt; numDimMappings; ++i)</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        m_DimMappings[i] = dimMappings[i];</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    m_NumDimMappings = numDimMappings;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classarmnn_1_1_permutation_vector.xhtml#adb9aad0dc5def92d5749a0efad1ead58">   77</a></span>&#160;<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a399359e369b182e7c86840d7b6a38c41">PermutationVector::PermutationVector</a>(std::initializer_list&lt;ValueType&gt; dimMappings)</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    : <a class="code" href="classarmnn_1_1_permutation_vector.xhtml">PermutationVector</a>(dimMappings.<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#ad5fee900c7aee90671038c79225bf8ec">begin</a>(), <a class="code" href="namespacearmnn.xhtml">armnn</a>::<a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">numeric_cast</a>&lt;<a class="code" href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">SizeType</a>&gt;(dimMappings.size()))</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">   82</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">OriginsDescriptor::OriginsDescriptor</a>()</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;: m_ConcatAxis(1)</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;, m_NumViews(0)</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;, m_NumDimensions(0)</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;, m_ViewOrigins(nullptr)</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;{}</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#aa3451ee04c881166752622573dda6aab">   89</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">OriginsDescriptor::OriginsDescriptor</a>(uint32_t numViews, uint32_t numDimensions <span class="comment">/*= 4*/</span>)</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;: m_ConcatAxis(1)</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;, m_NumViews(numViews)</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;, m_NumDimensions(numDimensions)</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;, m_ViewOrigins(numViews &amp;&amp; numDimensions &gt; 0 ? new uint32_t *[numViews]() : nullptr)</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">for</span> (uint32_t i = 0; m_NumDimensions &gt; 0 &amp;&amp; i &lt; m_NumViews; ++i)</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    {</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        m_ViewOrigins[i] = <span class="keyword">new</span> uint32_t[m_NumDimensions]();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#af4ceae391b359730261d998d65875c3a">  101</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">OriginsDescriptor::OriginsDescriptor</a>(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; other)</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;: m_ConcatAxis(other.m_ConcatAxis)</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;, m_NumViews(other.m_NumViews)</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;, m_NumDimensions(other.m_NumDimensions)</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;, m_ViewOrigins(other.m_NumViews &amp;&amp; other.m_NumDimensions &gt; 0 ? new uint32_t *[other.m_NumViews]() : nullptr)</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">for</span> (uint32_t i = 0; m_NumDimensions &gt; 0 &amp;&amp; i &lt; m_NumViews; ++i)</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    {</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        m_ViewOrigins[i] = <span class="keyword">new</span> uint32_t[m_NumDimensions]();</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        memcpy(m_ViewOrigins[i], other.m_ViewOrigins[i], m_NumDimensions * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    }</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#af6d6f705cb02ec84c47737aff3745d6e">  114</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">OriginsDescriptor::OriginsDescriptor</a>(<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp;&amp; other)</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;: <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>()</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a0c0e7d9253dee85be237536cf1d7b0ac">swap</a>(*<span class="keyword">this</span>, other);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#aa507c5561373dbd58e149611a7f46470">  120</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#aa507c5561373dbd58e149611a7f46470">OriginsDescriptor::~OriginsDescriptor</a>()</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordflow">for</span> (uint32_t i = 0; m_NumDimensions &gt; 0 &amp;&amp; i &lt; m_NumViews; ++i)</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <span class="keyword">delete</span>[] m_ViewOrigins[i];</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keyword">delete</span>[] m_ViewOrigins;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#af714290740c651092629e45cf692fc1a">  129</a></span>&#160;<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#af714290740c651092629e45cf692fc1a">OriginsDescriptor::operator=</a>(<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a> rhs)</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a0c0e7d9253dee85be237536cf1d7b0ac">swap</a>(*<span class="keyword">this</span>, rhs);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a1efc8be2c15fe67917c60041dc926701">  135</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a1efc8be2c15fe67917c60041dc926701">OriginsDescriptor::operator==</a>(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>()      != rhs.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>() ||</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() != rhs.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() ||</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a379929e3b277f1ef94f3ce645870589d">GetConcatAxis</a>()    != rhs.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a379929e3b277f1ef94f3ce645870589d">GetConcatAxis</a>())</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    {</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    }</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0u; i &lt; <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>(); ++i)</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    {</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0u; j &lt; <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>(); ++j)</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">GetViewOrigin</a>(i)[j] != rhs.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">GetViewOrigin</a>(i)[j])</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            {</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        }</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a5b192c5fcd96a0f75542524cf646b355">  158</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a5b192c5fcd96a0f75542524cf646b355">OriginsDescriptor::SetConcatAxis</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> concatAxis)</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    m_ConcatAxis = concatAxis;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;}</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a379929e3b277f1ef94f3ce645870589d">  162</a></span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a379929e3b277f1ef94f3ce645870589d">OriginsDescriptor::GetConcatAxis</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordflow">return</span> m_ConcatAxis;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">  167</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">OriginsDescriptor::SetViewOriginCoord</a>(uint32_t view, uint32_t coord, uint32_t value)</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordflow">if</span> (view &gt;= m_NumViews)</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(<a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>) &lt;&lt; <span class="stringliteral">&quot;OriginsDescriptor::SetViewOriginCoord: view argument:&quot;</span> &lt;&lt; view &lt;&lt;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;            <span class="stringliteral">&quot; is out of range&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">Status::Failure</a>;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    }</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordflow">if</span> (coord &gt;= m_NumDimensions)</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    {</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(<a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>) &lt;&lt; <span class="stringliteral">&quot;OriginsDescriptor::SetViewOriginCoord: coord argument:&quot;</span> &lt;&lt; coord &lt;&lt;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;            <span class="stringliteral">&quot; is out of range&quot;</span>;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">Status::Failure</a>;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    m_ViewOrigins[view][coord] = value;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38">Status::Success</a>;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;}</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">  187</a></span>&#160;uint32_t <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">OriginsDescriptor::GetNumViews</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordflow">return</span> m_NumViews;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">  192</a></span>&#160;uint32_t <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">OriginsDescriptor::GetNumDimensions</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <span class="keywordflow">return</span> m_NumDimensions;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">  197</a></span>&#160;<span class="keyword">const</span> uint32_t* <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">OriginsDescriptor::GetViewOrigin</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">return</span> m_ViewOrigins ? m_ViewOrigins[idx] : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">// Reorders the viewOrigins in accordance with the indices presented in newOrdering array.</span></div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structarmnn_1_1_origins_descriptor.xhtml#aae1f4844cfb511b5b3a25c6761483624">  204</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#aae1f4844cfb511b5b3a25c6761483624">OriginsDescriptor::ReorderOrigins</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*  newOrdering, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numNewOrdering)</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <a class="code" href="_assert_8hpp.xhtml#a91c4dfde57907d7698c7531785690a7f">ARMNN_ASSERT_MSG</a>(m_NumViews == numNewOrdering, <span class="stringliteral">&quot;number of views must match number of &quot;</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="stringliteral">&quot;elements in the new ordering array&quot;</span>);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    std::vector&lt;uint32_t*&gt; viewOrigins(&amp;m_ViewOrigins[0], &amp;m_ViewOrigins[m_NumViews]);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; numNewOrdering; ++i)</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        m_ViewOrigins[i] = viewOrigins[newOrdering[i]];</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">  216</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">ViewsDescriptor::ViewsDescriptor</a>()</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;: m_Origins()</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;, m_ViewSizes(nullptr)</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;{}</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#ab506124f0492dced09d0f7f62e8d14c3">  221</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">ViewsDescriptor::ViewsDescriptor</a>(uint32_t numViews, uint32_t numDimensions <span class="comment">/*= 4*/</span>)</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    : m_Origins(numViews, numDimensions)</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    , m_ViewSizes(numViews &gt; 0 &amp;&amp; numDimensions &gt; 0 ?</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;                      new uint32_t *[numViews]() : nullptr)</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">if</span> (m_ViewSizes)</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    {</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() &gt; 0 &amp;&amp; i &lt; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>(); ++i)</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        {</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;            m_ViewSizes[i] = <span class="keyword">new</span> uint32_t[<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>()]();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        }</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    }</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;}</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#abe247761d72676899c0a70488d0b9227">  235</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">ViewsDescriptor::ViewsDescriptor</a>(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; other)</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    : m_Origins(other.m_Origins)</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    , m_ViewSizes(other.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>() &gt; 0 &amp;&amp; other.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() &gt; 0 ?</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                      new uint32_t *[other.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>()]() : nullptr)</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">if</span> (m_ViewSizes)</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() &gt; 0 &amp;&amp; i &lt; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>(); ++i)</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        {</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            m_ViewSizes[i] = <span class="keyword">new</span> uint32_t[<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>()]();</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            memcpy(m_ViewSizes[i], other.m_ViewSizes[i], <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() * <span class="keyword">sizeof</span>(uint32_t));</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        }</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;}</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a047d65ed115b9b6fcf54669ae7c16e8d">  250</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">ViewsDescriptor::ViewsDescriptor</a>(<a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp;&amp; other)</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    : <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>()</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(*<span class="keyword">this</span>, other);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;}</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a6316c5537fc3d9e8e71bf0541c6044d9">  256</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6316c5537fc3d9e8e71bf0541c6044d9">ViewsDescriptor::~ViewsDescriptor</a>()</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordflow">if</span> (m_ViewSizes)</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    {</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() &gt; 0 &amp;&amp; i &lt; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>(); ++i)</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        {</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;            <span class="keyword">delete</span>[] m_ViewSizes[i];</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        }</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <span class="keyword">delete</span>[] m_ViewSizes;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#aee83273c36d9506ce40c904a93c6ab8b">  268</a></span>&#160;<a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#aee83273c36d9506ce40c904a93c6ab8b">ViewsDescriptor::operator=</a>(<a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a> rhs)</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(*<span class="keyword">this</span>, rhs);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;}</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a85dcac1ac31524ea0f9d16a0a939bd75">  274</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a85dcac1ac31524ea0f9d16a0a939bd75">ViewsDescriptor::operator==</a>(<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>() != rhs.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>() || <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>() != rhs.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>())</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    {</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    }</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0u; i &lt; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>(); ++i)</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    {</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0u; j &lt; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>(); ++j)</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        {</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">GetViewOrigin</a>(i)[j] != rhs.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">GetViewOrigin</a>(i)[j] || <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3c1ab47a0a319413b3a4b5757ed5b80b">GetViewSizes</a>(i)[j] != rhs.<a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3c1ab47a0a319413b3a4b5757ed5b80b">GetViewSizes</a>(i)[j])</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;            {</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;            }</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    }</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;}</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">  295</a></span>&#160;uint32_t <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">ViewsDescriptor::GetNumViews</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <span class="keywordflow">return</span> m_Origins.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>();</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;}</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">  300</a></span>&#160;uint32_t <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">ViewsDescriptor::GetNumDimensions</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    <span class="keywordflow">return</span> m_Origins.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>();</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;}</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">  305</a></span>&#160;<span class="keyword">const</span> uint32_t* <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">ViewsDescriptor::GetViewOrigin</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordflow">return</span> m_Origins.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">GetViewOrigin</a>(idx);</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;}</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">  310</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">ViewsDescriptor::SetViewOriginCoord</a>(uint32_t view, uint32_t coord, uint32_t value)</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;{</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="keywordflow">return</span> m_Origins.<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">SetViewOriginCoord</a>(view, coord, value);</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;}</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#aae0893695f5803a3517985c7cb1ccb2e">  315</a></span>&#160;<a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70b">Status</a> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#aae0893695f5803a3517985c7cb1ccb2e">ViewsDescriptor::SetViewSize</a>(uint32_t view, uint32_t coord, uint32_t value)</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordflow">if</span> (!m_ViewSizes)</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    {</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(<a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>) &lt;&lt; <span class="stringliteral">&quot;ViewsDescriptor::SetViewSize: invalid view sizes&quot;</span>;</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">Status::Failure</a>;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;    }</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordflow">if</span> (view &gt;= <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">GetNumViews</a>())</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    {</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(<a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>) &lt;&lt; <span class="stringliteral">&quot;ViewsDescriptor::SetViewSize: view argument:&quot;</span> &lt;&lt; view &lt;&lt;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                                 <span class="stringliteral">&quot; is out of range&quot;</span>;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">Status::Failure</a>;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    }</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">if</span> (coord &gt;= <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">GetNumDimensions</a>())</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    {</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <a class="code" href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a>(<a class="code" href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">error</a>) &lt;&lt; <span class="stringliteral">&quot;ViewsDescriptor::SetViewSize: coord argument:&quot;</span> &lt;&lt; coord &lt;&lt;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;                                 <span class="stringliteral">&quot; is out of range&quot;</span>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">Status::Failure</a>;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    m_ViewSizes[view][coord] = value;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38">Status::Success</a>;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;}</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a3c1ab47a0a319413b3a4b5757ed5b80b">  340</a></span>&#160;<span class="keyword">const</span> uint32_t* <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a3c1ab47a0a319413b3a4b5757ed5b80b">ViewsDescriptor::GetViewSizes</a>(uint32_t idx)<span class="keyword"> const</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <span class="keywordflow">return</span> m_ViewSizes ? m_ViewSizes[idx] : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;}</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="structarmnn_1_1_views_descriptor.xhtml#a88d7c8ef4baba3690a4d25eec350ecb3">  345</a></span>&#160;<span class="keyword">const</span> <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a88d7c8ef4baba3690a4d25eec350ecb3">ViewsDescriptor::GetOrigins</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordflow">return</span> m_Origins;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="namespacearmnn.xhtml#a14d7f180bf51e86850305965c3707e07">  350</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(<a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; first, <a class="code" href="structarmnn_1_1_origins_descriptor.xhtml">OriginsDescriptor</a>&amp; second)</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;{</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearmnn.xhtml#a686b8288a04b3ffff67d560eea53f6be">std::swap</a>;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_NumViews, second.m_NumViews);</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_NumDimensions, second.m_NumDimensions);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_ViewOrigins, second.m_ViewOrigins);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_ConcatAxis, second.m_ConcatAxis);</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;}</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="namespacearmnn.xhtml#a686b8288a04b3ffff67d560eea53f6be">  359</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(<a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; first, <a class="code" href="structarmnn_1_1_views_descriptor.xhtml">ViewsDescriptor</a>&amp; second)</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;{</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keyword">using</span> <a class="code" href="namespacearmnn.xhtml#a686b8288a04b3ffff67d560eea53f6be">std::swap</a>;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_Origins, second.m_Origins);</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <a class="code" href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">swap</a>(first.m_ViewSizes, second.m_ViewSizes);</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;}</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="structarmnn_1_1_strided_slice_descriptor.xhtml#add849c1188ee7ff60774755b746aa526">  366</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#add849c1188ee7ff60774755b746aa526">StridedSliceDescriptor::GetStartForAxis</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a>&amp; inputShape,</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;                                            <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> axis)<span class="keyword"> const</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordtype">int</span> start = m_Begin[axis];</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordflow">if</span> (m_BeginMask &amp; (1 &lt;&lt; axis))</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    {</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordflow">if</span> (m_Stride[axis] &gt; 0)</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        {</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;            start = std::numeric_limits&lt;int&gt;::min();</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        }</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        {</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;            start = std::numeric_limits&lt;int&gt;::max();</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        }</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    }</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">int</span> axisSize = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;<span class="keywordtype">int</span>&gt;(inputShape[axis]);</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordflow">if</span> (start &lt; 0)</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    {</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        start += (axisSize);</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    }</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keywordflow">return</span> std::max(0, std::min(start, axisSize - 1));</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;}</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="structarmnn_1_1_strided_slice_descriptor.xhtml#afc4731b55776f71af1e14c799c6e6e2c">  393</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="structarmnn_1_1_strided_slice_descriptor.xhtml#afc4731b55776f71af1e14c799c6e6e2c">StridedSliceDescriptor::GetStopForAxis</a>(<span class="keyword">const</span> <a class="code" href="classarmnn_1_1_tensor_shape.xhtml">TensorShape</a>&amp; inputShape,</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;                                           <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> axis,</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;                                           <span class="keywordtype">int</span> startForAxis)<span class="keyword"> const</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keywordflow">if</span> (m_ShrinkAxisMask &amp; (1 &lt;&lt; axis))</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    {</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keywordflow">return</span> startForAxis + 1;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    }</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="keywordtype">int</span> stop = m_End[axis];</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="keywordflow">if</span> (m_EndMask &amp; (1 &lt;&lt; axis))</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    {</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordflow">if</span> (m_Stride[axis] &gt; 0)</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        {</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;            stop = std::numeric_limits&lt;int&gt;::max();</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        }</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        {</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;            stop = std::numeric_limits&lt;int&gt;::min();</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        }</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    }</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">int</span> axisSize = <a class="code" href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a>&lt;<span class="keywordtype">int</span>&gt;(inputShape[axis]);</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="keywordflow">if</span> (stop &lt; 0)</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    {</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        stop += axisSize;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    }</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordflow">return</span> m_Stride[axis] &gt; 0 ? std::max(0, std::min(stop, axisSize)) :</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;                                std::max(-1, std::min(stop, axisSize - 1));</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;}</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a0c0e7d9253dee85be237536cf1d7b0ac"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a0c0e7d9253dee85be237536cf1d7b0ac">armnn::OriginsDescriptor::swap</a></div><div class="ttdeci">friend void swap(OriginsDescriptor &amp;first, OriginsDescriptor &amp;second)</div><div class="ttdoc">Swap the ViewsDescriptor values first and second. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00350">Descriptors.cpp:350</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_aa507c5561373dbd58e149611a7f46470"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#aa507c5561373dbd58e149611a7f46470">armnn::OriginsDescriptor::~OriginsDescriptor</a></div><div class="ttdeci">~OriginsDescriptor()</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00120">Descriptors.cpp:120</a></div></div>
<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_a9e70f27e3e424e90566080423b1fe2db"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#a9e70f27e3e424e90566080423b1fe2db">armnn::PermutationVector::ValueType</a></div><div class="ttdeci">unsigned int ValueType</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00215">Types.hpp:215</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a5a41cf9db1648399ac8c226101daf066"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a5a41cf9db1648399ac8c226101daf066">armnn::OriginsDescriptor::OriginsDescriptor</a></div><div class="ttdeci">OriginsDescriptor()</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00082">Descriptors.cpp:82</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml">armnn::ViewsDescriptor</a></div><div class="ttdoc">A ViewsDescriptor for the SplitterLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00206">Descriptors.hpp:206</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_af714290740c651092629e45cf692fc1a"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#af714290740c651092629e45cf692fc1a">armnn::OriginsDescriptor::operator=</a></div><div class="ttdeci">OriginsDescriptor &amp; operator=(OriginsDescriptor rhs)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00129">Descriptors.cpp:129</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a6316c5537fc3d9e8e71bf0541c6044d9"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a6316c5537fc3d9e8e71bf0541c6044d9">armnn::ViewsDescriptor::~ViewsDescriptor</a></div><div class="ttdeci">~ViewsDescriptor()</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00256">Descriptors.cpp:256</a></div></div>
<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_add849c1188ee7ff60774755b746aa526"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#add849c1188ee7ff60774755b746aa526">armnn::StridedSliceDescriptor::GetStartForAxis</a></div><div class="ttdeci">int GetStartForAxis(const TensorShape &amp;inputShape, unsigned int axis) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00366">Descriptors.cpp:366</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a686b8288a04b3ffff67d560eea53f6be"><div class="ttname"><a href="namespacearmnn.xhtml#a686b8288a04b3ffff67d560eea53f6be">armnn::swap</a></div><div class="ttdeci">void swap(ViewsDescriptor &amp;first, ViewsDescriptor &amp;second)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00359">Descriptors.cpp:359</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a78e8266be865fdd92cadd04d6e25ae1f"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">armnn::ViewsDescriptor::GetNumDimensions</a></div><div class="ttdeci">uint32_t GetNumDimensions() const</div><div class="ttdoc">Get the number of dimensions. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00300">Descriptors.cpp:300</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a6ab1c51c46d6587c0eaa2a1674b2b48c"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a6ab1c51c46d6587c0eaa2a1674b2b48c">armnn::ViewsDescriptor::swap</a></div><div class="ttdeci">friend void swap(ViewsDescriptor &amp;first, ViewsDescriptor &amp;second)</div><div class="ttdoc">Swap the ViewsDescriptor value first and second. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00359">Descriptors.cpp:359</a></div></div>
<div class="ttc" id="_logging_8hpp_xhtml_a7b6ad073975f437ec38ca7d20154727f"><div class="ttname"><a href="_logging_8hpp.xhtml#a7b6ad073975f437ec38ca7d20154727f">ARMNN_LOG</a></div><div class="ttdeci">#define ARMNN_LOG(severity)</div><div class="ttdef"><b>Definition:</b> <a href="_logging_8hpp_source.xhtml#l00202">Logging.hpp:202</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a85dcac1ac31524ea0f9d16a0a939bd75"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a85dcac1ac31524ea0f9d16a0a939bd75">armnn::ViewsDescriptor::operator==</a></div><div class="ttdeci">bool operator==(const ViewsDescriptor &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00274">Descriptors.cpp:274</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a35546e7b56e6e972a495b48748478ede"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">armnn::ViewsDescriptor::GetNumViews</a></div><div class="ttdeci">uint32_t GetNumViews() const</div><div class="ttdoc">Get the number of views. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00295">Descriptors.cpp:295</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml"><div class="ttname"><a href="namespacearmnn.xhtml">armnn</a></div><div class="ttdoc">Copyright (c) 2021 ARM Limited and Contributors. </div><div class="ttdef"><b>Definition:</b> <a href="01__00__software__tools_8dox_source.xhtml#l00006">01_00_software_tools.dox:6</a></div></div>
<div class="ttc" id="classarmnn_1_1_tensor_shape_xhtml"><div class="ttname"><a href="classarmnn_1_1_tensor_shape.xhtml">armnn::TensorShape</a></div><div class="ttdef"><b>Definition:</b> <a href="_tensor_8hpp_source.xhtml#l00020">Tensor.hpp:20</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a3076393f5568657d04520f900e413dcb"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a3076393f5568657d04520f900e413dcb">armnn::ViewsDescriptor::ViewsDescriptor</a></div><div class="ttdeci">ViewsDescriptor()</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00216">Descriptors.cpp:216</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282"><div class="ttname"><a href="namespacearmnn.xhtml#a4dc0adc6737b5944e7671bee71788407acb5e100e5a9a3e7f6d1fd97512215282">armnn::BoostLogSeverityMapping::error</a></div></div>
<div class="ttc" id="_numeric_cast_8hpp_xhtml"><div class="ttname"><a href="_numeric_cast_8hpp.xhtml">NumericCast.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_ab78e6fe963508c1ac5c00d04bb3361a3"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">armnn::OriginsDescriptor::GetViewOrigin</a></div><div class="ttdeci">const uint32_t * GetViewOrigin(uint32_t idx) const</div><div class="ttdoc">Return the view origin at the int value idx. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00197">Descriptors.cpp:197</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_aae1f4844cfb511b5b3a25c6761483624"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#aae1f4844cfb511b5b3a25c6761483624">armnn::OriginsDescriptor::ReorderOrigins</a></div><div class="ttdeci">void ReorderOrigins(unsigned int *newOrdering, unsigned int numNewOrdering)</div><div class="ttdoc">Reorders the viewOrigins in accordance with the indices presented in newOrdering array. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00204">Descriptors.cpp:204</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38"><div class="ttname"><a href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70ba505a83f220c02df2f85c3810cd9ceb38">armnn::Status::Success</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_aae0893695f5803a3517985c7cb1ccb2e"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#aae0893695f5803a3517985c7cb1ccb2e">armnn::ViewsDescriptor::SetViewSize</a></div><div class="ttdeci">Status SetViewSize(uint32_t view, uint32_t coord, uint32_t value)</div><div class="ttdoc">Set the size of the views. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00315">Descriptors.cpp:315</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml_a91c4dfde57907d7698c7531785690a7f"><div class="ttname"><a href="_assert_8hpp.xhtml#a91c4dfde57907d7698c7531785690a7f">ARMNN_ASSERT_MSG</a></div><div class="ttdeci">#define ARMNN_ASSERT_MSG(COND, MSG)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.xhtml#l00015">Assert.hpp:15</a></div></div>
<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_a399359e369b182e7c86840d7b6a38c41"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#a399359e369b182e7c86840d7b6a38c41">armnn::PermutationVector::PermutationVector</a></div><div class="ttdeci">PermutationVector(const ValueType *dimMappings, SizeType numDimMappings)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00020">Descriptors.cpp:20</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml">armnn::OriginsDescriptor</a></div><div class="ttdoc">An OriginsDescriptor for the ConcatLayer. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8hpp_source.xhtml#l00163">Descriptors.hpp:163</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a67a0db04d321a74b7e7fcfd3f1a3f70b"><div class="ttname"><a href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70b">armnn::Status</a></div><div class="ttdeci">Status</div><div class="ttdoc">enumeration </div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00026">Types.hpp:26</a></div></div>
<div class="ttc" id="classarmnn_1_1_invalid_argument_exception_xhtml"><div class="ttname"><a href="classarmnn_1_1_invalid_argument_exception.xhtml">armnn::InvalidArgumentException</a></div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.xhtml#l00080">Exceptions.hpp:80</a></div></div>
<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml">armnn::PermutationVector</a></div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00212">Types.hpp:212</a></div></div>
<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_a12b132c42f8e60ebc9669a3b333bb946"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#a12b132c42f8e60ebc9669a3b333bb946">armnn::PermutationVector::SizeType</a></div><div class="ttdeci">unsigned int SizeType</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00216">Types.hpp:216</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_ab78e6fe963508c1ac5c00d04bb3361a3"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#ab78e6fe963508c1ac5c00d04bb3361a3">armnn::ViewsDescriptor::GetViewOrigin</a></div><div class="ttdeci">const uint32_t * GetViewOrigin(uint32_t idx) const</div><div class="ttdoc">Get the view origin at the int value idx. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00305">Descriptors.cpp:305</a></div></div>
<div class="ttc" id="_logging_8hpp_xhtml"><div class="ttname"><a href="_logging_8hpp.xhtml">Logging.hpp</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a3c1ab47a0a319413b3a4b5757ed5b80b"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a3c1ab47a0a319413b3a4b5757ed5b80b">armnn::ViewsDescriptor::GetViewSizes</a></div><div class="ttdeci">const uint32_t * GetViewSizes(uint32_t idx) const</div><div class="ttdoc">Get the view sizes at the int value idx. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00340">Descriptors.cpp:340</a></div></div>
<div class="ttc" id="_assert_8hpp_xhtml"><div class="ttname"><a href="_assert_8hpp.xhtml">Assert.hpp</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086"><div class="ttname"><a href="namespacearmnn.xhtml#a67a0db04d321a74b7e7fcfd3f1a3f70bae139a585510a502bbf1841cf589f5086">armnn::Status::Failure</a></div></div>
<div class="ttc" id="_descriptors_8hpp_xhtml"><div class="ttname"><a href="_descriptors_8hpp.xhtml">Descriptors.hpp</a></div></div>
<div class="ttc" id="classarmnn_1_1_permutation_vector_xhtml_ad5fee900c7aee90671038c79225bf8ec"><div class="ttname"><a href="classarmnn_1_1_permutation_vector.xhtml#ad5fee900c7aee90671038c79225bf8ec">armnn::PermutationVector::begin</a></div><div class="ttdeci">ConstIterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00243">Types.hpp:243</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a5b192c5fcd96a0f75542524cf646b355"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a5b192c5fcd96a0f75542524cf646b355">armnn::OriginsDescriptor::SetConcatAxis</a></div><div class="ttdeci">void SetConcatAxis(unsigned int concatAxis)</div><div class="ttdoc">Set the concatenation axis value. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00158">Descriptors.cpp:158</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a78e8266be865fdd92cadd04d6e25ae1f"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a78e8266be865fdd92cadd04d6e25ae1f">armnn::OriginsDescriptor::GetNumDimensions</a></div><div class="ttdeci">uint32_t GetNumDimensions() const</div><div class="ttdoc">Get the number of dimensions. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00192">Descriptors.cpp:192</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_a375ca3cff9f1b005d1412dc5f3cf5b6e"><div class="ttname"><a href="namespacearmnn.xhtml#a375ca3cff9f1b005d1412dc5f3cf5b6e">armnn::numeric_cast</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_unsigned&lt; Source &gt;::value &amp;&amp;std::is_unsigned&lt; Dest &gt;::value, Dest &gt; numeric_cast(Source source)</div><div class="ttdef"><b>Definition:</b> <a href="_numeric_cast_8hpp_source.xhtml#l00035">NumericCast.hpp:35</a></div></div>
<div class="ttc" id="structarmnn_1_1_strided_slice_descriptor_xhtml_afc4731b55776f71af1e14c799c6e6e2c"><div class="ttname"><a href="structarmnn_1_1_strided_slice_descriptor.xhtml#afc4731b55776f71af1e14c799c6e6e2c">armnn::StridedSliceDescriptor::GetStopForAxis</a></div><div class="ttdeci">int GetStopForAxis(const TensorShape &amp;inputShape, unsigned int axis, int startForAxis) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00393">Descriptors.cpp:393</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a35546e7b56e6e972a495b48748478ede"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a35546e7b56e6e972a495b48748478ede">armnn::OriginsDescriptor::GetNumViews</a></div><div class="ttdeci">uint32_t GetNumViews() const</div><div class="ttdoc">Get the number of views. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00187">Descriptors.cpp:187</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a1efc8be2c15fe67917c60041dc926701"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a1efc8be2c15fe67917c60041dc926701">armnn::OriginsDescriptor::operator==</a></div><div class="ttdeci">bool operator==(const OriginsDescriptor &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00135">Descriptors.cpp:135</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a379929e3b277f1ef94f3ce645870589d"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a379929e3b277f1ef94f3ce645870589d">armnn::OriginsDescriptor::GetConcatAxis</a></div><div class="ttdeci">unsigned int GetConcatAxis() const</div><div class="ttdoc">Get the concatenation axis value. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00162">Descriptors.cpp:162</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_aee83273c36d9506ce40c904a93c6ab8b"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#aee83273c36d9506ce40c904a93c6ab8b">armnn::ViewsDescriptor::operator=</a></div><div class="ttdeci">ViewsDescriptor &amp; operator=(ViewsDescriptor rhs)</div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00268">Descriptors.cpp:268</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a88d7c8ef4baba3690a4d25eec350ecb3"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a88d7c8ef4baba3690a4d25eec350ecb3">armnn::ViewsDescriptor::GetOrigins</a></div><div class="ttdeci">const OriginsDescriptor &amp; GetOrigins() const</div><div class="ttdoc">Get the View Origins. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00345">Descriptors.cpp:345</a></div></div>
<div class="ttc" id="structarmnn_1_1_views_descriptor_xhtml_a2b125117aa61f9baf3a9cb8658aa61a2"><div class="ttname"><a href="structarmnn_1_1_views_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">armnn::ViewsDescriptor::SetViewOriginCoord</a></div><div class="ttdeci">Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)</div><div class="ttdoc">Set the view origin coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00310">Descriptors.cpp:310</a></div></div>
<div class="ttc" id="namespacearmnn_xhtml_abdcd184ed3bd648bb31d385040cafd5d"><div class="ttname"><a href="namespacearmnn.xhtml#abdcd184ed3bd648bb31d385040cafd5d">armnn::MaxNumOfTensorDimensions</a></div><div class="ttdeci">constexpr unsigned int MaxNumOfTensorDimensions</div><div class="ttdef"><b>Definition:</b> <a href="_types_8hpp_source.xhtml#l00018">Types.hpp:18</a></div></div>
<div class="ttc" id="structarmnn_1_1_origins_descriptor_xhtml_a2b125117aa61f9baf3a9cb8658aa61a2"><div class="ttname"><a href="structarmnn_1_1_origins_descriptor.xhtml#a2b125117aa61f9baf3a9cb8658aa61a2">armnn::OriginsDescriptor::SetViewOriginCoord</a></div><div class="ttdeci">Status SetViewOriginCoord(uint32_t view, uint32_t coord, uint32_t value)</div><div class="ttdoc">Set the view origin coordinates. </div><div class="ttdef"><b>Definition:</b> <a href="_descriptors_8cpp_source.xhtml#l00167">Descriptors.cpp:167</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_e0a84d05c80a2ef4231141dcbbeac5c8.xhtml">armnn</a></li><li class="navelem"><a class="el" href="_descriptors_8cpp.xhtml">Descriptors.cpp</a></li>
    <li class="footer">Generated on Thu Feb 25 2021 17:27:28 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>