aboutsummaryrefslogtreecommitdiff
path: root/latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html
diff options
context:
space:
mode:
Diffstat (limited to 'latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html')
-rw-r--r--latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html64
1 files changed, 31 insertions, 33 deletions
diff --git a/latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html b/latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html
index 629c40d278..c220bbadf3 100644
--- a/latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html
+++ b/latest/structarmnn_1_1_quantized_multiplier_smaller_than_one.html
@@ -36,7 +36,7 @@
<img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 15rem; margin-top: .5rem; margin-left 13px"/>
<td id="projectalign" style="padding-left: 0.9em;">
<div id="projectname">
- &#160;<span id="projectnumber">24.02</span>
+ &#160;<span id="projectnumber">24.05</span>
</div>
</td>
</tr>
@@ -138,32 +138,30 @@ Public Member Functions</h2></td></tr>
<p>Constructs a <a class="el" href="structarmnn_1_1_quantized_multiplier_smaller_than_one.html" title="Performs multiplication of an integer with a multiplier which is less than one, using quantized integ...">QuantizedMultiplierSmallerThanOne</a> which will multiply by the given multiplier. </p>
<p>This stores the appropriate integer quantities (derived from the given multiplier) for later use. The implementation of this function is adapted from Android NN's QuantizeMultiplierSmallerThanOne(). </p>
-<p class="definition">Definition at line <a class="el" href="_conv_impl_8cpp_source.html#l00016">16</a> of file <a class="el" href="_conv_impl_8cpp_source.html">ConvImpl.cpp</a>.</p>
-<div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="_assert_8hpp.html#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(multiplier &gt;= 0.0f &amp;&amp; multiplier &lt; 1.0f);</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span> (multiplier == 0.0f)</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_Multiplier = 0;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_RightShift = 0;</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">else</span></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="keyword">const</span> <span class="keywordtype">double</span> q = std::frexp(multiplier, &amp;m_RightShift);</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_RightShift = -m_RightShift;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; int64_t qFixed = <span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(::round(q * (1ll &lt;&lt; 31)));</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="_assert_8hpp.html#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(qFixed &lt;= (1ll &lt;&lt; 31));</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span> (qFixed == (1ll &lt;&lt; 31))</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; qFixed /= 2;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; --m_RightShift;</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; <a class="code" href="_assert_8hpp.html#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(m_RightShift &gt;= 0);</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="_assert_8hpp.html#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a>(qFixed &lt;= std::numeric_limits&lt;int32_t&gt;::max());</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_Multiplier = <span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(qFixed);</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div>
+<p class="definition">Definition at line <a class="el" href="_conv_impl_8cpp_source.html#l00014">14</a> of file <a class="el" href="_conv_impl_8cpp_source.html">ConvImpl.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="_exceptions_8hpp.html#a5b0cd1f24b12298894d6367f186ea6dc">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a>(multiplier &gt;= 0.0f &amp;&amp; multiplier &lt; 1.0f,</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="stringliteral">&quot;QuantizedMultiplierSmallerThanOne: multiplier must be between 0.0f and 1.0f.&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">if</span> (multiplier == 0.0f)</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"> 20</span>&#160; m_Multiplier = 0;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_RightShift = 0;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> q = std::frexp(multiplier, &amp;m_RightShift);</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_RightShift = -m_RightShift;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; int64_t qFixed = <span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(::round(q * (1ll &lt;&lt; 31)));</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span> (qFixed == (1ll &lt;&lt; 31))</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; qFixed /= 2;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; --m_RightShift;</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; m_Multiplier = <span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(qFixed);</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;}</div>
</div><!-- fragment -->
-<p class="reference">References <a class="el" href="_assert_8hpp_source.html#l00014">ARMNN_ASSERT</a>.</p>
+<p class="reference">References <a class="el" href="_exceptions_8hpp_source.html#l00210">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a>.</p>
</div>
</div>
@@ -186,11 +184,11 @@ Public Member Functions</h2></td></tr>
<p>The implementation of this function is adapted from Android NN's MultiplyByQuantizedMultiplierSmallerThanOne(). </p>
-<p class="definition">Definition at line <a class="el" href="_conv_impl_8cpp_source.html#l00041">41</a> of file <a class="el" href="_conv_impl_8cpp_source.html">ConvImpl.cpp</a>.</p>
-<div class="fragment"><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; int32_t x = SaturatingRoundingDoublingHighMul(rhs, m_Multiplier);</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> RoundingDivideByPOT(x, m_RightShift);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
+<p class="definition">Definition at line <a class="el" href="_conv_impl_8cpp_source.html#l00037">37</a> of file <a class="el" href="_conv_impl_8cpp_source.html">ConvImpl.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; int32_t x = SaturatingRoundingDoublingHighMul(rhs, m_Multiplier);</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> RoundingDivideByPOT(x, m_RightShift);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
@@ -200,12 +198,12 @@ Public Member Functions</h2></td></tr>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
-<div class="ttc" id="a_assert_8hpp_html_a5698be69cbd5dfe6c28fcd9867e8cbed"><div class="ttname"><a href="_assert_8hpp.html#a5698be69cbd5dfe6c28fcd9867e8cbed">ARMNN_ASSERT</a></div><div class="ttdeci">#define ARMNN_ASSERT(COND)</div><div class="ttdef"><b>Definition:</b> <a href="_assert_8hpp_source.html#l00014">Assert.hpp:14</a></div></div>
+<div class="ttc" id="a_exceptions_8hpp_html_a5b0cd1f24b12298894d6367f186ea6dc"><div class="ttname"><a href="_exceptions_8hpp.html#a5b0cd1f24b12298894d6367f186ea6dc">ARMNN_THROW_INVALIDARG_MSG_IF_FALSE</a></div><div class="ttdeci">#define ARMNN_THROW_INVALIDARG_MSG_IF_FALSE(_cond, _str)</div><div class="ttdef"><b>Definition:</b> <a href="_exceptions_8hpp_source.html#l00210">Exceptions.hpp:210</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="structarmnn_1_1_quantized_multiplier_smaller_than_one.html">QuantizedMultiplierSmallerThanOne</a></li>
- <li class="footer">Generated on Wed Feb 14 2024 16:36:24 for Arm NN by
+ <li class="footer">Generated on Thu May 16 2024 09:31:58 for Arm NN by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>