arm_compute v18.05
[platform/upstream/armcl.git] / documentation / helpers__asymm_8h.xhtml
1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.11"/>
8 <meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
9 <title>Compute Library: src/core/CL/cl_kernels/helpers_asymm.h File Reference</title>
10 <link href="tabs.css" rel="stylesheet" type="text/css"/>
11 <script type="text/javascript" src="jquery.js"></script>
12 <script type="text/javascript" src="dynsections.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17 <script type="text/javascript">
18   $(document).ready(initResizable);
19   $(window).load(resizeHeight);
20 </script>
21 <link href="search/search.css" rel="stylesheet" type="text/css"/>
22 <script type="text/javascript" src="search/searchdata.js"></script>
23 <script type="text/javascript" src="search/search.js"></script>
24 <script type="text/javascript">
25   $(document).ready(function() { init_search(); });
26 </script>
27 <script type="text/x-mathjax-config">
28   MathJax.Hub.Config({
29     extensions: ["tex2jax.js"],
30     jax: ["input/TeX","output/HTML-CSS"],
31 });
32 </script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
33 <link href="doxygen.css" rel="stylesheet" type="text/css" />
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 56px;">
41   <td style="padding-left: 0.5em;">
42    <div id="projectname">Compute Library
43    &#160;<span id="projectnumber">18.05</span>
44    </div>
45   </td>
46  </tr>
47  </tbody>
48 </table>
49 </div>
50 <!-- end header part -->
51 <!-- Generated by Doxygen 1.8.11 -->
52 <script type="text/javascript">
53 var searchBox = new SearchBox("searchBox", "search",false,'Search');
54 </script>
55   <div id="navrow1" class="tabs">
56     <ul class="tablist">
57       <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
58       <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
59       <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
60       <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
61       <li class="current"><a href="files.xhtml"><span>Files</span></a></li>
62       <li>
63         <div id="MSearchBox" class="MSearchBoxInactive">
64         <span class="left">
65           <img id="MSearchSelect" src="search/mag_sel.png"
66                onmouseover="return searchBox.OnSearchSelectShow()"
67                onmouseout="return searchBox.OnSearchSelectHide()"
68                alt=""/>
69           <input type="text" id="MSearchField" value="Search" accesskey="S"
70                onfocus="searchBox.OnSearchFieldFocus(true)" 
71                onblur="searchBox.OnSearchFieldFocus(false)" 
72                onkeyup="searchBox.OnSearchFieldChange(event)"/>
73           </span><span class="right">
74             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
75           </span>
76         </div>
77       </li>
78     </ul>
79   </div>
80   <div id="navrow2" class="tabs2">
81     <ul class="tablist">
82       <li><a href="files.xhtml"><span>File&#160;List</span></a></li>
83       <li><a href="globals.xhtml"><span>Globals</span></a></li>
84     </ul>
85   </div>
86 </div><!-- top -->
87 <div id="side-nav" class="ui-resizable side-nav-resizable">
88   <div id="nav-tree">
89     <div id="nav-tree-contents">
90       <div id="nav-sync" class="sync"></div>
91     </div>
92   </div>
93   <div id="splitbar" style="-moz-user-select:none;" 
94        class="ui-resizable-handle">
95   </div>
96 </div>
97 <script type="text/javascript">
98 $(document).ready(function(){initNavTree('helpers__asymm_8h.xhtml','');});
99 </script>
100 <div id="doc-content">
101 <!-- window showing the filter options -->
102 <div id="MSearchSelectWindow"
103      onmouseover="return searchBox.OnSearchSelectShow()"
104      onmouseout="return searchBox.OnSearchSelectHide()"
105      onkeydown="return searchBox.OnSearchSelectKey(event)">
106 </div>
107
108 <!-- iframe showing the search results (closed by default) -->
109 <div id="MSearchResultsWindow">
110 <iframe src="javascript:void(0)" frameborder="0" 
111         name="MSearchResults" id="MSearchResults">
112 </iframe>
113 </div>
114
115 <div class="header">
116   <div class="summary">
117 <a href="#define-members">Macros</a> &#124;
118 <a href="#func-members">Functions</a>  </div>
119   <div class="headertitle">
120 <div class="title">helpers_asymm.h File Reference</div>  </div>
121 </div><!--header-->
122 <div class="contents">
123 <div class="textblock"><code>#include &quot;<a class="el" href="helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br />
124 </div>
125 <p><a href="helpers__asymm_8h_source.xhtml">Go to the source code of this file.</a></p>
126 <table class="memberdecls">
127 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
128 Macros</h2></td></tr>
129 <tr class="memitem:abf75e242631b23007e4046682aa57ec5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#abf75e242631b23007e4046682aa57ec5">ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</a>(size)</td></tr>
130 <tr class="memdesc:abf75e242631b23007e4046682aa57ec5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Correctly-rounded-to-nearest division by a power-of-two.  <a href="#abf75e242631b23007e4046682aa57ec5">More...</a><br /></td></tr>
131 <tr class="separator:abf75e242631b23007e4046682aa57ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:ad4b199221927cbabbf859e4d2efb688d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ad4b199221927cbabbf859e4d2efb688d">ASYMM_MULT_IMPL</a>(size)</td></tr>
133 <tr class="memdesc:ad4b199221927cbabbf859e4d2efb688d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Product of two numbers, interpreting them as fixed-point values in the interval [-1, 1), rounding to the nearest value, and saturating -1 * -1 to the maximum value.  <a href="#ad4b199221927cbabbf859e4d2efb688d">More...</a><br /></td></tr>
134 <tr class="separator:ad4b199221927cbabbf859e4d2efb688d"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a3d8a3968a069eb8abbc28d31c20f6b8c">ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</a>(size)</td></tr>
136 <tr class="memdesc:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates \( exp(x) \) for x in [-1/4, 0).  <a href="#a3d8a3968a069eb8abbc28d31c20f6b8c">More...</a><br /></td></tr>
137 <tr class="separator:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ab0b4069b25ac886d5cb6eb3b76473f88">ASYMM_SELECT_USING_MASK_IMPL</a>(size)</td></tr>
139 <tr class="memdesc:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Each bit of the result is set to the corresponding bit of either then_val or else_val depending on whether the corresponding bit of if_mask is set.  <a href="#ab0b4069b25ac886d5cb6eb3b76473f88">More...</a><br /></td></tr>
140 <tr class="separator:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:a8c47a92ec76a1e367b45305c17d9ea88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a8c47a92ec76a1e367b45305c17d9ea88">ASYMM_MASK_IF_ZERO_IMPL</a>(size)</td></tr>
142 <tr class="memdesc:a8c47a92ec76a1e367b45305c17d9ea88"><td class="mdescLeft">&#160;</td><td class="mdescRight">For each element of input vector, the corresponding bits of the result item are set if the input item is zero.  <a href="#a8c47a92ec76a1e367b45305c17d9ea88">More...</a><br /></td></tr>
143 <tr class="separator:a8c47a92ec76a1e367b45305c17d9ea88"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a6dd3d8d22942f0ff3e59b4e32cfd4de3">ASYMM_MASK_IF_NON_ZERO_IMPL</a>(size)</td></tr>
145 <tr class="memdesc:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="mdescLeft">&#160;</td><td class="mdescRight">For each element of input vector, the corresponding bits of the result item are set if the input item is non-zero.  <a href="#a6dd3d8d22942f0ff3e59b4e32cfd4de3">More...</a><br /></td></tr>
146 <tr class="separator:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:aa12ca21cb9a54d2e4c26d57303fe44a7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aa12ca21cb9a54d2e4c26d57303fe44a7">EXP_BARREL_SHIFTER_IMPL</a>(size)</td></tr>
148 <tr class="separator:aa12ca21cb9a54d2e4c26d57303fe44a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:a4d0a02b30d8cc5725d0a11781b488852"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a4d0a02b30d8cc5725d0a11781b488852">ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</a>(size)</td></tr>
150 <tr class="memdesc:a4d0a02b30d8cc5725d0a11781b488852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates \( exp(x) \) for x &lt; 0.  <a href="#a4d0a02b30d8cc5725d0a11781b488852">More...</a><br /></td></tr>
151 <tr class="separator:a4d0a02b30d8cc5725d0a11781b488852"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <tr class="memitem:a737312bc4a68c79a77cfab4849793bc0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a737312bc4a68c79a77cfab4849793bc0">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</a>(size)</td></tr>
153 <tr class="memdesc:a737312bc4a68c79a77cfab4849793bc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the product of a integer value by a power of two, with either a positive exponent (equivalent to an arithmetic left shift, saturating) or a negative exponent (equivalent to an arithmetic right shift, rounding to nearest).  <a href="#a737312bc4a68c79a77cfab4849793bc0">More...</a><br /></td></tr>
154 <tr class="separator:a737312bc4a68c79a77cfab4849793bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
155 <tr class="memitem:a8d97c6698c0e44424deae3f3130c55ac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a8d97c6698c0e44424deae3f3130c55ac">ASYMM_ROUNDING_HALF_SUM_IMPL</a>(size)</td></tr>
156 <tr class="memdesc:a8d97c6698c0e44424deae3f3130c55ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates (a+b)/2, rounded to the nearest integer.  <a href="#a8d97c6698c0e44424deae3f3130c55ac">More...</a><br /></td></tr>
157 <tr class="separator:a8d97c6698c0e44424deae3f3130c55ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <tr class="memitem:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a0e53aa5d4cbcec7a0c0085838f32453d">ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</a>(size)</td></tr>
159 <tr class="memdesc:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates \( 1 / (1 + x) \) for x in (0, 1).  <a href="#a0e53aa5d4cbcec7a0c0085838f32453d">More...</a><br /></td></tr>
160 <tr class="separator:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="memSeparator" colspan="2">&#160;</td></tr>
161 <tr class="memitem:aace85e2a32bacdaa4e2d2055deabfc57"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aace85e2a32bacdaa4e2d2055deabfc57">ASYMM_RESCALE_IMPL</a>(size)</td></tr>
162 <tr class="memdesc:aace85e2a32bacdaa4e2d2055deabfc57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Considering the integer value as fixed-point, change the number of integer bits and update value accordingly.  <a href="#aace85e2a32bacdaa4e2d2055deabfc57">More...</a><br /></td></tr>
163 <tr class="separator:aace85e2a32bacdaa4e2d2055deabfc57"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 <tr class="memitem:aa43fc359dea64362f3016384f4269845"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(x,  exponent,  size)&#160;&#160;&#160;asymm_rounding_divide_by_POW2_##size(x, exponent)</td></tr>
165 <tr class="separator:aa43fc359dea64362f3016384f4269845"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 <tr class="memitem:a5483aefd5e07244661178bfd3f434448"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(a,  b,  size)&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#a525a42d38133b1051b8924b456add4a1">asymm_mult</a>##size(a, b)</td></tr>
167 <tr class="separator:a5483aefd5e07244661178bfd3f434448"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:a86de0ffca367bfcf27a8ae5dd1fdef2d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a86de0ffca367bfcf27a8ae5dd1fdef2d">ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</a>(x,  quantized_multiplier,  right_shift,  size)&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(<a class="el" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x, quantized_multiplier, size), right_shift, size)</td></tr>
169 <tr class="separator:a86de0ffca367bfcf27a8ae5dd1fdef2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
170 <tr class="memitem:aeebdcd88f4320931cd4a599ad1527e83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aeebdcd88f4320931cd4a599ad1527e83">ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</a>(a,  size)&#160;&#160;&#160;asymm_exp_on_interval_between_negative_one_quarter_and_0_excl##size(a)</td></tr>
171 <tr class="separator:aeebdcd88f4320931cd4a599ad1527e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
172 <tr class="memitem:a9bc08a8c1833c5e6055ad6665e3ccf12"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a>(if_mask,  then_val,  else_val,  size)&#160;&#160;&#160;asymm_select_using_mask##size(if_mask, then_val, else_val)</td></tr>
173 <tr class="separator:a9bc08a8c1833c5e6055ad6665e3ccf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:afc6a76528024472919bb5d50d067578b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#afc6a76528024472919bb5d50d067578b">ASYMM_MASK_IF_ZERO</a>(a,  size)&#160;&#160;&#160;asymm_mask_if_zero##size(a)</td></tr>
175 <tr class="separator:afc6a76528024472919bb5d50d067578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
176 <tr class="memitem:af1d5450c9c4c13a6b7aa52af197b54b2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a>(a,  size)&#160;&#160;&#160;asymm_mask_if_non_zero##size(a)</td></tr>
177 <tr class="separator:af1d5450c9c4c13a6b7aa52af197b54b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
178 <tr class="memitem:ace9ecff421cf885ad2c2d72d87c492cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ace9ecff421cf885ad2c2d72d87c492cb">EXP_BARREL_SHIFTER</a>(result,  exponent,  fp_multiplier,  k_integer_bits,  k_fractional_bits,  remainder,  size)&#160;&#160;&#160;exp_barrel_shifter##size(result, exponent, fp_multiplier, k_integer_bits, k_fractional_bits, remainder)</td></tr>
179 <tr class="separator:ace9ecff421cf885ad2c2d72d87c492cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8">ASYMM_EXP_ON_NEGATIVE_VALUES</a>(a,  k_integer_bits,  size)&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#a54aedfa17c5ac2567107d5f488b0f4af">asymm_exp_on_negative_values</a>##size(a, k_integer_bits)</td></tr>
181 <tr class="separator:a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
182 <tr class="memitem:ae77f34e1316d52c1ee84c35be9efb0d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae77f34e1316d52c1ee84c35be9efb0d8">ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</a>(a,  size)&#160;&#160;&#160;asymm_one_over_one_plus_x_for_x_in_0_1##size(a)</td></tr>
183 <tr class="separator:ae77f34e1316d52c1ee84c35be9efb0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
184 <tr class="memitem:a4cc3ff3a2eeb5f5e9d6743e08f632928"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a>(x,  exponent,  size)&#160;&#160;&#160;asymm_saturating_rounding_mult_by_pow2##size(x, exponent)</td></tr>
185 <tr class="separator:a4cc3ff3a2eeb5f5e9d6743e08f632928"><td class="memSeparator" colspan="2">&#160;</td></tr>
186 <tr class="memitem:ad47fa44c1566aa4678fe524478490612"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ad47fa44c1566aa4678fe524478490612">ASYMM_ROUNDING_HALF_SUM</a>(a,  b,  size)&#160;&#160;&#160;asymm_rounding_half_sum##size(a, b)</td></tr>
187 <tr class="separator:ad47fa44c1566aa4678fe524478490612"><td class="memSeparator" colspan="2">&#160;</td></tr>
188 <tr class="memitem:a98585f1bb84dea90aecbf59785c46151"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a98585f1bb84dea90aecbf59785c46151">ASYMM_RESCALE</a>(value,  src_integer_bits,  dst_integer_bits,  size)&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#ad57ea340cdcfeb2e1375b70c3ae59bae">asymm_rescale</a>##size(value, src_integer_bits, dst_integer_bits)</td></tr>
189 <tr class="separator:a98585f1bb84dea90aecbf59785c46151"><td class="memSeparator" colspan="2">&#160;</td></tr>
190 </table><table class="memberdecls">
191 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
192 Functions</h2></td></tr>
193 <tr class="memitem:ae62b2416b40ca28724c065e95e18a25b"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae62b2416b40ca28724c065e95e18a25b">asymm_rounding_divide_by_POW2_2</a> (int2 x, int exponent)</td></tr>
194 <tr class="separator:ae62b2416b40ca28724c065e95e18a25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
195 <tr class="memitem:a2660d5193f286b247cf533d8ca234e77"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a2660d5193f286b247cf533d8ca234e77">asymm_rounding_divide_by_POW2_4</a> (int4 x, int exponent)</td></tr>
196 <tr class="separator:a2660d5193f286b247cf533d8ca234e77"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:a38afb1b30447264fd62ca7ad86e7ea19"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a38afb1b30447264fd62ca7ad86e7ea19">asymm_rounding_divide_by_POW2_8</a> (int8 x, int exponent)</td></tr>
198 <tr class="separator:a38afb1b30447264fd62ca7ad86e7ea19"><td class="memSeparator" colspan="2">&#160;</td></tr>
199 <tr class="memitem:a21d65cd6ac14696d58509b82789db845"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a21d65cd6ac14696d58509b82789db845">asymm_rounding_divide_by_POW2_16</a> (int16 x, int exponent)</td></tr>
200 <tr class="separator:a21d65cd6ac14696d58509b82789db845"><td class="memSeparator" colspan="2">&#160;</td></tr>
201 <tr class="memitem:a5038b78913b76d782cc0aa0d841bd7ed"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a5038b78913b76d782cc0aa0d841bd7ed">asymm_mult2</a> (int2 a, int2 b)</td></tr>
202 <tr class="separator:a5038b78913b76d782cc0aa0d841bd7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:a6dca28649388d59ec0281af70d4507b2"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a6dca28649388d59ec0281af70d4507b2">asymm_mult4</a> (int4 a, int4 b)</td></tr>
204 <tr class="separator:a6dca28649388d59ec0281af70d4507b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
205 <tr class="memitem:a165b0bbab841712ea2c9a17a09bfa166"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a165b0bbab841712ea2c9a17a09bfa166">asymm_mult8</a> (int8 a, int8 b)</td></tr>
206 <tr class="separator:a165b0bbab841712ea2c9a17a09bfa166"><td class="memSeparator" colspan="2">&#160;</td></tr>
207 <tr class="memitem:aef32e3a9c804f145deb6b88f0a444919"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aef32e3a9c804f145deb6b88f0a444919">asymm_mult16</a> (int16 a, int16 b)</td></tr>
208 <tr class="separator:aef32e3a9c804f145deb6b88f0a444919"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 <tr class="memitem:a8eb88d417247a1b8b8929e5c8faeb48d"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a8eb88d417247a1b8b8929e5c8faeb48d">asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2</a> (int2 a)</td></tr>
210 <tr class="separator:a8eb88d417247a1b8b8929e5c8faeb48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
211 <tr class="memitem:a43aa0011bd9b23ce3f691a9ae205fe07"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a43aa0011bd9b23ce3f691a9ae205fe07">asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4</a> (int4 a)</td></tr>
212 <tr class="separator:a43aa0011bd9b23ce3f691a9ae205fe07"><td class="memSeparator" colspan="2">&#160;</td></tr>
213 <tr class="memitem:accb6ee0e0c578704ae23e6ab0a57cdd0"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#accb6ee0e0c578704ae23e6ab0a57cdd0">asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8</a> (int8 a)</td></tr>
214 <tr class="separator:accb6ee0e0c578704ae23e6ab0a57cdd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
215 <tr class="memitem:a1d51b02a83af2a152fa52755f572f5a6"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a1d51b02a83af2a152fa52755f572f5a6">asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16</a> (int16 a)</td></tr>
216 <tr class="separator:a1d51b02a83af2a152fa52755f572f5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
217 <tr class="memitem:a0dade5bb9ed9aae49b6bb2875e273d89"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a0dade5bb9ed9aae49b6bb2875e273d89">asymm_select_using_mask2</a> (int2 if_mask, int2 then_val, int2 else_val)</td></tr>
218 <tr class="separator:a0dade5bb9ed9aae49b6bb2875e273d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 <tr class="memitem:a44e4d74ed42006c4153a9cb6c97285de"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a44e4d74ed42006c4153a9cb6c97285de">asymm_select_using_mask4</a> (int4 if_mask, int4 then_val, int4 else_val)</td></tr>
220 <tr class="separator:a44e4d74ed42006c4153a9cb6c97285de"><td class="memSeparator" colspan="2">&#160;</td></tr>
221 <tr class="memitem:a64682bc22716ad771d012ce4c7398652"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a64682bc22716ad771d012ce4c7398652">asymm_select_using_mask8</a> (int8 if_mask, int8 then_val, int8 else_val)</td></tr>
222 <tr class="separator:a64682bc22716ad771d012ce4c7398652"><td class="memSeparator" colspan="2">&#160;</td></tr>
223 <tr class="memitem:a7effd9e7de9fefa9d4ae4eb2cfc06090"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a7effd9e7de9fefa9d4ae4eb2cfc06090">asymm_select_using_mask16</a> (int16 if_mask, int16 then_val, int16 else_val)</td></tr>
224 <tr class="separator:a7effd9e7de9fefa9d4ae4eb2cfc06090"><td class="memSeparator" colspan="2">&#160;</td></tr>
225 <tr class="memitem:a6ed499c821cf4f6b3bc4049d49e35139"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a6ed499c821cf4f6b3bc4049d49e35139">asymm_mask_if_zero2</a> (int2 a)</td></tr>
226 <tr class="separator:a6ed499c821cf4f6b3bc4049d49e35139"><td class="memSeparator" colspan="2">&#160;</td></tr>
227 <tr class="memitem:aed95c68d9545d401d2323cd8ad287fe1"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aed95c68d9545d401d2323cd8ad287fe1">asymm_mask_if_zero4</a> (int4 a)</td></tr>
228 <tr class="separator:aed95c68d9545d401d2323cd8ad287fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
229 <tr class="memitem:abefb0a278a588f03dc561db900df0958"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#abefb0a278a588f03dc561db900df0958">asymm_mask_if_zero8</a> (int8 a)</td></tr>
230 <tr class="separator:abefb0a278a588f03dc561db900df0958"><td class="memSeparator" colspan="2">&#160;</td></tr>
231 <tr class="memitem:a509916b7ee582d87faf1312fde111c3b"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a509916b7ee582d87faf1312fde111c3b">asymm_mask_if_zero16</a> (int16 a)</td></tr>
232 <tr class="separator:a509916b7ee582d87faf1312fde111c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
233 <tr class="memitem:a885a16f240b119acc9f0721c07acdce9"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a885a16f240b119acc9f0721c07acdce9">asymm_mask_if_non_zero2</a> (int2 a)</td></tr>
234 <tr class="separator:a885a16f240b119acc9f0721c07acdce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
235 <tr class="memitem:a2f180955030087d7538d5dc89f29eba9"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a2f180955030087d7538d5dc89f29eba9">asymm_mask_if_non_zero4</a> (int4 a)</td></tr>
236 <tr class="separator:a2f180955030087d7538d5dc89f29eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
237 <tr class="memitem:a8de81d453a39d0f589b0d3e007c7fde1"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a8de81d453a39d0f589b0d3e007c7fde1">asymm_mask_if_non_zero8</a> (int8 a)</td></tr>
238 <tr class="separator:a8de81d453a39d0f589b0d3e007c7fde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
239 <tr class="memitem:a1e1fef1353d2458beb7fab06cc8f460e"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a1e1fef1353d2458beb7fab06cc8f460e">asymm_mask_if_non_zero16</a> (int16 a)</td></tr>
240 <tr class="separator:a1e1fef1353d2458beb7fab06cc8f460e"><td class="memSeparator" colspan="2">&#160;</td></tr>
241 <tr class="memitem:ad12110cc5f3099fa90b631e7b05772a0"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ad12110cc5f3099fa90b631e7b05772a0">exp_barrel_shifter2</a> (int2 result, int exponent, int fp_multiplier, int k_integer_bits, int k_fractional_bits, int2 remainder)</td></tr>
242 <tr class="separator:ad12110cc5f3099fa90b631e7b05772a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
243 <tr class="memitem:a521e3ded9b6ca69692e9415ef9b4cee1"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a521e3ded9b6ca69692e9415ef9b4cee1">exp_barrel_shifter4</a> (int4 result, int exponent, int fp_multiplier, int k_integer_bits, int k_fractional_bits, int4 remainder)</td></tr>
244 <tr class="separator:a521e3ded9b6ca69692e9415ef9b4cee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
245 <tr class="memitem:a936aed524c644efcf20b28877e3a0f3f"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a936aed524c644efcf20b28877e3a0f3f">exp_barrel_shifter8</a> (int8 result, int exponent, int fp_multiplier, int k_integer_bits, int k_fractional_bits, int8 remainder)</td></tr>
246 <tr class="separator:a936aed524c644efcf20b28877e3a0f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
247 <tr class="memitem:a4bde4cd395697b5d37af5116773f16ed"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a4bde4cd395697b5d37af5116773f16ed">exp_barrel_shifter16</a> (int16 result, int exponent, int fp_multiplier, int k_integer_bits, int k_fractional_bits, int16 remainder)</td></tr>
248 <tr class="separator:a4bde4cd395697b5d37af5116773f16ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
249 <tr class="memitem:a35b98dc80eefc6ce799720861a668691"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a35b98dc80eefc6ce799720861a668691">asymm_exp_on_negative_values2</a> (int2 a, int k_integer_bits)</td></tr>
250 <tr class="separator:a35b98dc80eefc6ce799720861a668691"><td class="memSeparator" colspan="2">&#160;</td></tr>
251 <tr class="memitem:aa1dda459c2b10a9620b2c14a928ed4ba"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aa1dda459c2b10a9620b2c14a928ed4ba">asymm_exp_on_negative_values4</a> (int4 a, int k_integer_bits)</td></tr>
252 <tr class="separator:aa1dda459c2b10a9620b2c14a928ed4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
253 <tr class="memitem:a429f20ad96413c1f7d4ee968afed6f0d"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a429f20ad96413c1f7d4ee968afed6f0d">asymm_exp_on_negative_values8</a> (int8 a, int k_integer_bits)</td></tr>
254 <tr class="separator:a429f20ad96413c1f7d4ee968afed6f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
255 <tr class="memitem:ae13cfab30e1d4c5f797f9d3d7c6acacf"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae13cfab30e1d4c5f797f9d3d7c6acacf">asymm_exp_on_negative_values16</a> (int16 a, int k_integer_bits)</td></tr>
256 <tr class="separator:ae13cfab30e1d4c5f797f9d3d7c6acacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
257 <tr class="memitem:ac5d336b40941ee7c63a750b3dc92b030"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ac5d336b40941ee7c63a750b3dc92b030">asymm_saturating_rounding_mult_by_pow22</a> (int2 x, int exponent)</td></tr>
258 <tr class="separator:ac5d336b40941ee7c63a750b3dc92b030"><td class="memSeparator" colspan="2">&#160;</td></tr>
259 <tr class="memitem:af06991bb67792a6fec9c426923f39745"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#af06991bb67792a6fec9c426923f39745">asymm_saturating_rounding_mult_by_pow24</a> (int4 x, int exponent)</td></tr>
260 <tr class="separator:af06991bb67792a6fec9c426923f39745"><td class="memSeparator" colspan="2">&#160;</td></tr>
261 <tr class="memitem:a1bfbcc866bf09921d6bf4fc39cd38d89"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a1bfbcc866bf09921d6bf4fc39cd38d89">asymm_saturating_rounding_mult_by_pow28</a> (int8 x, int exponent)</td></tr>
262 <tr class="separator:a1bfbcc866bf09921d6bf4fc39cd38d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
263 <tr class="memitem:a88b3d0aae3bcf134f9eb4b5637a4b73c"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a88b3d0aae3bcf134f9eb4b5637a4b73c">asymm_saturating_rounding_mult_by_pow216</a> (int16 x, int exponent)</td></tr>
264 <tr class="separator:a88b3d0aae3bcf134f9eb4b5637a4b73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
265 <tr class="memitem:acd43480a8530400e781603a995adcad0"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#acd43480a8530400e781603a995adcad0">asymm_rounding_half_sum2</a> (int2 a, int2 b)</td></tr>
266 <tr class="separator:acd43480a8530400e781603a995adcad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
267 <tr class="memitem:a7dda5bba50450367760a7ad1148881be"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a7dda5bba50450367760a7ad1148881be">asymm_rounding_half_sum4</a> (int4 a, int4 b)</td></tr>
268 <tr class="separator:a7dda5bba50450367760a7ad1148881be"><td class="memSeparator" colspan="2">&#160;</td></tr>
269 <tr class="memitem:acba55fb1a4dfa6ab5080cc276550d5fd"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#acba55fb1a4dfa6ab5080cc276550d5fd">asymm_rounding_half_sum8</a> (int8 a, int8 b)</td></tr>
270 <tr class="separator:acba55fb1a4dfa6ab5080cc276550d5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
271 <tr class="memitem:ab13b1910b09c0cf268f6a8af0e2013e2"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ab13b1910b09c0cf268f6a8af0e2013e2">asymm_rounding_half_sum16</a> (int16 a, int16 b)</td></tr>
272 <tr class="separator:ab13b1910b09c0cf268f6a8af0e2013e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
273 <tr class="memitem:a6524f601cf9a2ae69d5eab74576c93d0"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a6524f601cf9a2ae69d5eab74576c93d0">asymm_one_over_one_plus_x_for_x_in_0_12</a> (int2 a)</td></tr>
274 <tr class="separator:a6524f601cf9a2ae69d5eab74576c93d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
275 <tr class="memitem:a049439083adb7b960079832ad6367389"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a049439083adb7b960079832ad6367389">asymm_one_over_one_plus_x_for_x_in_0_14</a> (int4 a)</td></tr>
276 <tr class="separator:a049439083adb7b960079832ad6367389"><td class="memSeparator" colspan="2">&#160;</td></tr>
277 <tr class="memitem:abe37c90e62ee60565cbfbb38c4358fd6"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#abe37c90e62ee60565cbfbb38c4358fd6">asymm_one_over_one_plus_x_for_x_in_0_18</a> (int8 a)</td></tr>
278 <tr class="separator:abe37c90e62ee60565cbfbb38c4358fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
279 <tr class="memitem:ac3316120c01b6c993ac8f2d3f2b4ff03"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ac3316120c01b6c993ac8f2d3f2b4ff03">asymm_one_over_one_plus_x_for_x_in_0_116</a> (int16 a)</td></tr>
280 <tr class="separator:ac3316120c01b6c993ac8f2d3f2b4ff03"><td class="memSeparator" colspan="2">&#160;</td></tr>
281 <tr class="memitem:a49b94bfc99276975c6fed32c693cbac5"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a49b94bfc99276975c6fed32c693cbac5">asymm_rescale2</a> (int2 value, int src_integer_bits, int dst_integer_bits)</td></tr>
282 <tr class="separator:a49b94bfc99276975c6fed32c693cbac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
283 <tr class="memitem:a8f9d043040f28f051c7145281de94681"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a8f9d043040f28f051c7145281de94681">asymm_rescale4</a> (int4 value, int src_integer_bits, int dst_integer_bits)</td></tr>
284 <tr class="separator:a8f9d043040f28f051c7145281de94681"><td class="memSeparator" colspan="2">&#160;</td></tr>
285 <tr class="memitem:a478b69bea5edb6ad939d8e7edd9e7e3f"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a478b69bea5edb6ad939d8e7edd9e7e3f">asymm_rescale8</a> (int8 value, int src_integer_bits, int dst_integer_bits)</td></tr>
286 <tr class="separator:a478b69bea5edb6ad939d8e7edd9e7e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
287 <tr class="memitem:a700e603af523859efb90ed4b52b41c84"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a700e603af523859efb90ed4b52b41c84">asymm_rescale16</a> (int16 value, int src_integer_bits, int dst_integer_bits)</td></tr>
288 <tr class="separator:a700e603af523859efb90ed4b52b41c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
289 </table>
290 <h2 class="groupheader">Macro Definition Documentation</h2>
291 <a class="anchor" id="aeebdcd88f4320931cd4a599ad1527e83"></a>
292 <div class="memitem">
293 <div class="memproto">
294       <table class="memname">
295         <tr>
296           <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</td>
297           <td>(</td>
298           <td class="paramtype">&#160;</td>
299           <td class="paramname">a, </td>
300         </tr>
301         <tr>
302           <td class="paramkey"></td>
303           <td></td>
304           <td class="paramtype">&#160;</td>
305           <td class="paramname">size&#160;</td>
306         </tr>
307         <tr>
308           <td></td>
309           <td>)</td>
310           <td></td><td>&#160;&#160;&#160;asymm_exp_on_interval_between_negative_one_quarter_and_0_excl##size(a)</td>
311         </tr>
312       </table>
313 </div><div class="memdoc">
314
315 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00299">299</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
316
317 </div>
318 </div>
319 <a class="anchor" id="a3d8a3968a069eb8abbc28d31c20f6b8c"></a>
320 <div class="memitem">
321 <div class="memproto">
322       <table class="memname">
323         <tr>
324           <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</td>
325           <td>(</td>
326           <td class="paramtype">&#160;</td>
327           <td class="paramname">size</td><td>)</td>
328           <td></td>
329         </tr>
330       </table>
331 </div><div class="memdoc">
332 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_exp_on_interval_between_negative_one_quarter_and_0_excl<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                               \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) constant_term     = 1895147668;                                                              \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) constant_1_over_3 = 715827883;                                                               \</span></div><div class="line"><span class="preprocessor">        const int k_fractional_bits = 31;                                                                                           \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x = a + (1 &lt;&lt; (k_fractional_bits - 3));                                                                                     \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x2 = ASYMM_MULT(x, x, size);                                                                                                \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x3 = ASYMM_MULT(x2, x, size);                                                                                               \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x4 = ASYMM_MULT(x2, x2, size);                                                                                              \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x4_over_4 = ASYMM_ROUNDING_DIVIDE_BY_POW2(x4, 2, size);                                                                     \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x4_over_24_plus_x3_over_6_plus_x2 = ASYMM_MULT((x4_over_4 + x3), constant_1_over_3, size) + x2;                             \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                                    \</span></div><div class="line"><span class="preprocessor">        x4_over_24_plus_x3_over_6_plus_x2_over_2 = ASYMM_ROUNDING_DIVIDE_BY_POW2(x4_over_24_plus_x3_over_6_plus_x2, 1, size);       \</span></div><div class="line"><span class="preprocessor">        return constant_term + ASYMM_MULT(constant_term, x + x4_over_24_plus_x3_over_6_plus_x2_over_2, size);                       \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
333 </div><!-- fragment -->
334 <p>Calculates \( exp(x) \) for x in [-1/4, 0). </p>
335 <dl class="params"><dt>Parameters</dt><dd>
336   <table class="params">
337     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
338   </table>
339   </dd>
340 </dl>
341 <dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
342
343 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00077">77</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
344
345 </div>
346 </div>
347 <a class="anchor" id="a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"></a>
348 <div class="memitem">
349 <div class="memproto">
350       <table class="memname">
351         <tr>
352           <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES</td>
353           <td>(</td>
354           <td class="paramtype">&#160;</td>
355           <td class="paramname">a, </td>
356         </tr>
357         <tr>
358           <td class="paramkey"></td>
359           <td></td>
360           <td class="paramtype">&#160;</td>
361           <td class="paramname">k_integer_bits, </td>
362         </tr>
363         <tr>
364           <td class="paramkey"></td>
365           <td></td>
366           <td class="paramtype">&#160;</td>
367           <td class="paramname">size&#160;</td>
368         </tr>
369         <tr>
370           <td></td>
371           <td>)</td>
372           <td></td><td>&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#a54aedfa17c5ac2567107d5f488b0f4af">asymm_exp_on_negative_values</a>##size(a, k_integer_bits)</td>
373         </tr>
374       </table>
375 </div><div class="memdoc">
376
377 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00304">304</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
378
379 </div>
380 </div>
381 <a class="anchor" id="a4d0a02b30d8cc5725d0a11781b488852"></a>
382 <div class="memitem">
383 <div class="memproto">
384       <table class="memname">
385         <tr>
386           <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</td>
387           <td>(</td>
388           <td class="paramtype">&#160;</td>
389           <td class="paramname">size</td><td>)</td>
390           <td></td>
391         </tr>
392       </table>
393 </div><div class="memdoc">
394
395 <p>Calculates \( exp(x) \) for x &lt; 0. </p>
396 <dl class="params"><dt>Parameters</dt><dd>
397   <table class="params">
398     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
399   </table>
400   </dd>
401 </dl>
402 <dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
403
404 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00164">164</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
405
406 </div>
407 </div>
408 <a class="anchor" id="af1d5450c9c4c13a6b7aa52af197b54b2"></a>
409 <div class="memitem">
410 <div class="memproto">
411       <table class="memname">
412         <tr>
413           <td class="memname">#define ASYMM_MASK_IF_NON_ZERO</td>
414           <td>(</td>
415           <td class="paramtype">&#160;</td>
416           <td class="paramname">a, </td>
417         </tr>
418         <tr>
419           <td class="paramkey"></td>
420           <td></td>
421           <td class="paramtype">&#160;</td>
422           <td class="paramname">size&#160;</td>
423         </tr>
424         <tr>
425           <td></td>
426           <td>)</td>
427           <td></td><td>&#160;&#160;&#160;asymm_mask_if_non_zero##size(a)</td>
428         </tr>
429       </table>
430 </div><div class="memdoc">
431
432 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00302">302</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
433
434 </div>
435 </div>
436 <a class="anchor" id="a6dd3d8d22942f0ff3e59b4e32cfd4de3"></a>
437 <div class="memitem">
438 <div class="memproto">
439       <table class="memname">
440         <tr>
441           <td class="memname">#define ASYMM_MASK_IF_NON_ZERO_IMPL</td>
442           <td>(</td>
443           <td class="paramtype">&#160;</td>
444           <td class="paramname">size</td><td>)</td>
445           <td></td>
446         </tr>
447       </table>
448 </div><div class="memdoc">
449 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_mask_if_non_zero<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a) \</span></div><div class="line"><span class="preprocessor">    {                                                                                        \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) all_zeros = 0;                                        \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) all_ones  = ~0;                                       \</span></div><div class="line"><span class="preprocessor">        return select(all_zeros, all_ones, a != 0);                                          \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
450 </div><!-- fragment -->
451 <p>For each element of input vector, the corresponding bits of the result item are set if the input item is non-zero. </p>
452 <dl class="params"><dt>Parameters</dt><dd>
453   <table class="params">
454     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
455   </table>
456   </dd>
457 </dl>
458 <dl class="section return"><dt>Returns</dt><dd>Output vector with bits set when corresponding bit in <code>a</code> is non zero. </dd></dl>
459
460 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00136">136</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
461
462 </div>
463 </div>
464 <a class="anchor" id="afc6a76528024472919bb5d50d067578b"></a>
465 <div class="memitem">
466 <div class="memproto">
467       <table class="memname">
468         <tr>
469           <td class="memname">#define ASYMM_MASK_IF_ZERO</td>
470           <td>(</td>
471           <td class="paramtype">&#160;</td>
472           <td class="paramname">a, </td>
473         </tr>
474         <tr>
475           <td class="paramkey"></td>
476           <td></td>
477           <td class="paramtype">&#160;</td>
478           <td class="paramname">size&#160;</td>
479         </tr>
480         <tr>
481           <td></td>
482           <td>)</td>
483           <td></td><td>&#160;&#160;&#160;asymm_mask_if_zero##size(a)</td>
484         </tr>
485       </table>
486 </div><div class="memdoc">
487
488 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00301">301</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
489
490 </div>
491 </div>
492 <a class="anchor" id="a8c47a92ec76a1e367b45305c17d9ea88"></a>
493 <div class="memitem">
494 <div class="memproto">
495       <table class="memname">
496         <tr>
497           <td class="memname">#define ASYMM_MASK_IF_ZERO_IMPL</td>
498           <td>(</td>
499           <td class="paramtype">&#160;</td>
500           <td class="paramname">size</td><td>)</td>
501           <td></td>
502         </tr>
503       </table>
504 </div><div class="memdoc">
505 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_mask_if_zero<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a) \</span></div><div class="line"><span class="preprocessor">    {                                                                                    \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) all_zeros = 0;                                    \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) all_ones  = ~0;                                   \</span></div><div class="line"><span class="preprocessor">        return select(all_zeros, all_ones, a == 0);                                      \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
506 </div><!-- fragment -->
507 <p>For each element of input vector, the corresponding bits of the result item are set if the input item is zero. </p>
508 <dl class="params"><dt>Parameters</dt><dd>
509   <table class="params">
510     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
511   </table>
512   </dd>
513 </dl>
514 <dl class="section return"><dt>Returns</dt><dd>Output vector with bits set when corresponding bit in <code>a</code> is zero. </dd></dl>
515
516 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00121">121</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
517
518 </div>
519 </div>
520 <a class="anchor" id="a5483aefd5e07244661178bfd3f434448"></a>
521 <div class="memitem">
522 <div class="memproto">
523       <table class="memname">
524         <tr>
525           <td class="memname">#define ASYMM_MULT</td>
526           <td>(</td>
527           <td class="paramtype">&#160;</td>
528           <td class="paramname">a, </td>
529         </tr>
530         <tr>
531           <td class="paramkey"></td>
532           <td></td>
533           <td class="paramtype">&#160;</td>
534           <td class="paramname">b, </td>
535         </tr>
536         <tr>
537           <td class="paramkey"></td>
538           <td></td>
539           <td class="paramtype">&#160;</td>
540           <td class="paramname">size&#160;</td>
541         </tr>
542         <tr>
543           <td></td>
544           <td>)</td>
545           <td></td><td>&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#a525a42d38133b1051b8924b456add4a1">asymm_mult</a>##size(a, b)</td>
546         </tr>
547       </table>
548 </div><div class="memdoc">
549
550 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00296">296</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
551
552 </div>
553 </div>
554 <a class="anchor" id="a86de0ffca367bfcf27a8ae5dd1fdef2d"></a>
555 <div class="memitem">
556 <div class="memproto">
557       <table class="memname">
558         <tr>
559           <td class="memname">#define ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</td>
560           <td>(</td>
561           <td class="paramtype">&#160;</td>
562           <td class="paramname">x, </td>
563         </tr>
564         <tr>
565           <td class="paramkey"></td>
566           <td></td>
567           <td class="paramtype">&#160;</td>
568           <td class="paramname">quantized_multiplier, </td>
569         </tr>
570         <tr>
571           <td class="paramkey"></td>
572           <td></td>
573           <td class="paramtype">&#160;</td>
574           <td class="paramname">right_shift, </td>
575         </tr>
576         <tr>
577           <td class="paramkey"></td>
578           <td></td>
579           <td class="paramtype">&#160;</td>
580           <td class="paramname">size&#160;</td>
581         </tr>
582         <tr>
583           <td></td>
584           <td>)</td>
585           <td></td><td>&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(<a class="el" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x, quantized_multiplier, size), right_shift, size)</td>
586         </tr>
587       </table>
588 </div><div class="memdoc">
589
590 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00297">297</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
591
592 <p>Referenced by <a class="el" href="direct__convolution__1x1__3x3__5x5__quantized_8cl_source.xhtml#l00278">output_stage_quantized()</a>.</p>
593
594 </div>
595 </div>
596 <a class="anchor" id="ad4b199221927cbabbf859e4d2efb688d"></a>
597 <div class="memitem">
598 <div class="memproto">
599       <table class="memname">
600         <tr>
601           <td class="memname">#define ASYMM_MULT_IMPL</td>
602           <td>(</td>
603           <td class="paramtype">&#160;</td>
604           <td class="paramname">size</td><td>)</td>
605           <td></td>
606         </tr>
607       </table>
608 </div><div class="memdoc">
609 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="softmax__layer__quantized_8cl.xhtml#a525a42d38133b1051b8924b456add4a1">asymm_mult</a><span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a, VEC_DATA_TYPE(int, size) b) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                        \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                             \</span></div><div class="line"><span class="preprocessor">        overflow = a == b &amp;&amp; a == INT_MIN;                                                                   \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                            \</span></div><div class="line"><span class="preprocessor">        a_64 = convert_long##size(a);                                                                        \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                            \</span></div><div class="line"><span class="preprocessor">        b_64 = convert_long##size(b);                                                                        \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                            \</span></div><div class="line"><span class="preprocessor">        ab_64 = a_64 * b_64;                                                                                 \</span></div><div class="line"><span class="preprocessor">        </span><span class="comment">/* COMPMID-907 */</span><span class="preprocessor">                                                                                    \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                             \</span></div><div class="line"><span class="preprocessor">        ab_x2_high32 = convert_int##size(((ab_64 + (1 &lt;&lt; 30)) &gt;&gt; 31));                                       \</span></div><div class="line"><span class="preprocessor">        return select(ab_x2_high32, INT_MAX, overflow);                                                      \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="softmax__layer__quantized_8cl_xhtml_a525a42d38133b1051b8924b456add4a1"><div class="ttname"><a href="softmax__layer__quantized_8cl.xhtml#a525a42d38133b1051b8924b456add4a1">asymm_mult</a></div><div class="ttdeci">#define asymm_mult(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="softmax__layer__quantized_8cl_source.xhtml#l00056">softmax_layer_quantized.cl:56</a></div></div>
610 <div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
611 </div><!-- fragment -->
612 <p>Product of two numbers, interpreting them as fixed-point values in the interval [-1, 1), rounding to the nearest value, and saturating -1 * -1 to the maximum value. </p>
613 <dl class="params"><dt>Parameters</dt><dd>
614   <table class="params">
615     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
616   </table>
617   </dd>
618 </dl>
619 <dl class="section return"><dt>Returns</dt><dd>Product of two fixed-point numbers. </dd></dl>
620
621 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00054">54</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
622
623 </div>
624 </div>
625 <a class="anchor" id="ae77f34e1316d52c1ee84c35be9efb0d8"></a>
626 <div class="memitem">
627 <div class="memproto">
628       <table class="memname">
629         <tr>
630           <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</td>
631           <td>(</td>
632           <td class="paramtype">&#160;</td>
633           <td class="paramname">a, </td>
634         </tr>
635         <tr>
636           <td class="paramkey"></td>
637           <td></td>
638           <td class="paramtype">&#160;</td>
639           <td class="paramname">size&#160;</td>
640         </tr>
641         <tr>
642           <td></td>
643           <td>)</td>
644           <td></td><td>&#160;&#160;&#160;asymm_one_over_one_plus_x_for_x_in_0_1##size(a)</td>
645         </tr>
646       </table>
647 </div><div class="memdoc">
648
649 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00305">305</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
650
651 </div>
652 </div>
653 <a class="anchor" id="a0e53aa5d4cbcec7a0c0085838f32453d"></a>
654 <div class="memitem">
655 <div class="memproto">
656       <table class="memname">
657         <tr>
658           <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</td>
659           <td>(</td>
660           <td class="paramtype">&#160;</td>
661           <td class="paramname">size</td><td>)</td>
662           <td></td>
663         </tr>
664       </table>
665 </div><div class="memdoc">
666 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_one_over_one_plus_x_for_x_in_0_1<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                        \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) Q0_one = INT_MAX;                                                     \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) Q2_one = 1 &lt;&lt; (31 - 2);                                               \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                             \</span></div><div class="line"><span class="preprocessor">        half_denominator = ASYMM_ROUNDING_HALF_SUM(a, Q0_one, size);                                         \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) Q2_48_over_17     = 1515870810;                                       \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) Q2_neg_32_over_17 = -1010580540;                                      \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                             \</span></div><div class="line"><span class="preprocessor">        x = Q2_48_over_17 + ASYMM_MULT(half_denominator, Q2_neg_32_over_17, size);                           \</span></div><div class="line"><span class="preprocessor">        for(int i = 0; i &lt; 3; i++)                                                                           \</span></div><div class="line"><span class="preprocessor">        {                                                                                                    \</span></div><div class="line"><span class="preprocessor">            VEC_DATA_TYPE(int, size)                                                                         \</span></div><div class="line"><span class="preprocessor">            half_denominator_times_x = ASYMM_MULT(half_denominator, x, size);                                \</span></div><div class="line"><span class="preprocessor">            VEC_DATA_TYPE(int, size)                                                                         \</span></div><div class="line"><span class="preprocessor">            one_minus_half_denominator_times_x = Q2_one - half_denominator_times_x;                          \</span></div><div class="line"><span class="preprocessor">            VEC_DATA_TYPE(int, size)                                                                         \</span></div><div class="line"><span class="preprocessor">            tmp = ASYMM_MULT(x, one_minus_half_denominator_times_x, size);                                   \</span></div><div class="line"><span class="preprocessor">            x   = x + ASYMM_SATURATING_ROUNDING_MULT_BY_POW2(tmp, 2, size);                                  \</span></div><div class="line"><span class="preprocessor">        }                                                                                                    \</span></div><div class="line"><span class="preprocessor">        return ASYMM_SATURATING_ROUNDING_MULT_BY_POW2(x, 1, size);                                           \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
667 </div><!-- fragment -->
668 <p>Calculates \( 1 / (1 + x) \) for x in (0, 1). </p>
669 <dl class="params"><dt>Parameters</dt><dd>
670   <table class="params">
671     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
672   </table>
673   </dd>
674 </dl>
675 <dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
676
677 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00258">258</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
678
679 </div>
680 </div>
681 <a class="anchor" id="a98585f1bb84dea90aecbf59785c46151"></a>
682 <div class="memitem">
683 <div class="memproto">
684       <table class="memname">
685         <tr>
686           <td class="memname">#define ASYMM_RESCALE</td>
687           <td>(</td>
688           <td class="paramtype">&#160;</td>
689           <td class="paramname">value, </td>
690         </tr>
691         <tr>
692           <td class="paramkey"></td>
693           <td></td>
694           <td class="paramtype">&#160;</td>
695           <td class="paramname">src_integer_bits, </td>
696         </tr>
697         <tr>
698           <td class="paramkey"></td>
699           <td></td>
700           <td class="paramtype">&#160;</td>
701           <td class="paramname">dst_integer_bits, </td>
702         </tr>
703         <tr>
704           <td class="paramkey"></td>
705           <td></td>
706           <td class="paramtype">&#160;</td>
707           <td class="paramname">size&#160;</td>
708         </tr>
709         <tr>
710           <td></td>
711           <td>)</td>
712           <td></td><td>&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#ad57ea340cdcfeb2e1375b70c3ae59bae">asymm_rescale</a>##size(value, src_integer_bits, dst_integer_bits)</td>
713         </tr>
714       </table>
715 </div><div class="memdoc">
716
717 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00308">308</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
718
719 </div>
720 </div>
721 <a class="anchor" id="aace85e2a32bacdaa4e2d2055deabfc57"></a>
722 <div class="memitem">
723 <div class="memproto">
724       <table class="memname">
725         <tr>
726           <td class="memname">#define ASYMM_RESCALE_IMPL</td>
727           <td>(</td>
728           <td class="paramtype">&#160;</td>
729           <td class="paramname">size</td><td>)</td>
730           <td></td>
731         </tr>
732       </table>
733 </div><div class="memdoc">
734 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="softmax__layer__quantized_8cl.xhtml#ad57ea340cdcfeb2e1375b70c3ae59bae">asymm_rescale</a><span class="preprocessor">##size(VEC_DATA_TYPE(int, size) value, int src_integer_bits, int dst_integer_bits) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                               \</span></div><div class="line"><span class="preprocessor">        int exponent = src_integer_bits - dst_integer_bits;                                                                         \</span></div><div class="line"><span class="preprocessor">        return ASYMM_SATURATING_ROUNDING_MULT_BY_POW2(value, exponent, size);                                                       \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="softmax__layer__quantized_8cl_xhtml_ad57ea340cdcfeb2e1375b70c3ae59bae"><div class="ttname"><a href="softmax__layer__quantized_8cl.xhtml#ad57ea340cdcfeb2e1375b70c3ae59bae">asymm_rescale</a></div><div class="ttdeci">#define asymm_rescale(value, src_integer_bits, dst_integer_bits)</div><div class="ttdef"><b>Definition:</b> <a href="softmax__layer__quantized_8cl_source.xhtml#l00058">softmax_layer_quantized.cl:58</a></div></div>
735 <div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
736 </div><!-- fragment -->
737 <p>Considering the integer value as fixed-point, change the number of integer bits and update value accordingly. </p>
738 <dl class="params"><dt>Parameters</dt><dd>
739   <table class="params">
740     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
741   </table>
742   </dd>
743 </dl>
744 <dl class="section return"><dt>Returns</dt><dd>Rescaled value. </dd></dl>
745
746 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00288">288</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
747
748 </div>
749 </div>
750 <a class="anchor" id="aa43fc359dea64362f3016384f4269845"></a>
751 <div class="memitem">
752 <div class="memproto">
753       <table class="memname">
754         <tr>
755           <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2</td>
756           <td>(</td>
757           <td class="paramtype">&#160;</td>
758           <td class="paramname">x, </td>
759         </tr>
760         <tr>
761           <td class="paramkey"></td>
762           <td></td>
763           <td class="paramtype">&#160;</td>
764           <td class="paramname">exponent, </td>
765         </tr>
766         <tr>
767           <td class="paramkey"></td>
768           <td></td>
769           <td class="paramtype">&#160;</td>
770           <td class="paramname">size&#160;</td>
771         </tr>
772         <tr>
773           <td></td>
774           <td>)</td>
775           <td></td><td>&#160;&#160;&#160;asymm_rounding_divide_by_POW2_##size(x, exponent)</td>
776         </tr>
777       </table>
778 </div><div class="memdoc">
779
780 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00295">295</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
781
782 </div>
783 </div>
784 <a class="anchor" id="abf75e242631b23007e4046682aa57ec5"></a>
785 <div class="memitem">
786 <div class="memproto">
787       <table class="memname">
788         <tr>
789           <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</td>
790           <td>(</td>
791           <td class="paramtype">&#160;</td>
792           <td class="paramname">size</td><td>)</td>
793           <td></td>
794         </tr>
795       </table>
796 </div><div class="memdoc">
797 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_rounding_divide_by_POW2_<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) x, int exponent) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                              \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                   \</span></div><div class="line"><span class="preprocessor">        mask = (1 &lt;&lt; exponent) - 1;                                                                                \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) zero = 0;                                                                   \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) one  = 1;                                                                   \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                   \</span></div><div class="line"><span class="preprocessor">        threshold = (mask &gt;&gt; 1) + select(zero, one, x &lt; 0);                                                        \</span></div><div class="line"><span class="preprocessor">        return (x &gt;&gt; exponent) + select(zero, one, (x &amp; mask) &gt; threshold);                                        \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
798 </div><!-- fragment -->
799 <p>Correctly-rounded-to-nearest division by a power-of-two. </p>
800 <dl class="params"><dt>Parameters</dt><dd>
801   <table class="params">
802     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
803   </table>
804   </dd>
805 </dl>
806 <dl class="section return"><dt>Returns</dt><dd>Correctly-rounded-to-nearest division by a power-of-two. </dd></dl>
807
808 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00035">35</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
809
810 </div>
811 </div>
812 <a class="anchor" id="ad47fa44c1566aa4678fe524478490612"></a>
813 <div class="memitem">
814 <div class="memproto">
815       <table class="memname">
816         <tr>
817           <td class="memname">#define ASYMM_ROUNDING_HALF_SUM</td>
818           <td>(</td>
819           <td class="paramtype">&#160;</td>
820           <td class="paramname">a, </td>
821         </tr>
822         <tr>
823           <td class="paramkey"></td>
824           <td></td>
825           <td class="paramtype">&#160;</td>
826           <td class="paramname">b, </td>
827         </tr>
828         <tr>
829           <td class="paramkey"></td>
830           <td></td>
831           <td class="paramtype">&#160;</td>
832           <td class="paramname">size&#160;</td>
833         </tr>
834         <tr>
835           <td></td>
836           <td>)</td>
837           <td></td><td>&#160;&#160;&#160;asymm_rounding_half_sum##size(a, b)</td>
838         </tr>
839       </table>
840 </div><div class="memdoc">
841
842 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00307">307</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
843
844 </div>
845 </div>
846 <a class="anchor" id="a8d97c6698c0e44424deae3f3130c55ac"></a>
847 <div class="memitem">
848 <div class="memproto">
849       <table class="memname">
850         <tr>
851           <td class="memname">#define ASYMM_ROUNDING_HALF_SUM_IMPL</td>
852           <td>(</td>
853           <td class="paramtype">&#160;</td>
854           <td class="paramname">size</td><td>)</td>
855           <td></td>
856         </tr>
857       </table>
858 </div><div class="memdoc">
859 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_rounding_half_sum<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) a, VEC_DATA_TYPE(int, size) b) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                     \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                                         \</span></div><div class="line"><span class="preprocessor">        a64 = convert_long##size(a);                                                                                      \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                                         \</span></div><div class="line"><span class="preprocessor">        b64 = convert_long##size(b);                                                                                      \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                                         \</span></div><div class="line"><span class="preprocessor">        sum = a64 + b64;                                                                                                  \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(long, size) one       = 1;                                                                    \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(long, size) minus_one = -1;                                                                   \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(long, size)                                                                                         \</span></div><div class="line"><span class="preprocessor">        sign = select(minus_one, one, sum &gt;= 0);                                                                          \</span></div><div class="line"><span class="preprocessor">        return convert_int##size((sum + sign) / 2);                                                                       \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
860 </div><!-- fragment -->
861 <p>Calculates (a+b)/2, rounded to the nearest integer. </p>
862 <p>Equivalent to VRHADD in the ARM NEON instruction set.</p>
863 <dl class="params"><dt>Parameters</dt><dd>
864   <table class="params">
865     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
866   </table>
867   </dd>
868 </dl>
869 <dl class="section return"><dt>Returns</dt><dd>(a+b)/2, rounded to the nearest integer. </dd></dl>
870
871 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00236">236</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
872
873 </div>
874 </div>
875 <a class="anchor" id="a4cc3ff3a2eeb5f5e9d6743e08f632928"></a>
876 <div class="memitem">
877 <div class="memproto">
878       <table class="memname">
879         <tr>
880           <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</td>
881           <td>(</td>
882           <td class="paramtype">&#160;</td>
883           <td class="paramname">x, </td>
884         </tr>
885         <tr>
886           <td class="paramkey"></td>
887           <td></td>
888           <td class="paramtype">&#160;</td>
889           <td class="paramname">exponent, </td>
890         </tr>
891         <tr>
892           <td class="paramkey"></td>
893           <td></td>
894           <td class="paramtype">&#160;</td>
895           <td class="paramname">size&#160;</td>
896         </tr>
897         <tr>
898           <td></td>
899           <td>)</td>
900           <td></td><td>&#160;&#160;&#160;asymm_saturating_rounding_mult_by_pow2##size(x, exponent)</td>
901         </tr>
902       </table>
903 </div><div class="memdoc">
904
905 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00306">306</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
906
907 </div>
908 </div>
909 <a class="anchor" id="a737312bc4a68c79a77cfab4849793bc0"></a>
910 <div class="memitem">
911 <div class="memproto">
912       <table class="memname">
913         <tr>
914           <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</td>
915           <td>(</td>
916           <td class="paramtype">&#160;</td>
917           <td class="paramname">size</td><td>)</td>
918           <td></td>
919         </tr>
920       </table>
921 </div><div class="memdoc">
922 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_saturating_rounding_mult_by_pow2<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) x, int exponent) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                      \</span></div><div class="line"><span class="preprocessor">        if(exponent &lt; 0)                                                                                                   \</span></div><div class="line"><span class="preprocessor">        {                                                                                                                  \</span></div><div class="line"><span class="preprocessor">            return ASYMM_ROUNDING_DIVIDE_BY_POW2(x, -exponent, size);                                                      \</span></div><div class="line"><span class="preprocessor">        }                                                                                                                  \</span></div><div class="line"><span class="preprocessor">        \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) min = INT_MIN;                                                                      \</span></div><div class="line"><span class="preprocessor">        const VEC_DATA_TYPE(int, size) max = INT_MAX;                                                                      \</span></div><div class="line"><span class="preprocessor">        int threshold = ((1 &lt;&lt; (31 - exponent)) - 1);                                                                      \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                           \</span></div><div class="line"><span class="preprocessor">        positive_mask = ASYMM_MASK_IF_NON_ZERO(x &gt; threshold, size);                                                       \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                           \</span></div><div class="line"><span class="preprocessor">        negative_mask = ASYMM_MASK_IF_NON_ZERO(x &lt; -threshold, size);                                                      \</span></div><div class="line"><span class="preprocessor">        VEC_DATA_TYPE(int, size)                                                                                           \</span></div><div class="line"><span class="preprocessor">        result = x &lt;&lt; exponent;                                                                                            \</span></div><div class="line"><span class="preprocessor">        result = ASYMM_SELECT_USING_MASK(positive_mask, max, result, size);                                                \</span></div><div class="line"><span class="preprocessor">        result = ASYMM_SELECT_USING_MASK(negative_mask, min, result, size);                                                \</span></div><div class="line"><span class="preprocessor">        return result;                                                                                                     \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
923 </div><!-- fragment -->
924 <p>Calculates the product of a integer value by a power of two, with either a positive exponent (equivalent to an arithmetic left shift, saturating) or a negative exponent (equivalent to an arithmetic right shift, rounding to nearest). </p>
925 <dl class="params"><dt>Parameters</dt><dd>
926   <table class="params">
927     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
928   </table>
929   </dd>
930 </dl>
931 <dl class="section return"><dt>Returns</dt><dd>Arithmetic left or right shift. </dd></dl>
932
933 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00207">207</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
934
935 </div>
936 </div>
937 <a class="anchor" id="a9bc08a8c1833c5e6055ad6665e3ccf12"></a>
938 <div class="memitem">
939 <div class="memproto">
940       <table class="memname">
941         <tr>
942           <td class="memname">#define ASYMM_SELECT_USING_MASK</td>
943           <td>(</td>
944           <td class="paramtype">&#160;</td>
945           <td class="paramname">if_mask, </td>
946         </tr>
947         <tr>
948           <td class="paramkey"></td>
949           <td></td>
950           <td class="paramtype">&#160;</td>
951           <td class="paramname">then_val, </td>
952         </tr>
953         <tr>
954           <td class="paramkey"></td>
955           <td></td>
956           <td class="paramtype">&#160;</td>
957           <td class="paramname">else_val, </td>
958         </tr>
959         <tr>
960           <td class="paramkey"></td>
961           <td></td>
962           <td class="paramtype">&#160;</td>
963           <td class="paramname">size&#160;</td>
964         </tr>
965         <tr>
966           <td></td>
967           <td>)</td>
968           <td></td><td>&#160;&#160;&#160;asymm_select_using_mask##size(if_mask, then_val, else_val)</td>
969         </tr>
970       </table>
971 </div><div class="memdoc">
972
973 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00300">300</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
974
975 </div>
976 </div>
977 <a class="anchor" id="ab0b4069b25ac886d5cb6eb3b76473f88"></a>
978 <div class="memitem">
979 <div class="memproto">
980       <table class="memname">
981         <tr>
982           <td class="memname">#define ASYMM_SELECT_USING_MASK_IMPL</td>
983           <td>(</td>
984           <td class="paramtype">&#160;</td>
985           <td class="paramname">size</td><td>)</td>
986           <td></td>
987         </tr>
988       </table>
989 </div><div class="memdoc">
990 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_select_using_mask<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) if_mask, VEC_DATA_TYPE(int, size) then_val, VEC_DATA_TYPE(int, size) else_val) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                                                                     \</span></div><div class="line"><span class="preprocessor">        return (if_mask &amp; then_val) ^ (~if_mask &amp; else_val);                                                                                                              \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
991 </div><!-- fragment -->
992 <p>Each bit of the result is set to the corresponding bit of either then_val or else_val depending on whether the corresponding bit of if_mask is set. </p>
993 <p>Equivalent to the VBSL instruction in ARM NEON.</p>
994 <dl class="params"><dt>Parameters</dt><dd>
995   <table class="params">
996     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
997   </table>
998   </dd>
999 </dl>
1000 <dl class="section return"><dt>Returns</dt><dd>Result contaning bits from <code>then_val</code> or from <code>else_val</code> depending on corresponding bit in <code>if_mask</code> is set or not. </dd></dl>
1001
1002 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00108">108</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1003
1004 </div>
1005 </div>
1006 <a class="anchor" id="ace9ecff421cf885ad2c2d72d87c492cb"></a>
1007 <div class="memitem">
1008 <div class="memproto">
1009       <table class="memname">
1010         <tr>
1011           <td class="memname">#define EXP_BARREL_SHIFTER</td>
1012           <td>(</td>
1013           <td class="paramtype">&#160;</td>
1014           <td class="paramname">result, </td>
1015         </tr>
1016         <tr>
1017           <td class="paramkey"></td>
1018           <td></td>
1019           <td class="paramtype">&#160;</td>
1020           <td class="paramname">exponent, </td>
1021         </tr>
1022         <tr>
1023           <td class="paramkey"></td>
1024           <td></td>
1025           <td class="paramtype">&#160;</td>
1026           <td class="paramname">fp_multiplier, </td>
1027         </tr>
1028         <tr>
1029           <td class="paramkey"></td>
1030           <td></td>
1031           <td class="paramtype">&#160;</td>
1032           <td class="paramname">k_integer_bits, </td>
1033         </tr>
1034         <tr>
1035           <td class="paramkey"></td>
1036           <td></td>
1037           <td class="paramtype">&#160;</td>
1038           <td class="paramname">k_fractional_bits, </td>
1039         </tr>
1040         <tr>
1041           <td class="paramkey"></td>
1042           <td></td>
1043           <td class="paramtype">&#160;</td>
1044           <td class="paramname">remainder, </td>
1045         </tr>
1046         <tr>
1047           <td class="paramkey"></td>
1048           <td></td>
1049           <td class="paramtype">&#160;</td>
1050           <td class="paramname">size&#160;</td>
1051         </tr>
1052         <tr>
1053           <td></td>
1054           <td>)</td>
1055           <td></td><td>&#160;&#160;&#160;exp_barrel_shifter##size(result, exponent, fp_multiplier, k_integer_bits, k_fractional_bits, remainder)</td>
1056         </tr>
1057       </table>
1058 </div><div class="memdoc">
1059
1060 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00303">303</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1061
1062 </div>
1063 </div>
1064 <a class="anchor" id="aa12ca21cb9a54d2e4c26d57303fe44a7"></a>
1065 <div class="memitem">
1066 <div class="memproto">
1067       <table class="memname">
1068         <tr>
1069           <td class="memname">#define EXP_BARREL_SHIFTER_IMPL</td>
1070           <td>(</td>
1071           <td class="paramtype">&#160;</td>
1072           <td class="paramname">size</td><td>)</td>
1073           <td></td>
1074         </tr>
1075       </table>
1076 </div><div class="memdoc">
1077 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) exp_barrel_shifter<span class="preprocessor">##size(VEC_DATA_TYPE(int, size) result, int exponent, int fp_multiplier, int k_integer_bits, int k_fractional_bits, VEC_DATA_TYPE(int, size) remainder) \</span></div><div class="line"><span class="preprocessor">    {                                                                                                                                                                                                         \</span></div><div class="line"><span class="preprocessor">        if(k_integer_bits &gt; exponent)                                                                                                                                                                         \</span></div><div class="line"><span class="preprocessor">        {                                                                                                                                                                                                     \</span></div><div class="line"><span class="preprocessor">            const int k_shift_amount = k_integer_bits &gt; exponent ? k_fractional_bits + exponent : 0;                                                                                                          \</span></div><div class="line"><span class="preprocessor">            return ASYMM_SELECT_USING_MASK(                                                                                                                                                                   \</span></div><div class="line"><span class="preprocessor">                    ASYMM_MASK_IF_NON_ZERO(remainder &amp; (1 &lt;&lt; k_shift_amount), size),                                                                                                                              \</span></div><div class="line"><span class="preprocessor">                    ASYMM_MULT(result, fp_multiplier, size), result, size);                                                                                                                                       \</span></div><div class="line"><span class="preprocessor">        }                                                                                                                                                                                                     \</span></div><div class="line"><span class="preprocessor">        \</span></div><div class="line"><span class="preprocessor">        return result;                                                                                                                                                                                        \</span></div><div class="line"><span class="preprocessor">    }</span></div><div class="ttc" id="fixed__point_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="fixed__point_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a></div><div class="ttdeci">#define VEC_DATA_TYPE(type, size)</div><div class="ttdef"><b>Definition:</b> <a href="fixed__point_8h_source.xhtml#l00093">fixed_point.h:93</a></div></div>
1078 </div><!-- fragment -->
1079 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00144">144</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1080
1081 </div>
1082 </div>
1083 <h2 class="groupheader">Function Documentation</h2>
1084 <a class="anchor" id="a1d51b02a83af2a152fa52755f572f5a6"></a>
1085 <div class="memitem">
1086 <div class="memproto">
1087 <table class="mlabels">
1088   <tr>
1089   <td class="mlabels-left">
1090       <table class="memname">
1091         <tr>
1092           <td class="memname">int16 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16 </td>
1093           <td>(</td>
1094           <td class="paramtype">int16&#160;</td>
1095           <td class="paramname"><em>a</em></td><td>)</td>
1096           <td></td>
1097         </tr>
1098       </table>
1099   </td>
1100   <td class="mlabels-right">
1101 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1102   </tr>
1103 </table>
1104 </div><div class="memdoc">
1105
1106 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00323">323</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1107
1108 </div>
1109 </div>
1110 <a class="anchor" id="a8eb88d417247a1b8b8929e5c8faeb48d"></a>
1111 <div class="memitem">
1112 <div class="memproto">
1113 <table class="mlabels">
1114   <tr>
1115   <td class="mlabels-left">
1116       <table class="memname">
1117         <tr>
1118           <td class="memname">int2 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2 </td>
1119           <td>(</td>
1120           <td class="paramtype">int2&#160;</td>
1121           <td class="paramname"><em>a</em></td><td>)</td>
1122           <td></td>
1123         </tr>
1124       </table>
1125   </td>
1126   <td class="mlabels-right">
1127 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1128   </tr>
1129 </table>
1130 </div><div class="memdoc">
1131
1132 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00320">320</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1133
1134 </div>
1135 </div>
1136 <a class="anchor" id="a43aa0011bd9b23ce3f691a9ae205fe07"></a>
1137 <div class="memitem">
1138 <div class="memproto">
1139 <table class="mlabels">
1140   <tr>
1141   <td class="mlabels-left">
1142       <table class="memname">
1143         <tr>
1144           <td class="memname">int4 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4 </td>
1145           <td>(</td>
1146           <td class="paramtype">int4&#160;</td>
1147           <td class="paramname"><em>a</em></td><td>)</td>
1148           <td></td>
1149         </tr>
1150       </table>
1151   </td>
1152   <td class="mlabels-right">
1153 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1154   </tr>
1155 </table>
1156 </div><div class="memdoc">
1157
1158 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00321">321</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1159
1160 </div>
1161 </div>
1162 <a class="anchor" id="accb6ee0e0c578704ae23e6ab0a57cdd0"></a>
1163 <div class="memitem">
1164 <div class="memproto">
1165 <table class="mlabels">
1166   <tr>
1167   <td class="mlabels-left">
1168       <table class="memname">
1169         <tr>
1170           <td class="memname">int8 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8 </td>
1171           <td>(</td>
1172           <td class="paramtype">int8&#160;</td>
1173           <td class="paramname"><em>a</em></td><td>)</td>
1174           <td></td>
1175         </tr>
1176       </table>
1177   </td>
1178   <td class="mlabels-right">
1179 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1180   </tr>
1181 </table>
1182 </div><div class="memdoc">
1183
1184 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00322">322</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1185
1186 </div>
1187 </div>
1188 <a class="anchor" id="ae13cfab30e1d4c5f797f9d3d7c6acacf"></a>
1189 <div class="memitem">
1190 <div class="memproto">
1191 <table class="mlabels">
1192   <tr>
1193   <td class="mlabels-left">
1194       <table class="memname">
1195         <tr>
1196           <td class="memname">int16 asymm_exp_on_negative_values16 </td>
1197           <td>(</td>
1198           <td class="paramtype">int16&#160;</td>
1199           <td class="paramname"><em>a</em>, </td>
1200         </tr>
1201         <tr>
1202           <td class="paramkey"></td>
1203           <td></td>
1204           <td class="paramtype">int&#160;</td>
1205           <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1206         </tr>
1207         <tr>
1208           <td></td>
1209           <td>)</td>
1210           <td></td><td></td>
1211         </tr>
1212       </table>
1213   </td>
1214   <td class="mlabels-right">
1215 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1216   </tr>
1217 </table>
1218 </div><div class="memdoc">
1219
1220 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00348">348</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1221
1222 </div>
1223 </div>
1224 <a class="anchor" id="a35b98dc80eefc6ce799720861a668691"></a>
1225 <div class="memitem">
1226 <div class="memproto">
1227 <table class="mlabels">
1228   <tr>
1229   <td class="mlabels-left">
1230       <table class="memname">
1231         <tr>
1232           <td class="memname">int2 asymm_exp_on_negative_values2 </td>
1233           <td>(</td>
1234           <td class="paramtype">int2&#160;</td>
1235           <td class="paramname"><em>a</em>, </td>
1236         </tr>
1237         <tr>
1238           <td class="paramkey"></td>
1239           <td></td>
1240           <td class="paramtype">int&#160;</td>
1241           <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1242         </tr>
1243         <tr>
1244           <td></td>
1245           <td>)</td>
1246           <td></td><td></td>
1247         </tr>
1248       </table>
1249   </td>
1250   <td class="mlabels-right">
1251 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1252   </tr>
1253 </table>
1254 </div><div class="memdoc">
1255
1256 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00345">345</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1257
1258 </div>
1259 </div>
1260 <a class="anchor" id="aa1dda459c2b10a9620b2c14a928ed4ba"></a>
1261 <div class="memitem">
1262 <div class="memproto">
1263 <table class="mlabels">
1264   <tr>
1265   <td class="mlabels-left">
1266       <table class="memname">
1267         <tr>
1268           <td class="memname">int4 asymm_exp_on_negative_values4 </td>
1269           <td>(</td>
1270           <td class="paramtype">int4&#160;</td>
1271           <td class="paramname"><em>a</em>, </td>
1272         </tr>
1273         <tr>
1274           <td class="paramkey"></td>
1275           <td></td>
1276           <td class="paramtype">int&#160;</td>
1277           <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1278         </tr>
1279         <tr>
1280           <td></td>
1281           <td>)</td>
1282           <td></td><td></td>
1283         </tr>
1284       </table>
1285   </td>
1286   <td class="mlabels-right">
1287 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1288   </tr>
1289 </table>
1290 </div><div class="memdoc">
1291
1292 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00346">346</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1293
1294 </div>
1295 </div>
1296 <a class="anchor" id="a429f20ad96413c1f7d4ee968afed6f0d"></a>
1297 <div class="memitem">
1298 <div class="memproto">
1299 <table class="mlabels">
1300   <tr>
1301   <td class="mlabels-left">
1302       <table class="memname">
1303         <tr>
1304           <td class="memname">int8 asymm_exp_on_negative_values8 </td>
1305           <td>(</td>
1306           <td class="paramtype">int8&#160;</td>
1307           <td class="paramname"><em>a</em>, </td>
1308         </tr>
1309         <tr>
1310           <td class="paramkey"></td>
1311           <td></td>
1312           <td class="paramtype">int&#160;</td>
1313           <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1314         </tr>
1315         <tr>
1316           <td></td>
1317           <td>)</td>
1318           <td></td><td></td>
1319         </tr>
1320       </table>
1321   </td>
1322   <td class="mlabels-right">
1323 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1324   </tr>
1325 </table>
1326 </div><div class="memdoc">
1327
1328 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00347">347</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1329
1330 </div>
1331 </div>
1332 <a class="anchor" id="a1e1fef1353d2458beb7fab06cc8f460e"></a>
1333 <div class="memitem">
1334 <div class="memproto">
1335 <table class="mlabels">
1336   <tr>
1337   <td class="mlabels-left">
1338       <table class="memname">
1339         <tr>
1340           <td class="memname">int16 asymm_mask_if_non_zero16 </td>
1341           <td>(</td>
1342           <td class="paramtype">int16&#160;</td>
1343           <td class="paramname"><em>a</em></td><td>)</td>
1344           <td></td>
1345         </tr>
1346       </table>
1347   </td>
1348   <td class="mlabels-right">
1349 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1350   </tr>
1351 </table>
1352 </div><div class="memdoc">
1353
1354 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00338">338</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1355
1356 </div>
1357 </div>
1358 <a class="anchor" id="a885a16f240b119acc9f0721c07acdce9"></a>
1359 <div class="memitem">
1360 <div class="memproto">
1361 <table class="mlabels">
1362   <tr>
1363   <td class="mlabels-left">
1364       <table class="memname">
1365         <tr>
1366           <td class="memname">int2 asymm_mask_if_non_zero2 </td>
1367           <td>(</td>
1368           <td class="paramtype">int2&#160;</td>
1369           <td class="paramname"><em>a</em></td><td>)</td>
1370           <td></td>
1371         </tr>
1372       </table>
1373   </td>
1374   <td class="mlabels-right">
1375 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1376   </tr>
1377 </table>
1378 </div><div class="memdoc">
1379
1380 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00335">335</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1381
1382 </div>
1383 </div>
1384 <a class="anchor" id="a2f180955030087d7538d5dc89f29eba9"></a>
1385 <div class="memitem">
1386 <div class="memproto">
1387 <table class="mlabels">
1388   <tr>
1389   <td class="mlabels-left">
1390       <table class="memname">
1391         <tr>
1392           <td class="memname">int4 asymm_mask_if_non_zero4 </td>
1393           <td>(</td>
1394           <td class="paramtype">int4&#160;</td>
1395           <td class="paramname"><em>a</em></td><td>)</td>
1396           <td></td>
1397         </tr>
1398       </table>
1399   </td>
1400   <td class="mlabels-right">
1401 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1402   </tr>
1403 </table>
1404 </div><div class="memdoc">
1405
1406 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00336">336</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1407
1408 </div>
1409 </div>
1410 <a class="anchor" id="a8de81d453a39d0f589b0d3e007c7fde1"></a>
1411 <div class="memitem">
1412 <div class="memproto">
1413 <table class="mlabels">
1414   <tr>
1415   <td class="mlabels-left">
1416       <table class="memname">
1417         <tr>
1418           <td class="memname">int8 asymm_mask_if_non_zero8 </td>
1419           <td>(</td>
1420           <td class="paramtype">int8&#160;</td>
1421           <td class="paramname"><em>a</em></td><td>)</td>
1422           <td></td>
1423         </tr>
1424       </table>
1425   </td>
1426   <td class="mlabels-right">
1427 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1428   </tr>
1429 </table>
1430 </div><div class="memdoc">
1431
1432 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00337">337</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1433
1434 </div>
1435 </div>
1436 <a class="anchor" id="a509916b7ee582d87faf1312fde111c3b"></a>
1437 <div class="memitem">
1438 <div class="memproto">
1439 <table class="mlabels">
1440   <tr>
1441   <td class="mlabels-left">
1442       <table class="memname">
1443         <tr>
1444           <td class="memname">int16 asymm_mask_if_zero16 </td>
1445           <td>(</td>
1446           <td class="paramtype">int16&#160;</td>
1447           <td class="paramname"><em>a</em></td><td>)</td>
1448           <td></td>
1449         </tr>
1450       </table>
1451   </td>
1452   <td class="mlabels-right">
1453 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1454   </tr>
1455 </table>
1456 </div><div class="memdoc">
1457
1458 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00333">333</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1459
1460 </div>
1461 </div>
1462 <a class="anchor" id="a6ed499c821cf4f6b3bc4049d49e35139"></a>
1463 <div class="memitem">
1464 <div class="memproto">
1465 <table class="mlabels">
1466   <tr>
1467   <td class="mlabels-left">
1468       <table class="memname">
1469         <tr>
1470           <td class="memname">int2 asymm_mask_if_zero2 </td>
1471           <td>(</td>
1472           <td class="paramtype">int2&#160;</td>
1473           <td class="paramname"><em>a</em></td><td>)</td>
1474           <td></td>
1475         </tr>
1476       </table>
1477   </td>
1478   <td class="mlabels-right">
1479 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1480   </tr>
1481 </table>
1482 </div><div class="memdoc">
1483
1484 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00330">330</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1485
1486 </div>
1487 </div>
1488 <a class="anchor" id="aed95c68d9545d401d2323cd8ad287fe1"></a>
1489 <div class="memitem">
1490 <div class="memproto">
1491 <table class="mlabels">
1492   <tr>
1493   <td class="mlabels-left">
1494       <table class="memname">
1495         <tr>
1496           <td class="memname">int4 asymm_mask_if_zero4 </td>
1497           <td>(</td>
1498           <td class="paramtype">int4&#160;</td>
1499           <td class="paramname"><em>a</em></td><td>)</td>
1500           <td></td>
1501         </tr>
1502       </table>
1503   </td>
1504   <td class="mlabels-right">
1505 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1506   </tr>
1507 </table>
1508 </div><div class="memdoc">
1509
1510 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00331">331</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1511
1512 </div>
1513 </div>
1514 <a class="anchor" id="abefb0a278a588f03dc561db900df0958"></a>
1515 <div class="memitem">
1516 <div class="memproto">
1517 <table class="mlabels">
1518   <tr>
1519   <td class="mlabels-left">
1520       <table class="memname">
1521         <tr>
1522           <td class="memname">int8 asymm_mask_if_zero8 </td>
1523           <td>(</td>
1524           <td class="paramtype">int8&#160;</td>
1525           <td class="paramname"><em>a</em></td><td>)</td>
1526           <td></td>
1527         </tr>
1528       </table>
1529   </td>
1530   <td class="mlabels-right">
1531 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1532   </tr>
1533 </table>
1534 </div><div class="memdoc">
1535
1536 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00332">332</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1537
1538 </div>
1539 </div>
1540 <a class="anchor" id="aef32e3a9c804f145deb6b88f0a444919"></a>
1541 <div class="memitem">
1542 <div class="memproto">
1543 <table class="mlabels">
1544   <tr>
1545   <td class="mlabels-left">
1546       <table class="memname">
1547         <tr>
1548           <td class="memname">int16 asymm_mult16 </td>
1549           <td>(</td>
1550           <td class="paramtype">int16&#160;</td>
1551           <td class="paramname"><em>a</em>, </td>
1552         </tr>
1553         <tr>
1554           <td class="paramkey"></td>
1555           <td></td>
1556           <td class="paramtype">int16&#160;</td>
1557           <td class="paramname"><em>b</em>&#160;</td>
1558         </tr>
1559         <tr>
1560           <td></td>
1561           <td>)</td>
1562           <td></td><td></td>
1563         </tr>
1564       </table>
1565   </td>
1566   <td class="mlabels-right">
1567 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1568   </tr>
1569 </table>
1570 </div><div class="memdoc">
1571
1572 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00318">318</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1573
1574 </div>
1575 </div>
1576 <a class="anchor" id="a5038b78913b76d782cc0aa0d841bd7ed"></a>
1577 <div class="memitem">
1578 <div class="memproto">
1579 <table class="mlabels">
1580   <tr>
1581   <td class="mlabels-left">
1582       <table class="memname">
1583         <tr>
1584           <td class="memname">int2 asymm_mult2 </td>
1585           <td>(</td>
1586           <td class="paramtype">int2&#160;</td>
1587           <td class="paramname"><em>a</em>, </td>
1588         </tr>
1589         <tr>
1590           <td class="paramkey"></td>
1591           <td></td>
1592           <td class="paramtype">int2&#160;</td>
1593           <td class="paramname"><em>b</em>&#160;</td>
1594         </tr>
1595         <tr>
1596           <td></td>
1597           <td>)</td>
1598           <td></td><td></td>
1599         </tr>
1600       </table>
1601   </td>
1602   <td class="mlabels-right">
1603 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1604   </tr>
1605 </table>
1606 </div><div class="memdoc">
1607
1608 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00315">315</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1609
1610 </div>
1611 </div>
1612 <a class="anchor" id="a6dca28649388d59ec0281af70d4507b2"></a>
1613 <div class="memitem">
1614 <div class="memproto">
1615 <table class="mlabels">
1616   <tr>
1617   <td class="mlabels-left">
1618       <table class="memname">
1619         <tr>
1620           <td class="memname">int4 asymm_mult4 </td>
1621           <td>(</td>
1622           <td class="paramtype">int4&#160;</td>
1623           <td class="paramname"><em>a</em>, </td>
1624         </tr>
1625         <tr>
1626           <td class="paramkey"></td>
1627           <td></td>
1628           <td class="paramtype">int4&#160;</td>
1629           <td class="paramname"><em>b</em>&#160;</td>
1630         </tr>
1631         <tr>
1632           <td></td>
1633           <td>)</td>
1634           <td></td><td></td>
1635         </tr>
1636       </table>
1637   </td>
1638   <td class="mlabels-right">
1639 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1640   </tr>
1641 </table>
1642 </div><div class="memdoc">
1643
1644 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00316">316</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1645
1646 </div>
1647 </div>
1648 <a class="anchor" id="a165b0bbab841712ea2c9a17a09bfa166"></a>
1649 <div class="memitem">
1650 <div class="memproto">
1651 <table class="mlabels">
1652   <tr>
1653   <td class="mlabels-left">
1654       <table class="memname">
1655         <tr>
1656           <td class="memname">int8 asymm_mult8 </td>
1657           <td>(</td>
1658           <td class="paramtype">int8&#160;</td>
1659           <td class="paramname"><em>a</em>, </td>
1660         </tr>
1661         <tr>
1662           <td class="paramkey"></td>
1663           <td></td>
1664           <td class="paramtype">int8&#160;</td>
1665           <td class="paramname"><em>b</em>&#160;</td>
1666         </tr>
1667         <tr>
1668           <td></td>
1669           <td>)</td>
1670           <td></td><td></td>
1671         </tr>
1672       </table>
1673   </td>
1674   <td class="mlabels-right">
1675 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1676   </tr>
1677 </table>
1678 </div><div class="memdoc">
1679
1680 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00317">317</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1681
1682 </div>
1683 </div>
1684 <a class="anchor" id="ac3316120c01b6c993ac8f2d3f2b4ff03"></a>
1685 <div class="memitem">
1686 <div class="memproto">
1687 <table class="mlabels">
1688   <tr>
1689   <td class="mlabels-left">
1690       <table class="memname">
1691         <tr>
1692           <td class="memname">int16 asymm_one_over_one_plus_x_for_x_in_0_116 </td>
1693           <td>(</td>
1694           <td class="paramtype">int16&#160;</td>
1695           <td class="paramname"><em>a</em></td><td>)</td>
1696           <td></td>
1697         </tr>
1698       </table>
1699   </td>
1700   <td class="mlabels-right">
1701 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1702   </tr>
1703 </table>
1704 </div><div class="memdoc">
1705
1706 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00363">363</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1707
1708 </div>
1709 </div>
1710 <a class="anchor" id="a6524f601cf9a2ae69d5eab74576c93d0"></a>
1711 <div class="memitem">
1712 <div class="memproto">
1713 <table class="mlabels">
1714   <tr>
1715   <td class="mlabels-left">
1716       <table class="memname">
1717         <tr>
1718           <td class="memname">int2 asymm_one_over_one_plus_x_for_x_in_0_12 </td>
1719           <td>(</td>
1720           <td class="paramtype">int2&#160;</td>
1721           <td class="paramname"><em>a</em></td><td>)</td>
1722           <td></td>
1723         </tr>
1724       </table>
1725   </td>
1726   <td class="mlabels-right">
1727 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1728   </tr>
1729 </table>
1730 </div><div class="memdoc">
1731
1732 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00360">360</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1733
1734 </div>
1735 </div>
1736 <a class="anchor" id="a049439083adb7b960079832ad6367389"></a>
1737 <div class="memitem">
1738 <div class="memproto">
1739 <table class="mlabels">
1740   <tr>
1741   <td class="mlabels-left">
1742       <table class="memname">
1743         <tr>
1744           <td class="memname">int4 asymm_one_over_one_plus_x_for_x_in_0_14 </td>
1745           <td>(</td>
1746           <td class="paramtype">int4&#160;</td>
1747           <td class="paramname"><em>a</em></td><td>)</td>
1748           <td></td>
1749         </tr>
1750       </table>
1751   </td>
1752   <td class="mlabels-right">
1753 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1754   </tr>
1755 </table>
1756 </div><div class="memdoc">
1757
1758 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00361">361</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1759
1760 </div>
1761 </div>
1762 <a class="anchor" id="abe37c90e62ee60565cbfbb38c4358fd6"></a>
1763 <div class="memitem">
1764 <div class="memproto">
1765 <table class="mlabels">
1766   <tr>
1767   <td class="mlabels-left">
1768       <table class="memname">
1769         <tr>
1770           <td class="memname">int8 asymm_one_over_one_plus_x_for_x_in_0_18 </td>
1771           <td>(</td>
1772           <td class="paramtype">int8&#160;</td>
1773           <td class="paramname"><em>a</em></td><td>)</td>
1774           <td></td>
1775         </tr>
1776       </table>
1777   </td>
1778   <td class="mlabels-right">
1779 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1780   </tr>
1781 </table>
1782 </div><div class="memdoc">
1783
1784 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00362">362</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1785
1786 </div>
1787 </div>
1788 <a class="anchor" id="a700e603af523859efb90ed4b52b41c84"></a>
1789 <div class="memitem">
1790 <div class="memproto">
1791 <table class="mlabels">
1792   <tr>
1793   <td class="mlabels-left">
1794       <table class="memname">
1795         <tr>
1796           <td class="memname">int16 asymm_rescale16 </td>
1797           <td>(</td>
1798           <td class="paramtype">int16&#160;</td>
1799           <td class="paramname"><em>value</em>, </td>
1800         </tr>
1801         <tr>
1802           <td class="paramkey"></td>
1803           <td></td>
1804           <td class="paramtype">int&#160;</td>
1805           <td class="paramname"><em>src_integer_bits</em>, </td>
1806         </tr>
1807         <tr>
1808           <td class="paramkey"></td>
1809           <td></td>
1810           <td class="paramtype">int&#160;</td>
1811           <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1812         </tr>
1813         <tr>
1814           <td></td>
1815           <td>)</td>
1816           <td></td><td></td>
1817         </tr>
1818       </table>
1819   </td>
1820   <td class="mlabels-right">
1821 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1822   </tr>
1823 </table>
1824 </div><div class="memdoc">
1825
1826 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00368">368</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1827
1828 </div>
1829 </div>
1830 <a class="anchor" id="a49b94bfc99276975c6fed32c693cbac5"></a>
1831 <div class="memitem">
1832 <div class="memproto">
1833 <table class="mlabels">
1834   <tr>
1835   <td class="mlabels-left">
1836       <table class="memname">
1837         <tr>
1838           <td class="memname">int2 asymm_rescale2 </td>
1839           <td>(</td>
1840           <td class="paramtype">int2&#160;</td>
1841           <td class="paramname"><em>value</em>, </td>
1842         </tr>
1843         <tr>
1844           <td class="paramkey"></td>
1845           <td></td>
1846           <td class="paramtype">int&#160;</td>
1847           <td class="paramname"><em>src_integer_bits</em>, </td>
1848         </tr>
1849         <tr>
1850           <td class="paramkey"></td>
1851           <td></td>
1852           <td class="paramtype">int&#160;</td>
1853           <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1854         </tr>
1855         <tr>
1856           <td></td>
1857           <td>)</td>
1858           <td></td><td></td>
1859         </tr>
1860       </table>
1861   </td>
1862   <td class="mlabels-right">
1863 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1864   </tr>
1865 </table>
1866 </div><div class="memdoc">
1867
1868 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00365">365</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1869
1870 </div>
1871 </div>
1872 <a class="anchor" id="a8f9d043040f28f051c7145281de94681"></a>
1873 <div class="memitem">
1874 <div class="memproto">
1875 <table class="mlabels">
1876   <tr>
1877   <td class="mlabels-left">
1878       <table class="memname">
1879         <tr>
1880           <td class="memname">int4 asymm_rescale4 </td>
1881           <td>(</td>
1882           <td class="paramtype">int4&#160;</td>
1883           <td class="paramname"><em>value</em>, </td>
1884         </tr>
1885         <tr>
1886           <td class="paramkey"></td>
1887           <td></td>
1888           <td class="paramtype">int&#160;</td>
1889           <td class="paramname"><em>src_integer_bits</em>, </td>
1890         </tr>
1891         <tr>
1892           <td class="paramkey"></td>
1893           <td></td>
1894           <td class="paramtype">int&#160;</td>
1895           <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1896         </tr>
1897         <tr>
1898           <td></td>
1899           <td>)</td>
1900           <td></td><td></td>
1901         </tr>
1902       </table>
1903   </td>
1904   <td class="mlabels-right">
1905 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1906   </tr>
1907 </table>
1908 </div><div class="memdoc">
1909
1910 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00366">366</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1911
1912 </div>
1913 </div>
1914 <a class="anchor" id="a478b69bea5edb6ad939d8e7edd9e7e3f"></a>
1915 <div class="memitem">
1916 <div class="memproto">
1917 <table class="mlabels">
1918   <tr>
1919   <td class="mlabels-left">
1920       <table class="memname">
1921         <tr>
1922           <td class="memname">int8 asymm_rescale8 </td>
1923           <td>(</td>
1924           <td class="paramtype">int8&#160;</td>
1925           <td class="paramname"><em>value</em>, </td>
1926         </tr>
1927         <tr>
1928           <td class="paramkey"></td>
1929           <td></td>
1930           <td class="paramtype">int&#160;</td>
1931           <td class="paramname"><em>src_integer_bits</em>, </td>
1932         </tr>
1933         <tr>
1934           <td class="paramkey"></td>
1935           <td></td>
1936           <td class="paramtype">int&#160;</td>
1937           <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1938         </tr>
1939         <tr>
1940           <td></td>
1941           <td>)</td>
1942           <td></td><td></td>
1943         </tr>
1944       </table>
1945   </td>
1946   <td class="mlabels-right">
1947 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1948   </tr>
1949 </table>
1950 </div><div class="memdoc">
1951
1952 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00367">367</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1953
1954 </div>
1955 </div>
1956 <a class="anchor" id="a21d65cd6ac14696d58509b82789db845"></a>
1957 <div class="memitem">
1958 <div class="memproto">
1959 <table class="mlabels">
1960   <tr>
1961   <td class="mlabels-left">
1962       <table class="memname">
1963         <tr>
1964           <td class="memname">int16 asymm_rounding_divide_by_POW2_16 </td>
1965           <td>(</td>
1966           <td class="paramtype">int16&#160;</td>
1967           <td class="paramname"><em>x</em>, </td>
1968         </tr>
1969         <tr>
1970           <td class="paramkey"></td>
1971           <td></td>
1972           <td class="paramtype">int&#160;</td>
1973           <td class="paramname"><em>exponent</em>&#160;</td>
1974         </tr>
1975         <tr>
1976           <td></td>
1977           <td>)</td>
1978           <td></td><td></td>
1979         </tr>
1980       </table>
1981   </td>
1982   <td class="mlabels-right">
1983 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1984   </tr>
1985 </table>
1986 </div><div class="memdoc">
1987
1988 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00313">313</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1989
1990 </div>
1991 </div>
1992 <a class="anchor" id="ae62b2416b40ca28724c065e95e18a25b"></a>
1993 <div class="memitem">
1994 <div class="memproto">
1995 <table class="mlabels">
1996   <tr>
1997   <td class="mlabels-left">
1998       <table class="memname">
1999         <tr>
2000           <td class="memname">int2 asymm_rounding_divide_by_POW2_2 </td>
2001           <td>(</td>
2002           <td class="paramtype">int2&#160;</td>
2003           <td class="paramname"><em>x</em>, </td>
2004         </tr>
2005         <tr>
2006           <td class="paramkey"></td>
2007           <td></td>
2008           <td class="paramtype">int&#160;</td>
2009           <td class="paramname"><em>exponent</em>&#160;</td>
2010         </tr>
2011         <tr>
2012           <td></td>
2013           <td>)</td>
2014           <td></td><td></td>
2015         </tr>
2016       </table>
2017   </td>
2018   <td class="mlabels-right">
2019 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2020   </tr>
2021 </table>
2022 </div><div class="memdoc">
2023
2024 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00310">310</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2025
2026 </div>
2027 </div>
2028 <a class="anchor" id="a2660d5193f286b247cf533d8ca234e77"></a>
2029 <div class="memitem">
2030 <div class="memproto">
2031 <table class="mlabels">
2032   <tr>
2033   <td class="mlabels-left">
2034       <table class="memname">
2035         <tr>
2036           <td class="memname">int4 asymm_rounding_divide_by_POW2_4 </td>
2037           <td>(</td>
2038           <td class="paramtype">int4&#160;</td>
2039           <td class="paramname"><em>x</em>, </td>
2040         </tr>
2041         <tr>
2042           <td class="paramkey"></td>
2043           <td></td>
2044           <td class="paramtype">int&#160;</td>
2045           <td class="paramname"><em>exponent</em>&#160;</td>
2046         </tr>
2047         <tr>
2048           <td></td>
2049           <td>)</td>
2050           <td></td><td></td>
2051         </tr>
2052       </table>
2053   </td>
2054   <td class="mlabels-right">
2055 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2056   </tr>
2057 </table>
2058 </div><div class="memdoc">
2059
2060 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00311">311</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2061
2062 </div>
2063 </div>
2064 <a class="anchor" id="a38afb1b30447264fd62ca7ad86e7ea19"></a>
2065 <div class="memitem">
2066 <div class="memproto">
2067 <table class="mlabels">
2068   <tr>
2069   <td class="mlabels-left">
2070       <table class="memname">
2071         <tr>
2072           <td class="memname">int8 asymm_rounding_divide_by_POW2_8 </td>
2073           <td>(</td>
2074           <td class="paramtype">int8&#160;</td>
2075           <td class="paramname"><em>x</em>, </td>
2076         </tr>
2077         <tr>
2078           <td class="paramkey"></td>
2079           <td></td>
2080           <td class="paramtype">int&#160;</td>
2081           <td class="paramname"><em>exponent</em>&#160;</td>
2082         </tr>
2083         <tr>
2084           <td></td>
2085           <td>)</td>
2086           <td></td><td></td>
2087         </tr>
2088       </table>
2089   </td>
2090   <td class="mlabels-right">
2091 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2092   </tr>
2093 </table>
2094 </div><div class="memdoc">
2095
2096 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00312">312</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2097
2098 </div>
2099 </div>
2100 <a class="anchor" id="ab13b1910b09c0cf268f6a8af0e2013e2"></a>
2101 <div class="memitem">
2102 <div class="memproto">
2103 <table class="mlabels">
2104   <tr>
2105   <td class="mlabels-left">
2106       <table class="memname">
2107         <tr>
2108           <td class="memname">int16 asymm_rounding_half_sum16 </td>
2109           <td>(</td>
2110           <td class="paramtype">int16&#160;</td>
2111           <td class="paramname"><em>a</em>, </td>
2112         </tr>
2113         <tr>
2114           <td class="paramkey"></td>
2115           <td></td>
2116           <td class="paramtype">int16&#160;</td>
2117           <td class="paramname"><em>b</em>&#160;</td>
2118         </tr>
2119         <tr>
2120           <td></td>
2121           <td>)</td>
2122           <td></td><td></td>
2123         </tr>
2124       </table>
2125   </td>
2126   <td class="mlabels-right">
2127 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2128   </tr>
2129 </table>
2130 </div><div class="memdoc">
2131
2132 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00358">358</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2133
2134 </div>
2135 </div>
2136 <a class="anchor" id="acd43480a8530400e781603a995adcad0"></a>
2137 <div class="memitem">
2138 <div class="memproto">
2139 <table class="mlabels">
2140   <tr>
2141   <td class="mlabels-left">
2142       <table class="memname">
2143         <tr>
2144           <td class="memname">int2 asymm_rounding_half_sum2 </td>
2145           <td>(</td>
2146           <td class="paramtype">int2&#160;</td>
2147           <td class="paramname"><em>a</em>, </td>
2148         </tr>
2149         <tr>
2150           <td class="paramkey"></td>
2151           <td></td>
2152           <td class="paramtype">int2&#160;</td>
2153           <td class="paramname"><em>b</em>&#160;</td>
2154         </tr>
2155         <tr>
2156           <td></td>
2157           <td>)</td>
2158           <td></td><td></td>
2159         </tr>
2160       </table>
2161   </td>
2162   <td class="mlabels-right">
2163 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2164   </tr>
2165 </table>
2166 </div><div class="memdoc">
2167
2168 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00355">355</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2169
2170 </div>
2171 </div>
2172 <a class="anchor" id="a7dda5bba50450367760a7ad1148881be"></a>
2173 <div class="memitem">
2174 <div class="memproto">
2175 <table class="mlabels">
2176   <tr>
2177   <td class="mlabels-left">
2178       <table class="memname">
2179         <tr>
2180           <td class="memname">int4 asymm_rounding_half_sum4 </td>
2181           <td>(</td>
2182           <td class="paramtype">int4&#160;</td>
2183           <td class="paramname"><em>a</em>, </td>
2184         </tr>
2185         <tr>
2186           <td class="paramkey"></td>
2187           <td></td>
2188           <td class="paramtype">int4&#160;</td>
2189           <td class="paramname"><em>b</em>&#160;</td>
2190         </tr>
2191         <tr>
2192           <td></td>
2193           <td>)</td>
2194           <td></td><td></td>
2195         </tr>
2196       </table>
2197   </td>
2198   <td class="mlabels-right">
2199 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2200   </tr>
2201 </table>
2202 </div><div class="memdoc">
2203
2204 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00356">356</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2205
2206 </div>
2207 </div>
2208 <a class="anchor" id="acba55fb1a4dfa6ab5080cc276550d5fd"></a>
2209 <div class="memitem">
2210 <div class="memproto">
2211 <table class="mlabels">
2212   <tr>
2213   <td class="mlabels-left">
2214       <table class="memname">
2215         <tr>
2216           <td class="memname">int8 asymm_rounding_half_sum8 </td>
2217           <td>(</td>
2218           <td class="paramtype">int8&#160;</td>
2219           <td class="paramname"><em>a</em>, </td>
2220         </tr>
2221         <tr>
2222           <td class="paramkey"></td>
2223           <td></td>
2224           <td class="paramtype">int8&#160;</td>
2225           <td class="paramname"><em>b</em>&#160;</td>
2226         </tr>
2227         <tr>
2228           <td></td>
2229           <td>)</td>
2230           <td></td><td></td>
2231         </tr>
2232       </table>
2233   </td>
2234   <td class="mlabels-right">
2235 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2236   </tr>
2237 </table>
2238 </div><div class="memdoc">
2239
2240 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00357">357</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2241
2242 </div>
2243 </div>
2244 <a class="anchor" id="a88b3d0aae3bcf134f9eb4b5637a4b73c"></a>
2245 <div class="memitem">
2246 <div class="memproto">
2247 <table class="mlabels">
2248   <tr>
2249   <td class="mlabels-left">
2250       <table class="memname">
2251         <tr>
2252           <td class="memname">int16 asymm_saturating_rounding_mult_by_pow216 </td>
2253           <td>(</td>
2254           <td class="paramtype">int16&#160;</td>
2255           <td class="paramname"><em>x</em>, </td>
2256         </tr>
2257         <tr>
2258           <td class="paramkey"></td>
2259           <td></td>
2260           <td class="paramtype">int&#160;</td>
2261           <td class="paramname"><em>exponent</em>&#160;</td>
2262         </tr>
2263         <tr>
2264           <td></td>
2265           <td>)</td>
2266           <td></td><td></td>
2267         </tr>
2268       </table>
2269   </td>
2270   <td class="mlabels-right">
2271 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2272   </tr>
2273 </table>
2274 </div><div class="memdoc">
2275
2276 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00353">353</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2277
2278 </div>
2279 </div>
2280 <a class="anchor" id="ac5d336b40941ee7c63a750b3dc92b030"></a>
2281 <div class="memitem">
2282 <div class="memproto">
2283 <table class="mlabels">
2284   <tr>
2285   <td class="mlabels-left">
2286       <table class="memname">
2287         <tr>
2288           <td class="memname">int2 asymm_saturating_rounding_mult_by_pow22 </td>
2289           <td>(</td>
2290           <td class="paramtype">int2&#160;</td>
2291           <td class="paramname"><em>x</em>, </td>
2292         </tr>
2293         <tr>
2294           <td class="paramkey"></td>
2295           <td></td>
2296           <td class="paramtype">int&#160;</td>
2297           <td class="paramname"><em>exponent</em>&#160;</td>
2298         </tr>
2299         <tr>
2300           <td></td>
2301           <td>)</td>
2302           <td></td><td></td>
2303         </tr>
2304       </table>
2305   </td>
2306   <td class="mlabels-right">
2307 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2308   </tr>
2309 </table>
2310 </div><div class="memdoc">
2311
2312 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00350">350</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2313
2314 </div>
2315 </div>
2316 <a class="anchor" id="af06991bb67792a6fec9c426923f39745"></a>
2317 <div class="memitem">
2318 <div class="memproto">
2319 <table class="mlabels">
2320   <tr>
2321   <td class="mlabels-left">
2322       <table class="memname">
2323         <tr>
2324           <td class="memname">int4 asymm_saturating_rounding_mult_by_pow24 </td>
2325           <td>(</td>
2326           <td class="paramtype">int4&#160;</td>
2327           <td class="paramname"><em>x</em>, </td>
2328         </tr>
2329         <tr>
2330           <td class="paramkey"></td>
2331           <td></td>
2332           <td class="paramtype">int&#160;</td>
2333           <td class="paramname"><em>exponent</em>&#160;</td>
2334         </tr>
2335         <tr>
2336           <td></td>
2337           <td>)</td>
2338           <td></td><td></td>
2339         </tr>
2340       </table>
2341   </td>
2342   <td class="mlabels-right">
2343 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2344   </tr>
2345 </table>
2346 </div><div class="memdoc">
2347
2348 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00351">351</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2349
2350 </div>
2351 </div>
2352 <a class="anchor" id="a1bfbcc866bf09921d6bf4fc39cd38d89"></a>
2353 <div class="memitem">
2354 <div class="memproto">
2355 <table class="mlabels">
2356   <tr>
2357   <td class="mlabels-left">
2358       <table class="memname">
2359         <tr>
2360           <td class="memname">int8 asymm_saturating_rounding_mult_by_pow28 </td>
2361           <td>(</td>
2362           <td class="paramtype">int8&#160;</td>
2363           <td class="paramname"><em>x</em>, </td>
2364         </tr>
2365         <tr>
2366           <td class="paramkey"></td>
2367           <td></td>
2368           <td class="paramtype">int&#160;</td>
2369           <td class="paramname"><em>exponent</em>&#160;</td>
2370         </tr>
2371         <tr>
2372           <td></td>
2373           <td>)</td>
2374           <td></td><td></td>
2375         </tr>
2376       </table>
2377   </td>
2378   <td class="mlabels-right">
2379 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2380   </tr>
2381 </table>
2382 </div><div class="memdoc">
2383
2384 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00352">352</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2385
2386 </div>
2387 </div>
2388 <a class="anchor" id="a7effd9e7de9fefa9d4ae4eb2cfc06090"></a>
2389 <div class="memitem">
2390 <div class="memproto">
2391 <table class="mlabels">
2392   <tr>
2393   <td class="mlabels-left">
2394       <table class="memname">
2395         <tr>
2396           <td class="memname">int16 asymm_select_using_mask16 </td>
2397           <td>(</td>
2398           <td class="paramtype">int16&#160;</td>
2399           <td class="paramname"><em>if_mask</em>, </td>
2400         </tr>
2401         <tr>
2402           <td class="paramkey"></td>
2403           <td></td>
2404           <td class="paramtype">int16&#160;</td>
2405           <td class="paramname"><em>then_val</em>, </td>
2406         </tr>
2407         <tr>
2408           <td class="paramkey"></td>
2409           <td></td>
2410           <td class="paramtype">int16&#160;</td>
2411           <td class="paramname"><em>else_val</em>&#160;</td>
2412         </tr>
2413         <tr>
2414           <td></td>
2415           <td>)</td>
2416           <td></td><td></td>
2417         </tr>
2418       </table>
2419   </td>
2420   <td class="mlabels-right">
2421 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2422   </tr>
2423 </table>
2424 </div><div class="memdoc">
2425
2426 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00328">328</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2427
2428 </div>
2429 </div>
2430 <a class="anchor" id="a0dade5bb9ed9aae49b6bb2875e273d89"></a>
2431 <div class="memitem">
2432 <div class="memproto">
2433 <table class="mlabels">
2434   <tr>
2435   <td class="mlabels-left">
2436       <table class="memname">
2437         <tr>
2438           <td class="memname">int2 asymm_select_using_mask2 </td>
2439           <td>(</td>
2440           <td class="paramtype">int2&#160;</td>
2441           <td class="paramname"><em>if_mask</em>, </td>
2442         </tr>
2443         <tr>
2444           <td class="paramkey"></td>
2445           <td></td>
2446           <td class="paramtype">int2&#160;</td>
2447           <td class="paramname"><em>then_val</em>, </td>
2448         </tr>
2449         <tr>
2450           <td class="paramkey"></td>
2451           <td></td>
2452           <td class="paramtype">int2&#160;</td>
2453           <td class="paramname"><em>else_val</em>&#160;</td>
2454         </tr>
2455         <tr>
2456           <td></td>
2457           <td>)</td>
2458           <td></td><td></td>
2459         </tr>
2460       </table>
2461   </td>
2462   <td class="mlabels-right">
2463 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2464   </tr>
2465 </table>
2466 </div><div class="memdoc">
2467
2468 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00325">325</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2469
2470 </div>
2471 </div>
2472 <a class="anchor" id="a44e4d74ed42006c4153a9cb6c97285de"></a>
2473 <div class="memitem">
2474 <div class="memproto">
2475 <table class="mlabels">
2476   <tr>
2477   <td class="mlabels-left">
2478       <table class="memname">
2479         <tr>
2480           <td class="memname">int4 asymm_select_using_mask4 </td>
2481           <td>(</td>
2482           <td class="paramtype">int4&#160;</td>
2483           <td class="paramname"><em>if_mask</em>, </td>
2484         </tr>
2485         <tr>
2486           <td class="paramkey"></td>
2487           <td></td>
2488           <td class="paramtype">int4&#160;</td>
2489           <td class="paramname"><em>then_val</em>, </td>
2490         </tr>
2491         <tr>
2492           <td class="paramkey"></td>
2493           <td></td>
2494           <td class="paramtype">int4&#160;</td>
2495           <td class="paramname"><em>else_val</em>&#160;</td>
2496         </tr>
2497         <tr>
2498           <td></td>
2499           <td>)</td>
2500           <td></td><td></td>
2501         </tr>
2502       </table>
2503   </td>
2504   <td class="mlabels-right">
2505 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2506   </tr>
2507 </table>
2508 </div><div class="memdoc">
2509
2510 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00326">326</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2511
2512 </div>
2513 </div>
2514 <a class="anchor" id="a64682bc22716ad771d012ce4c7398652"></a>
2515 <div class="memitem">
2516 <div class="memproto">
2517 <table class="mlabels">
2518   <tr>
2519   <td class="mlabels-left">
2520       <table class="memname">
2521         <tr>
2522           <td class="memname">int8 asymm_select_using_mask8 </td>
2523           <td>(</td>
2524           <td class="paramtype">int8&#160;</td>
2525           <td class="paramname"><em>if_mask</em>, </td>
2526         </tr>
2527         <tr>
2528           <td class="paramkey"></td>
2529           <td></td>
2530           <td class="paramtype">int8&#160;</td>
2531           <td class="paramname"><em>then_val</em>, </td>
2532         </tr>
2533         <tr>
2534           <td class="paramkey"></td>
2535           <td></td>
2536           <td class="paramtype">int8&#160;</td>
2537           <td class="paramname"><em>else_val</em>&#160;</td>
2538         </tr>
2539         <tr>
2540           <td></td>
2541           <td>)</td>
2542           <td></td><td></td>
2543         </tr>
2544       </table>
2545   </td>
2546   <td class="mlabels-right">
2547 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2548   </tr>
2549 </table>
2550 </div><div class="memdoc">
2551
2552 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00327">327</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2553
2554 </div>
2555 </div>
2556 <a class="anchor" id="a4bde4cd395697b5d37af5116773f16ed"></a>
2557 <div class="memitem">
2558 <div class="memproto">
2559 <table class="mlabels">
2560   <tr>
2561   <td class="mlabels-left">
2562       <table class="memname">
2563         <tr>
2564           <td class="memname">int16 exp_barrel_shifter16 </td>
2565           <td>(</td>
2566           <td class="paramtype">int16&#160;</td>
2567           <td class="paramname"><em>result</em>, </td>
2568         </tr>
2569         <tr>
2570           <td class="paramkey"></td>
2571           <td></td>
2572           <td class="paramtype">int&#160;</td>
2573           <td class="paramname"><em>exponent</em>, </td>
2574         </tr>
2575         <tr>
2576           <td class="paramkey"></td>
2577           <td></td>
2578           <td class="paramtype">int&#160;</td>
2579           <td class="paramname"><em>fp_multiplier</em>, </td>
2580         </tr>
2581         <tr>
2582           <td class="paramkey"></td>
2583           <td></td>
2584           <td class="paramtype">int&#160;</td>
2585           <td class="paramname"><em>k_integer_bits</em>, </td>
2586         </tr>
2587         <tr>
2588           <td class="paramkey"></td>
2589           <td></td>
2590           <td class="paramtype">int&#160;</td>
2591           <td class="paramname"><em>k_fractional_bits</em>, </td>
2592         </tr>
2593         <tr>
2594           <td class="paramkey"></td>
2595           <td></td>
2596           <td class="paramtype">int16&#160;</td>
2597           <td class="paramname"><em>remainder</em>&#160;</td>
2598         </tr>
2599         <tr>
2600           <td></td>
2601           <td>)</td>
2602           <td></td><td></td>
2603         </tr>
2604       </table>
2605   </td>
2606   <td class="mlabels-right">
2607 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2608   </tr>
2609 </table>
2610 </div><div class="memdoc">
2611
2612 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00343">343</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2613
2614 </div>
2615 </div>
2616 <a class="anchor" id="ad12110cc5f3099fa90b631e7b05772a0"></a>
2617 <div class="memitem">
2618 <div class="memproto">
2619 <table class="mlabels">
2620   <tr>
2621   <td class="mlabels-left">
2622       <table class="memname">
2623         <tr>
2624           <td class="memname">int2 exp_barrel_shifter2 </td>
2625           <td>(</td>
2626           <td class="paramtype">int2&#160;</td>
2627           <td class="paramname"><em>result</em>, </td>
2628         </tr>
2629         <tr>
2630           <td class="paramkey"></td>
2631           <td></td>
2632           <td class="paramtype">int&#160;</td>
2633           <td class="paramname"><em>exponent</em>, </td>
2634         </tr>
2635         <tr>
2636           <td class="paramkey"></td>
2637           <td></td>
2638           <td class="paramtype">int&#160;</td>
2639           <td class="paramname"><em>fp_multiplier</em>, </td>
2640         </tr>
2641         <tr>
2642           <td class="paramkey"></td>
2643           <td></td>
2644           <td class="paramtype">int&#160;</td>
2645           <td class="paramname"><em>k_integer_bits</em>, </td>
2646         </tr>
2647         <tr>
2648           <td class="paramkey"></td>
2649           <td></td>
2650           <td class="paramtype">int&#160;</td>
2651           <td class="paramname"><em>k_fractional_bits</em>, </td>
2652         </tr>
2653         <tr>
2654           <td class="paramkey"></td>
2655           <td></td>
2656           <td class="paramtype">int2&#160;</td>
2657           <td class="paramname"><em>remainder</em>&#160;</td>
2658         </tr>
2659         <tr>
2660           <td></td>
2661           <td>)</td>
2662           <td></td><td></td>
2663         </tr>
2664       </table>
2665   </td>
2666   <td class="mlabels-right">
2667 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2668   </tr>
2669 </table>
2670 </div><div class="memdoc">
2671
2672 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00340">340</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2673
2674 </div>
2675 </div>
2676 <a class="anchor" id="a521e3ded9b6ca69692e9415ef9b4cee1"></a>
2677 <div class="memitem">
2678 <div class="memproto">
2679 <table class="mlabels">
2680   <tr>
2681   <td class="mlabels-left">
2682       <table class="memname">
2683         <tr>
2684           <td class="memname">int4 exp_barrel_shifter4 </td>
2685           <td>(</td>
2686           <td class="paramtype">int4&#160;</td>
2687           <td class="paramname"><em>result</em>, </td>
2688         </tr>
2689         <tr>
2690           <td class="paramkey"></td>
2691           <td></td>
2692           <td class="paramtype">int&#160;</td>
2693           <td class="paramname"><em>exponent</em>, </td>
2694         </tr>
2695         <tr>
2696           <td class="paramkey"></td>
2697           <td></td>
2698           <td class="paramtype">int&#160;</td>
2699           <td class="paramname"><em>fp_multiplier</em>, </td>
2700         </tr>
2701         <tr>
2702           <td class="paramkey"></td>
2703           <td></td>
2704           <td class="paramtype">int&#160;</td>
2705           <td class="paramname"><em>k_integer_bits</em>, </td>
2706         </tr>
2707         <tr>
2708           <td class="paramkey"></td>
2709           <td></td>
2710           <td class="paramtype">int&#160;</td>
2711           <td class="paramname"><em>k_fractional_bits</em>, </td>
2712         </tr>
2713         <tr>
2714           <td class="paramkey"></td>
2715           <td></td>
2716           <td class="paramtype">int4&#160;</td>
2717           <td class="paramname"><em>remainder</em>&#160;</td>
2718         </tr>
2719         <tr>
2720           <td></td>
2721           <td>)</td>
2722           <td></td><td></td>
2723         </tr>
2724       </table>
2725   </td>
2726   <td class="mlabels-right">
2727 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2728   </tr>
2729 </table>
2730 </div><div class="memdoc">
2731
2732 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00341">341</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2733
2734 </div>
2735 </div>
2736 <a class="anchor" id="a936aed524c644efcf20b28877e3a0f3f"></a>
2737 <div class="memitem">
2738 <div class="memproto">
2739 <table class="mlabels">
2740   <tr>
2741   <td class="mlabels-left">
2742       <table class="memname">
2743         <tr>
2744           <td class="memname">int8 exp_barrel_shifter8 </td>
2745           <td>(</td>
2746           <td class="paramtype">int8&#160;</td>
2747           <td class="paramname"><em>result</em>, </td>
2748         </tr>
2749         <tr>
2750           <td class="paramkey"></td>
2751           <td></td>
2752           <td class="paramtype">int&#160;</td>
2753           <td class="paramname"><em>exponent</em>, </td>
2754         </tr>
2755         <tr>
2756           <td class="paramkey"></td>
2757           <td></td>
2758           <td class="paramtype">int&#160;</td>
2759           <td class="paramname"><em>fp_multiplier</em>, </td>
2760         </tr>
2761         <tr>
2762           <td class="paramkey"></td>
2763           <td></td>
2764           <td class="paramtype">int&#160;</td>
2765           <td class="paramname"><em>k_integer_bits</em>, </td>
2766         </tr>
2767         <tr>
2768           <td class="paramkey"></td>
2769           <td></td>
2770           <td class="paramtype">int&#160;</td>
2771           <td class="paramname"><em>k_fractional_bits</em>, </td>
2772         </tr>
2773         <tr>
2774           <td class="paramkey"></td>
2775           <td></td>
2776           <td class="paramtype">int8&#160;</td>
2777           <td class="paramname"><em>remainder</em>&#160;</td>
2778         </tr>
2779         <tr>
2780           <td></td>
2781           <td>)</td>
2782           <td></td><td></td>
2783         </tr>
2784       </table>
2785   </td>
2786   <td class="mlabels-right">
2787 <span class="mlabels"><span class="mlabel">inline</span></span>  </td>
2788   </tr>
2789 </table>
2790 </div><div class="memdoc">
2791
2792 <p>Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00342">342</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2793
2794 </div>
2795 </div>
2796 </div><!-- contents -->
2797 </div><!-- doc-content -->
2798 <!-- start footer part -->
2799 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
2800   <ul>
2801     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.xhtml">core</a></li><li class="navelem"><a class="el" href="dir_8c278f79c760e5c5fbd911f9870614c1.xhtml">CL</a></li><li class="navelem"><a class="el" href="dir_25885286e9dad4fa105b7b25a8031bbf.xhtml">cl_kernels</a></li><li class="navelem"><a class="el" href="helpers__asymm_8h.xhtml">helpers_asymm.h</a></li>
2802     <li class="footer">Generated on Wed May 23 2018 11:36:39 for Compute Library by
2803     <a href="http://www.doxygen.org/index.html">
2804     <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
2805   </ul>
2806 </div>
2807 </body>
2808 </html>