blob: b8a3404b8d19dfc4ac0a2f307cfcbb1118a9b0d4 [file] [log] [blame]
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001<!-- 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"/>
Jenkinsb9abeae2018-11-22 11:58:08 +00007<meta name="generator" content="Doxygen 1.8.13"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00008<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);
Anthony Barbier8140e1e2017-12-14 23:48:46 +000019</script>
20<link href="search/search.css" rel="stylesheet" type="text/css"/>
21<script type="text/javascript" src="search/searchdata.js"></script>
22<script type="text/javascript" src="search/search.js"></script>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000023<script type="text/x-mathjax-config">
24 MathJax.Hub.Config({
25 extensions: ["tex2jax.js"],
26 jax: ["input/TeX","output/HTML-CSS"],
27});
28</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
29<link href="doxygen.css" rel="stylesheet" type="text/css" />
30</head>
31<body>
32<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33<div id="titlearea">
34<table cellspacing="0" cellpadding="0">
35 <tbody>
36 <tr style="height: 56px;">
37 <td style="padding-left: 0.5em;">
38 <div id="projectname">Compute Library
Jenkinsb9abeae2018-11-22 11:58:08 +000039 &#160;<span id="projectnumber">18.11</span>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000040 </div>
41 </td>
42 </tr>
43 </tbody>
44</table>
45</div>
46<!-- end header part -->
Jenkinsb9abeae2018-11-22 11:58:08 +000047<!-- Generated by Doxygen 1.8.13 -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000048<script type="text/javascript">
49var searchBox = new SearchBox("searchBox", "search",false,'Search');
50</script>
Jenkinsb9abeae2018-11-22 11:58:08 +000051<script type="text/javascript" src="menudata.js"></script>
52<script type="text/javascript" src="menu.js"></script>
53<script type="text/javascript">
54$(function() {
55 initMenu('',true,false,'search.php','Search');
56 $(document).ready(function() { init_search(); });
57});
58</script>
59<div id="main-nav"></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000060</div><!-- top -->
61<div id="side-nav" class="ui-resizable side-nav-resizable">
62 <div id="nav-tree">
63 <div id="nav-tree-contents">
64 <div id="nav-sync" class="sync"></div>
65 </div>
66 </div>
67 <div id="splitbar" style="-moz-user-select:none;"
68 class="ui-resizable-handle">
69 </div>
70</div>
71<script type="text/javascript">
72$(document).ready(function(){initNavTree('helpers__asymm_8h.xhtml','');});
73</script>
74<div id="doc-content">
75<!-- window showing the filter options -->
76<div id="MSearchSelectWindow"
77 onmouseover="return searchBox.OnSearchSelectShow()"
78 onmouseout="return searchBox.OnSearchSelectHide()"
79 onkeydown="return searchBox.OnSearchSelectKey(event)">
80</div>
81
82<!-- iframe showing the search results (closed by default) -->
83<div id="MSearchResultsWindow">
84<iframe src="javascript:void(0)" frameborder="0"
85 name="MSearchResults" id="MSearchResults">
86</iframe>
87</div>
88
89<div class="header">
90 <div class="summary">
91<a href="#define-members">Macros</a> &#124;
92<a href="#func-members">Functions</a> </div>
93 <div class="headertitle">
94<div class="title">helpers_asymm.h File Reference</div> </div>
95</div><!--header-->
96<div class="contents">
Jenkinsb9abeae2018-11-22 11:58:08 +000097<div class="textblock"><code>#include &quot;<a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml">helpers.h</a>&quot;</code><br />
Anthony Barbier8140e1e2017-12-14 23:48:46 +000098</div>
99<p><a href="helpers__asymm_8h_source.xhtml">Go to the source code of this file.</a></p>
100<table class="memberdecls">
101<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
102Macros</h2></td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100103<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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000104<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>
105<tr class="separator:abf75e242631b23007e4046682aa57ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100106<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000107<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>
108<tr class="separator:ad4b199221927cbabbf859e4d2efb688d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100109<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000110<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>
111<tr class="separator:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100112<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000113<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>
114<tr class="separator:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100115<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000116<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>
117<tr class="separator:a8c47a92ec76a1e367b45305c17d9ea88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100118<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000119<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>
120<tr class="separator:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100121<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000122<tr class="separator:aa12ca21cb9a54d2e4c26d57303fe44a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100123<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000124<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>
125<tr class="separator:a4d0a02b30d8cc5725d0a11781b488852"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100126<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000127<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>
128<tr class="separator:a737312bc4a68c79a77cfab4849793bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100129<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000130<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>
131<tr class="separator:a8d97c6698c0e44424deae3f3130c55ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100132<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000133<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>
134<tr class="separator:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100135<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000136<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>
137<tr class="separator:aace85e2a32bacdaa4e2d2055deabfc57"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100138<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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000139<tr class="separator:aa43fc359dea64362f3016384f4269845"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100140<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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000141<tr class="separator:a5483aefd5e07244661178bfd3f434448"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100142<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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000143<tr class="separator:a86de0ffca367bfcf27a8ae5dd1fdef2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100144<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000145<tr class="separator:aeebdcd88f4320931cd4a599ad1527e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100146<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000147<tr class="separator:a9bc08a8c1833c5e6055ad6665e3ccf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100148<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000149<tr class="separator:afc6a76528024472919bb5d50d067578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100150<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000151<tr class="separator:af1d5450c9c4c13a6b7aa52af197b54b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100152<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000153<tr class="separator:ace9ecff421cf885ad2c2d72d87c492cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100154<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000155<tr class="separator:a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100156<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000157<tr class="separator:ae77f34e1316d52c1ee84c35be9efb0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100158<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000159<tr class="separator:a4cc3ff3a2eeb5f5e9d6743e08f632928"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100160<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000161<tr class="separator:ad47fa44c1566aa4678fe524478490612"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100162<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000163<tr class="separator:a98585f1bb84dea90aecbf59785c46151"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000164</table><table class="memberdecls">
165<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
166Functions</h2></td></tr>
167<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>
168<tr class="separator:ae62b2416b40ca28724c065e95e18a25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000169<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>
170<tr class="separator:a2660d5193f286b247cf533d8ca234e77"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000171<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>
172<tr class="separator:a38afb1b30447264fd62ca7ad86e7ea19"><td class="memSeparator" colspan="2">&#160;</td></tr>
173<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>
174<tr class="separator:a21d65cd6ac14696d58509b82789db845"><td class="memSeparator" colspan="2">&#160;</td></tr>
175<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>
176<tr class="separator:a5038b78913b76d782cc0aa0d841bd7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000177<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>
178<tr class="separator:a6dca28649388d59ec0281af70d4507b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000179<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>
180<tr class="separator:a165b0bbab841712ea2c9a17a09bfa166"><td class="memSeparator" colspan="2">&#160;</td></tr>
181<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>
182<tr class="separator:aef32e3a9c804f145deb6b88f0a444919"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000183<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>
184<tr class="separator:a8eb88d417247a1b8b8929e5c8faeb48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
185<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>
186<tr class="separator:a43aa0011bd9b23ce3f691a9ae205fe07"><td class="memSeparator" colspan="2">&#160;</td></tr>
187<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>
188<tr class="separator:accb6ee0e0c578704ae23e6ab0a57cdd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
189<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>
190<tr class="separator:a1d51b02a83af2a152fa52755f572f5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<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>
192<tr class="separator:a0dade5bb9ed9aae49b6bb2875e273d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
193<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>
194<tr class="separator:a44e4d74ed42006c4153a9cb6c97285de"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<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>
196<tr class="separator:a64682bc22716ad771d012ce4c7398652"><td class="memSeparator" colspan="2">&#160;</td></tr>
197<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>
198<tr class="separator:a7effd9e7de9fefa9d4ae4eb2cfc06090"><td class="memSeparator" colspan="2">&#160;</td></tr>
199<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>
200<tr class="separator:a6ed499c821cf4f6b3bc4049d49e35139"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<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>
202<tr class="separator:aed95c68d9545d401d2323cd8ad287fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
203<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>
204<tr class="separator:abefb0a278a588f03dc561db900df0958"><td class="memSeparator" colspan="2">&#160;</td></tr>
205<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>
206<tr class="separator:a509916b7ee582d87faf1312fde111c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
207<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>
208<tr class="separator:a885a16f240b119acc9f0721c07acdce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<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>
210<tr class="separator:a2f180955030087d7538d5dc89f29eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<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>
212<tr class="separator:a8de81d453a39d0f589b0d3e007c7fde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
213<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>
214<tr class="separator:a1e1fef1353d2458beb7fab06cc8f460e"><td class="memSeparator" colspan="2">&#160;</td></tr>
215<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>
216<tr class="separator:ad12110cc5f3099fa90b631e7b05772a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
217<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>
218<tr class="separator:a521e3ded9b6ca69692e9415ef9b4cee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<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>
220<tr class="separator:a936aed524c644efcf20b28877e3a0f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
221<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>
222<tr class="separator:a4bde4cd395697b5d37af5116773f16ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<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>
224<tr class="separator:a35b98dc80eefc6ce799720861a668691"><td class="memSeparator" colspan="2">&#160;</td></tr>
225<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>
226<tr class="separator:aa1dda459c2b10a9620b2c14a928ed4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
227<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>
228<tr class="separator:a429f20ad96413c1f7d4ee968afed6f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
229<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>
230<tr class="separator:ae13cfab30e1d4c5f797f9d3d7c6acacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
231<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>
232<tr class="separator:ac5d336b40941ee7c63a750b3dc92b030"><td class="memSeparator" colspan="2">&#160;</td></tr>
233<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>
234<tr class="separator:af06991bb67792a6fec9c426923f39745"><td class="memSeparator" colspan="2">&#160;</td></tr>
235<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>
236<tr class="separator:a1bfbcc866bf09921d6bf4fc39cd38d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
237<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>
238<tr class="separator:a88b3d0aae3bcf134f9eb4b5637a4b73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
239<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>
240<tr class="separator:acd43480a8530400e781603a995adcad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
241<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>
242<tr class="separator:a7dda5bba50450367760a7ad1148881be"><td class="memSeparator" colspan="2">&#160;</td></tr>
243<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>
244<tr class="separator:acba55fb1a4dfa6ab5080cc276550d5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
245<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>
246<tr class="separator:ab13b1910b09c0cf268f6a8af0e2013e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
247<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>
248<tr class="separator:a6524f601cf9a2ae69d5eab74576c93d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
249<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>
250<tr class="separator:a049439083adb7b960079832ad6367389"><td class="memSeparator" colspan="2">&#160;</td></tr>
251<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>
252<tr class="separator:abe37c90e62ee60565cbfbb38c4358fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
253<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>
254<tr class="separator:ac3316120c01b6c993ac8f2d3f2b4ff03"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100255<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000256<tr class="separator:a49b94bfc99276975c6fed32c693cbac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100257<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000258<tr class="separator:a8f9d043040f28f051c7145281de94681"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100259<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000260<tr class="separator:a478b69bea5edb6ad939d8e7edd9e7e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100261<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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000262<tr class="separator:a700e603af523859efb90ed4b52b41c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000263</table>
264<h2 class="groupheader">Macro Definition Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +0000265<a id="aeebdcd88f4320931cd4a599ad1527e83"></a>
266<h2 class="memtitle"><span class="permalink"><a href="#aeebdcd88f4320931cd4a599ad1527e83">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</h2>
267
Anthony Barbier06ea0482018-02-22 15:45:35 +0000268<div class="memitem">
269<div class="memproto">
270 <table class="memname">
271 <tr>
272 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</td>
273 <td>(</td>
274 <td class="paramtype">&#160;</td>
275 <td class="paramname">a, </td>
276 </tr>
277 <tr>
278 <td class="paramkey"></td>
279 <td></td>
280 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100281 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000282 </tr>
283 <tr>
284 <td></td>
285 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100286 <td></td><td>&#160;&#160;&#160;asymm_exp_on_interval_between_negative_one_quarter_and_0_excl##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000287 </tr>
288 </table>
289</div><div class="memdoc">
290
Jenkinsb9abeae2018-11-22 11:58:08 +0000291<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000292
293</div>
294</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000295<a id="a3d8a3968a069eb8abbc28d31c20f6b8c"></a>
296<h2 class="memtitle"><span class="permalink"><a href="#a3d8a3968a069eb8abbc28d31c20f6b8c">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</h2>
297
Anthony Barbier06ea0482018-02-22 15:45:35 +0000298<div class="memitem">
299<div class="memproto">
300 <table class="memname">
301 <tr>
302 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</td>
303 <td>(</td>
304 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100305 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000306 <td></td>
307 </tr>
308 </table>
309</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000310<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_exp_on_interval_between_negative_one_quarter_and_0_excl##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) \</div><div class="line"> { \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) constant_term = 1895147668; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) constant_1_over_3 = 715827883; \</div><div class="line"> const <span class="keywordtype">int</span> k_fractional_bits = 31; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> + (1 &lt;&lt; (k_fractional_bits - 3)); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x2 = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x, x, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x3 = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x2, x, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x4 = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x2, x2, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x4_over_4 = <a class="code" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(x4, 2, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x4_over_24_plus_x3_over_6_plus_x2 = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>((x4_over_4 + x3), constant_1_over_3, size) + x2; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x4_over_24_plus_x3_over_6_plus_x2_over_2 = <a class="code" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(x4_over_24_plus_x3_over_6_plus_x2, 1, size); \</div><div class="line"> return constant_term + <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(constant_term, x + x4_over_24_plus_x3_over_6_plus_x2_over_2, size); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
311<div class="ttc" id="helpers__asymm_8h_xhtml_a5483aefd5e07244661178bfd3f434448"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a></div><div class="ttdeci">#define ASYMM_MULT(a, b, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00296">helpers_asymm.h:296</a></div></div>
312<div class="ttc" id="helpers__asymm_8h_xhtml_aa43fc359dea64362f3016384f4269845"><div class="ttname"><a href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a></div><div class="ttdeci">#define ASYMM_ROUNDING_DIVIDE_BY_POW2(x, exponent, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00295">helpers_asymm.h:295</a></div></div>
313<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000314</div><!-- fragment -->
315<p>Calculates \( exp(x) \) for x in [-1/4, 0). </p>
316<dl class="params"><dt>Parameters</dt><dd>
317 <table class="params">
318 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
319 </table>
320 </dd>
321</dl>
322<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
323
Jenkinsb9abeae2018-11-22 11:58:08 +0000324<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000325
326</div>
327</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000328<a id="a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"></a>
329<h2 class="memtitle"><span class="permalink"><a href="#a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES</h2>
330
Anthony Barbier06ea0482018-02-22 15:45:35 +0000331<div class="memitem">
332<div class="memproto">
333 <table class="memname">
334 <tr>
335 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES</td>
336 <td>(</td>
337 <td class="paramtype">&#160;</td>
338 <td class="paramname">a, </td>
339 </tr>
340 <tr>
341 <td class="paramkey"></td>
342 <td></td>
343 <td class="paramtype">&#160;</td>
344 <td class="paramname">k_integer_bits, </td>
345 </tr>
346 <tr>
347 <td class="paramkey"></td>
348 <td></td>
349 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100350 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000351 </tr>
352 <tr>
353 <td></td>
354 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100355 <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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000356 </tr>
357 </table>
358</div><div class="memdoc">
359
Jenkinsb9abeae2018-11-22 11:58:08 +0000360<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000361
362</div>
363</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000364<a id="a4d0a02b30d8cc5725d0a11781b488852"></a>
365<h2 class="memtitle"><span class="permalink"><a href="#a4d0a02b30d8cc5725d0a11781b488852">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</h2>
366
Anthony Barbier06ea0482018-02-22 15:45:35 +0000367<div class="memitem">
368<div class="memproto">
369 <table class="memname">
370 <tr>
371 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</td>
372 <td>(</td>
373 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100374 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000375 <td></td>
376 </tr>
377 </table>
378</div><div class="memdoc">
379
380<p>Calculates \( exp(x) \) for x &lt; 0. </p>
381<dl class="params"><dt>Parameters</dt><dd>
382 <table class="params">
383 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
384 </table>
385 </dd>
386</dl>
387<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
388
Jenkinsb9abeae2018-11-22 11:58:08 +0000389<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000390
391</div>
392</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000393<a id="af1d5450c9c4c13a6b7aa52af197b54b2"></a>
394<h2 class="memtitle"><span class="permalink"><a href="#af1d5450c9c4c13a6b7aa52af197b54b2">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO</h2>
395
Anthony Barbier06ea0482018-02-22 15:45:35 +0000396<div class="memitem">
397<div class="memproto">
398 <table class="memname">
399 <tr>
400 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO</td>
401 <td>(</td>
402 <td class="paramtype">&#160;</td>
403 <td class="paramname">a, </td>
404 </tr>
405 <tr>
406 <td class="paramkey"></td>
407 <td></td>
408 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100409 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000410 </tr>
411 <tr>
412 <td></td>
413 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100414 <td></td><td>&#160;&#160;&#160;asymm_mask_if_non_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000415 </tr>
416 </table>
417</div><div class="memdoc">
418
Jenkinsb9abeae2018-11-22 11:58:08 +0000419<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000420
421</div>
422</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000423<a id="a6dd3d8d22942f0ff3e59b4e32cfd4de3"></a>
424<h2 class="memtitle"><span class="permalink"><a href="#a6dd3d8d22942f0ff3e59b4e32cfd4de3">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO_IMPL</h2>
425
Anthony Barbier06ea0482018-02-22 15:45:35 +0000426<div class="memitem">
427<div class="memproto">
428 <table class="memname">
429 <tr>
430 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO_IMPL</td>
431 <td>(</td>
432 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100433 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000434 <td></td>
435 </tr>
436 </table>
437</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000438<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_mask_if_non_zero##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) \</div><div class="line"> { \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) all_zeros = 0; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) all_ones = ~0; \</div><div class="line"> return select(all_zeros, all_ones, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> != 0); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
439<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000440</div><!-- fragment -->
441<p>For each element of input vector, the corresponding bits of the result item are set if the input item is non-zero. </p>
442<dl class="params"><dt>Parameters</dt><dd>
443 <table class="params">
444 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
445 </table>
446 </dd>
447</dl>
448<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>
449
Jenkinsb9abeae2018-11-22 11:58:08 +0000450<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000451
452</div>
453</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000454<a id="afc6a76528024472919bb5d50d067578b"></a>
455<h2 class="memtitle"><span class="permalink"><a href="#afc6a76528024472919bb5d50d067578b">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO</h2>
456
Anthony Barbier06ea0482018-02-22 15:45:35 +0000457<div class="memitem">
458<div class="memproto">
459 <table class="memname">
460 <tr>
461 <td class="memname">#define ASYMM_MASK_IF_ZERO</td>
462 <td>(</td>
463 <td class="paramtype">&#160;</td>
464 <td class="paramname">a, </td>
465 </tr>
466 <tr>
467 <td class="paramkey"></td>
468 <td></td>
469 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100470 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000471 </tr>
472 <tr>
473 <td></td>
474 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100475 <td></td><td>&#160;&#160;&#160;asymm_mask_if_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000476 </tr>
477 </table>
478</div><div class="memdoc">
479
Jenkinsb9abeae2018-11-22 11:58:08 +0000480<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000481
482</div>
483</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000484<a id="a8c47a92ec76a1e367b45305c17d9ea88"></a>
485<h2 class="memtitle"><span class="permalink"><a href="#a8c47a92ec76a1e367b45305c17d9ea88">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO_IMPL</h2>
486
Anthony Barbier06ea0482018-02-22 15:45:35 +0000487<div class="memitem">
488<div class="memproto">
489 <table class="memname">
490 <tr>
491 <td class="memname">#define ASYMM_MASK_IF_ZERO_IMPL</td>
492 <td>(</td>
493 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100494 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000495 <td></td>
496 </tr>
497 </table>
498</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000499<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_mask_if_zero##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) \</div><div class="line"> { \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) all_zeros = 0; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) all_ones = ~0; \</div><div class="line"> return select(all_zeros, all_ones, <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a> == 0); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
500<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000501</div><!-- fragment -->
502<p>For each element of input vector, the corresponding bits of the result item are set if the input item is zero. </p>
503<dl class="params"><dt>Parameters</dt><dd>
504 <table class="params">
505 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
506 </table>
507 </dd>
508</dl>
509<dl class="section return"><dt>Returns</dt><dd>Output vector with bits set when corresponding bit in <code>a</code> is zero. </dd></dl>
510
Jenkinsb9abeae2018-11-22 11:58:08 +0000511<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000512
513</div>
514</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000515<a id="a5483aefd5e07244661178bfd3f434448"></a>
516<h2 class="memtitle"><span class="permalink"><a href="#a5483aefd5e07244661178bfd3f434448">&#9670;&nbsp;</a></span>ASYMM_MULT</h2>
517
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000518<div class="memitem">
519<div class="memproto">
520 <table class="memname">
521 <tr>
522 <td class="memname">#define ASYMM_MULT</td>
523 <td>(</td>
524 <td class="paramtype">&#160;</td>
525 <td class="paramname">a, </td>
526 </tr>
527 <tr>
528 <td class="paramkey"></td>
529 <td></td>
530 <td class="paramtype">&#160;</td>
531 <td class="paramname">b, </td>
532 </tr>
533 <tr>
534 <td class="paramkey"></td>
535 <td></td>
536 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100537 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000538 </tr>
539 <tr>
540 <td></td>
541 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100542 <td></td><td>&#160;&#160;&#160;<a class="el" href="softmax__layer__quantized_8cl.xhtml#a525a42d38133b1051b8924b456add4a1">asymm_mult</a>##size(a, b)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000543 </tr>
544 </table>
545</div><div class="memdoc">
546
Jenkinsb9abeae2018-11-22 11:58:08 +0000547<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000548
549</div>
550</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000551<a id="a86de0ffca367bfcf27a8ae5dd1fdef2d"></a>
552<h2 class="memtitle"><span class="permalink"><a href="#a86de0ffca367bfcf27a8ae5dd1fdef2d">&#9670;&nbsp;</a></span>ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</h2>
553
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000554<div class="memitem">
555<div class="memproto">
556 <table class="memname">
557 <tr>
558 <td class="memname">#define ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</td>
559 <td>(</td>
560 <td class="paramtype">&#160;</td>
561 <td class="paramname">x, </td>
562 </tr>
563 <tr>
564 <td class="paramkey"></td>
565 <td></td>
566 <td class="paramtype">&#160;</td>
567 <td class="paramname">quantized_multiplier, </td>
568 </tr>
569 <tr>
570 <td class="paramkey"></td>
571 <td></td>
572 <td class="paramtype">&#160;</td>
573 <td class="paramname">right_shift, </td>
574 </tr>
575 <tr>
576 <td class="paramkey"></td>
577 <td></td>
578 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100579 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000580 </tr>
581 <tr>
582 <td></td>
583 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100584 <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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000585 </tr>
586 </table>
587</div><div class="memdoc">
588
Jenkinsb9abeae2018-11-22 11:58:08 +0000589<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000590
591</div>
592</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000593<a id="ad4b199221927cbabbf859e4d2efb688d"></a>
594<h2 class="memtitle"><span class="permalink"><a href="#ad4b199221927cbabbf859e4d2efb688d">&#9670;&nbsp;</a></span>ASYMM_MULT_IMPL</h2>
595
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000596<div class="memitem">
597<div class="memproto">
598 <table class="memname">
599 <tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000600 <td class="memname">#define ASYMM_MULT_IMPL</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000601 <td>(</td>
602 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100603 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000604 <td></td>
605 </tr>
606 </table>
607</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000608<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_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>##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>) \</div><div class="line"> { \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> overflow = a == <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a> &amp;&amp; a == INT_MIN; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> a_64 = convert_long##size(a); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> b_64 = convert_long##size(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> ab_64 = a_64 * b_64; \</div><div class="line"> <span class="comment">/* COMPMID-907 */</span> \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> ab_x2_high32 = convert_int##size(((ab_64 + (1 &lt;&lt; 30)) &gt;&gt; 31)); \</div><div class="line"> return select(ab_x2_high32, INT_MAX, overflow); \</div><div class="line"> }</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>
609<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
610<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00091">GEMM.cpp:91</a></div></div>
611<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000612</div><!-- fragment -->
613<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>
614<dl class="params"><dt>Parameters</dt><dd>
615 <table class="params">
616 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
617 </table>
618 </dd>
619</dl>
620<dl class="section return"><dt>Returns</dt><dd>Product of two fixed-point numbers. </dd></dl>
621
Jenkinsb9abeae2018-11-22 11:58:08 +0000622<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000623
624</div>
625</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000626<a id="ae77f34e1316d52c1ee84c35be9efb0d8"></a>
627<h2 class="memtitle"><span class="permalink"><a href="#ae77f34e1316d52c1ee84c35be9efb0d8">&#9670;&nbsp;</a></span>ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</h2>
628
Anthony Barbier06ea0482018-02-22 15:45:35 +0000629<div class="memitem">
630<div class="memproto">
631 <table class="memname">
632 <tr>
633 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</td>
634 <td>(</td>
635 <td class="paramtype">&#160;</td>
636 <td class="paramname">a, </td>
637 </tr>
638 <tr>
639 <td class="paramkey"></td>
640 <td></td>
641 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100642 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000643 </tr>
644 <tr>
645 <td></td>
646 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100647 <td></td><td>&#160;&#160;&#160;asymm_one_over_one_plus_x_for_x_in_0_1##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000648 </tr>
649 </table>
650</div><div class="memdoc">
651
Jenkinsb9abeae2018-11-22 11:58:08 +0000652<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000653
654</div>
655</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000656<a id="a0e53aa5d4cbcec7a0c0085838f32453d"></a>
657<h2 class="memtitle"><span class="permalink"><a href="#a0e53aa5d4cbcec7a0c0085838f32453d">&#9670;&nbsp;</a></span>ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</h2>
658
Anthony Barbier06ea0482018-02-22 15:45:35 +0000659<div class="memitem">
660<div class="memproto">
661 <table class="memname">
662 <tr>
663 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</td>
664 <td>(</td>
665 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100666 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000667 <td></td>
668 </tr>
669 </table>
670</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000671<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_one_over_one_plus_x_for_x_in_0_1##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>) \</div><div class="line"> { \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) Q0_one = INT_MAX; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) Q2_one = 1 &lt;&lt; (31 - 2); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> half_denominator = <a class="code" href="helpers__asymm_8h.xhtml#ad47fa44c1566aa4678fe524478490612">ASYMM_ROUNDING_HALF_SUM</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, Q0_one, size); \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) Q2_48_over_17 = 1515870810; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) Q2_neg_32_over_17 = -1010580540; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> x = Q2_48_over_17 + <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(half_denominator, Q2_neg_32_over_17, size); \</div><div class="line"> for(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) \</div><div class="line"> { \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> half_denominator_times_x = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(half_denominator, x, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> one_minus_half_denominator_times_x = Q2_one - half_denominator_times_x; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> tmp = <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(x, one_minus_half_denominator_times_x, size); \</div><div class="line"> x = x + <a class="code" href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a>(tmp, 2, size); \</div><div class="line"> } \</div><div class="line"> return <a class="code" href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a>(x, 1, size); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
672<div class="ttc" id="helpers__asymm_8h_xhtml_a5483aefd5e07244661178bfd3f434448"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a></div><div class="ttdeci">#define ASYMM_MULT(a, b, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00296">helpers_asymm.h:296</a></div></div>
673<div class="ttc" id="helpers__asymm_8h_xhtml_a4cc3ff3a2eeb5f5e9d6743e08f632928"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a></div><div class="ttdeci">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2(x, exponent, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00306">helpers_asymm.h:306</a></div></div>
674<div class="ttc" id="helpers__asymm_8h_xhtml_ad47fa44c1566aa4678fe524478490612"><div class="ttname"><a href="helpers__asymm_8h.xhtml#ad47fa44c1566aa4678fe524478490612">ASYMM_ROUNDING_HALF_SUM</a></div><div class="ttdeci">#define ASYMM_ROUNDING_HALF_SUM(a, b, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00307">helpers_asymm.h:307</a></div></div>
675<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000676</div><!-- fragment -->
677<p>Calculates \( 1 / (1 + x) \) for x in (0, 1). </p>
678<dl class="params"><dt>Parameters</dt><dd>
679 <table class="params">
680 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
681 </table>
682 </dd>
683</dl>
684<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
685
Jenkinsb9abeae2018-11-22 11:58:08 +0000686<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000687
688</div>
689</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000690<a id="a98585f1bb84dea90aecbf59785c46151"></a>
691<h2 class="memtitle"><span class="permalink"><a href="#a98585f1bb84dea90aecbf59785c46151">&#9670;&nbsp;</a></span>ASYMM_RESCALE</h2>
692
Anthony Barbier06ea0482018-02-22 15:45:35 +0000693<div class="memitem">
694<div class="memproto">
695 <table class="memname">
696 <tr>
697 <td class="memname">#define ASYMM_RESCALE</td>
698 <td>(</td>
699 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100700 <td class="paramname">value, </td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000701 </tr>
702 <tr>
703 <td class="paramkey"></td>
704 <td></td>
705 <td class="paramtype">&#160;</td>
706 <td class="paramname">src_integer_bits, </td>
707 </tr>
708 <tr>
709 <td class="paramkey"></td>
710 <td></td>
711 <td class="paramtype">&#160;</td>
712 <td class="paramname">dst_integer_bits, </td>
713 </tr>
714 <tr>
715 <td class="paramkey"></td>
716 <td></td>
717 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100718 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000719 </tr>
720 <tr>
721 <td></td>
722 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100723 <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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000724 </tr>
725 </table>
726</div><div class="memdoc">
727
Jenkinsb9abeae2018-11-22 11:58:08 +0000728<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000729
730</div>
731</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000732<a id="aace85e2a32bacdaa4e2d2055deabfc57"></a>
733<h2 class="memtitle"><span class="permalink"><a href="#aace85e2a32bacdaa4e2d2055deabfc57">&#9670;&nbsp;</a></span>ASYMM_RESCALE_IMPL</h2>
734
Anthony Barbier06ea0482018-02-22 15:45:35 +0000735<div class="memitem">
736<div class="memproto">
737 <table class="memname">
738 <tr>
739 <td class="memname">#define ASYMM_RESCALE_IMPL</td>
740 <td>(</td>
741 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100742 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000743 <td></td>
744 </tr>
745 </table>
746</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000747<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_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>##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) value, <span class="keywordtype">int</span> src_integer_bits, <span class="keywordtype">int</span> dst_integer_bits) \</div><div class="line"> { \</div><div class="line"> int exponent = src_integer_bits - dst_integer_bits; \</div><div class="line"> return <a class="code" href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a>(value, exponent, size); \</div><div class="line"> }</div><div class="ttc" id="helpers__asymm_8h_xhtml_a4cc3ff3a2eeb5f5e9d6743e08f632928"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a4cc3ff3a2eeb5f5e9d6743e08f632928">ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</a></div><div class="ttdeci">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2(x, exponent, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00306">helpers_asymm.h:306</a></div></div>
Jenkins52ba29e2018-08-29 15:32:11 +0000748<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>
Jenkinsb9abeae2018-11-22 11:58:08 +0000749<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000750</div><!-- fragment -->
751<p>Considering the integer value as fixed-point, change the number of integer bits and update value accordingly. </p>
752<dl class="params"><dt>Parameters</dt><dd>
753 <table class="params">
754 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
755 </table>
756 </dd>
757</dl>
758<dl class="section return"><dt>Returns</dt><dd>Rescaled value. </dd></dl>
759
Jenkinsb9abeae2018-11-22 11:58:08 +0000760<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000761
762</div>
763</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000764<a id="aa43fc359dea64362f3016384f4269845"></a>
765<h2 class="memtitle"><span class="permalink"><a href="#aa43fc359dea64362f3016384f4269845">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2</h2>
766
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000767<div class="memitem">
768<div class="memproto">
769 <table class="memname">
770 <tr>
771 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2</td>
772 <td>(</td>
773 <td class="paramtype">&#160;</td>
774 <td class="paramname">x, </td>
775 </tr>
776 <tr>
777 <td class="paramkey"></td>
778 <td></td>
779 <td class="paramtype">&#160;</td>
780 <td class="paramname">exponent, </td>
781 </tr>
782 <tr>
783 <td class="paramkey"></td>
784 <td></td>
785 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100786 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000787 </tr>
788 <tr>
789 <td></td>
790 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100791 <td></td><td>&#160;&#160;&#160;asymm_rounding_divide_by_POW2_##size(x, exponent)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000792 </tr>
793 </table>
794</div><div class="memdoc">
795
Jenkinsb9abeae2018-11-22 11:58:08 +0000796<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000797
798</div>
799</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000800<a id="abf75e242631b23007e4046682aa57ec5"></a>
801<h2 class="memtitle"><span class="permalink"><a href="#abf75e242631b23007e4046682aa57ec5">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</h2>
802
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000803<div class="memitem">
804<div class="memproto">
805 <table class="memname">
806 <tr>
807 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</td>
808 <td>(</td>
809 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100810 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000811 <td></td>
812 </tr>
813 </table>
814</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000815<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_rounding_divide_by_POW2_##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) x, <span class="keywordtype">int</span> exponent) \</div><div class="line"> { \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> mask = (1 &lt;&lt; exponent) - 1; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) zero = 0; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) one = 1; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> threshold = (mask &gt;&gt; 1) + select(zero, one, x &lt; 0); \</div><div class="line"> return (x &gt;&gt; exponent) + select(zero, one, (x &amp; mask) &gt; <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a6cae310822a46019ba25a00ddb0f7e62"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">arm_compute::test::validation::reference::threshold</a></div><div class="ttdeci">SimpleTensor&lt; T &gt; threshold(const SimpleTensor&lt; T &gt; &amp;src, T threshold, T false_value, T true_value, ThresholdType type, T upper)</div><div class="ttdef"><b>Definition:</b> <a href="reference_2_threshold_8cpp_source.xhtml#l00035">Threshold.cpp:35</a></div></div>
816<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000817</div><!-- fragment -->
818<p>Correctly-rounded-to-nearest division by a power-of-two. </p>
819<dl class="params"><dt>Parameters</dt><dd>
820 <table class="params">
821 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
822 </table>
823 </dd>
824</dl>
825<dl class="section return"><dt>Returns</dt><dd>Correctly-rounded-to-nearest division by a power-of-two. </dd></dl>
826
Jenkinsb9abeae2018-11-22 11:58:08 +0000827<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000828
829</div>
830</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000831<a id="ad47fa44c1566aa4678fe524478490612"></a>
832<h2 class="memtitle"><span class="permalink"><a href="#ad47fa44c1566aa4678fe524478490612">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM</h2>
833
Anthony Barbier06ea0482018-02-22 15:45:35 +0000834<div class="memitem">
835<div class="memproto">
836 <table class="memname">
837 <tr>
838 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM</td>
839 <td>(</td>
840 <td class="paramtype">&#160;</td>
841 <td class="paramname">a, </td>
842 </tr>
843 <tr>
844 <td class="paramkey"></td>
845 <td></td>
846 <td class="paramtype">&#160;</td>
847 <td class="paramname">b, </td>
848 </tr>
849 <tr>
850 <td class="paramkey"></td>
851 <td></td>
852 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100853 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000854 </tr>
855 <tr>
856 <td></td>
857 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100858 <td></td><td>&#160;&#160;&#160;asymm_rounding_half_sum##size(a, b)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000859 </tr>
860 </table>
861</div><div class="memdoc">
862
Jenkinsb9abeae2018-11-22 11:58:08 +0000863<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000864
865</div>
866</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000867<a id="a8d97c6698c0e44424deae3f3130c55ac"></a>
868<h2 class="memtitle"><span class="permalink"><a href="#a8d97c6698c0e44424deae3f3130c55ac">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM_IMPL</h2>
869
Anthony Barbier06ea0482018-02-22 15:45:35 +0000870<div class="memitem">
871<div class="memproto">
872 <table class="memname">
873 <tr>
874 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM_IMPL</td>
875 <td>(</td>
876 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100877 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000878 <td></td>
879 </tr>
880 </table>
881</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000882<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_rounding_half_sum##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">a</a>, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>) \</div><div class="line"> { \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> a64 = convert_long##size(a); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> b64 = convert_long##size(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">b</a>); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> sum = a64 + b64; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">long</span>, size) one = 1; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">long</span>, size) minus_one = -1; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">long</span>, size) \</div><div class="line"> sign = select(minus_one, one, <a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> &gt;= 0); \</div><div class="line"> return convert_int##size((<a class="code" href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a> + sign) / 2); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aac40b7097f2bda9274ae07fa33d15a79"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aac40b7097f2bda9274ae07fa33d15a79">arm_compute::test::validation::a</a></div><div class="ttdeci">gemm configure &amp; a</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00102">GEMM.cpp:102</a></div></div>
883<div class="ttc" id="reduction__operation_8cl_xhtml_ab0df00f5333da51860deb93deb44a782"><div class="ttname"><a href="reduction__operation_8cl.xhtml#ab0df00f5333da51860deb93deb44a782">sum</a></div><div class="ttdeci">DATA_TYPE sum(__global const DATA_TYPE *input)</div><div class="ttdoc">Calculate sum of a vector. </div><div class="ttdef"><b>Definition:</b> <a href="reduction__operation_8cl_source.xhtml#l00052">reduction_operation.cl:52</a></div></div>
884<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a7b8004eef325a40dd43eb80755610fff"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a7b8004eef325a40dd43eb80755610fff">arm_compute::test::validation::b</a></div><div class="ttdeci">CLTensor b</div><div class="ttdef"><b>Definition:</b> <a href="validation_2_c_l_2_g_e_m_m_8cpp_source.xhtml#l00091">GEMM.cpp:91</a></div></div>
885<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000886</div><!-- fragment -->
887<p>Calculates (a+b)/2, rounded to the nearest integer. </p>
888<p>Equivalent to VRHADD in the ARM NEON instruction set.</p>
889<dl class="params"><dt>Parameters</dt><dd>
890 <table class="params">
891 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
892 </table>
893 </dd>
894</dl>
895<dl class="section return"><dt>Returns</dt><dd>(a+b)/2, rounded to the nearest integer. </dd></dl>
896
Jenkinsb9abeae2018-11-22 11:58:08 +0000897<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000898
899</div>
900</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000901<a id="a4cc3ff3a2eeb5f5e9d6743e08f632928"></a>
902<h2 class="memtitle"><span class="permalink"><a href="#a4cc3ff3a2eeb5f5e9d6743e08f632928">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</h2>
903
Anthony Barbier06ea0482018-02-22 15:45:35 +0000904<div class="memitem">
905<div class="memproto">
906 <table class="memname">
907 <tr>
908 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</td>
909 <td>(</td>
910 <td class="paramtype">&#160;</td>
911 <td class="paramname">x, </td>
912 </tr>
913 <tr>
914 <td class="paramkey"></td>
915 <td></td>
916 <td class="paramtype">&#160;</td>
917 <td class="paramname">exponent, </td>
918 </tr>
919 <tr>
920 <td class="paramkey"></td>
921 <td></td>
922 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100923 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000924 </tr>
925 <tr>
926 <td></td>
927 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100928 <td></td><td>&#160;&#160;&#160;asymm_saturating_rounding_mult_by_pow2##size(x, exponent)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000929 </tr>
930 </table>
931</div><div class="memdoc">
932
Jenkinsb9abeae2018-11-22 11:58:08 +0000933<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000934
935</div>
936</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000937<a id="a737312bc4a68c79a77cfab4849793bc0"></a>
938<h2 class="memtitle"><span class="permalink"><a href="#a737312bc4a68c79a77cfab4849793bc0">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</h2>
939
Anthony Barbier06ea0482018-02-22 15:45:35 +0000940<div class="memitem">
941<div class="memproto">
942 <table class="memname">
943 <tr>
944 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</td>
945 <td>(</td>
946 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100947 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000948 <td></td>
949 </tr>
950 </table>
951</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000952<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_saturating_rounding_mult_by_pow2##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) x, <span class="keywordtype">int</span> exponent) \</div><div class="line"> { \</div><div class="line"> if(exponent &lt; 0) \</div><div class="line"> { \</div><div class="line"> return <a class="code" href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a>(x, -exponent, size); \</div><div class="line"> } \</div><div class="line"> \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) min = INT_MIN; \</div><div class="line"> const <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) max = INT_MAX; \</div><div class="line"> int <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a> = ((1 &lt;&lt; (31 - exponent)) - 1); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> positive_mask = <a class="code" href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a>(x &gt; threshold, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> negative_mask = <a class="code" href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a>(x &lt; -threshold, size); \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> result = x &lt;&lt; exponent; \</div><div class="line"> result = <a class="code" href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a>(positive_mask, max, result, size); \</div><div class="line"> result = <a class="code" href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a>(negative_mask, min, result, size); \</div><div class="line"> return result; \</div><div class="line"> }</div><div class="ttc" id="helpers__asymm_8h_xhtml_aa43fc359dea64362f3016384f4269845"><div class="ttname"><a href="helpers__asymm_8h.xhtml#aa43fc359dea64362f3016384f4269845">ASYMM_ROUNDING_DIVIDE_BY_POW2</a></div><div class="ttdeci">#define ASYMM_ROUNDING_DIVIDE_BY_POW2(x, exponent, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00295">helpers_asymm.h:295</a></div></div>
953<div class="ttc" id="helpers__asymm_8h_xhtml_af1d5450c9c4c13a6b7aa52af197b54b2"><div class="ttname"><a href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a></div><div class="ttdeci">#define ASYMM_MASK_IF_NON_ZERO(a, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00302">helpers_asymm.h:302</a></div></div>
954<div class="ttc" id="helpers__asymm_8h_xhtml_a9bc08a8c1833c5e6055ad6665e3ccf12"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a></div><div class="ttdeci">#define ASYMM_SELECT_USING_MASK(if_mask, then_val, else_val, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00300">helpers_asymm.h:300</a></div></div>
955<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_1_1reference_xhtml_a6cae310822a46019ba25a00ddb0f7e62"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">arm_compute::test::validation::reference::threshold</a></div><div class="ttdeci">SimpleTensor&lt; T &gt; threshold(const SimpleTensor&lt; T &gt; &amp;src, T threshold, T false_value, T true_value, ThresholdType type, T upper)</div><div class="ttdef"><b>Definition:</b> <a href="reference_2_threshold_8cpp_source.xhtml#l00035">Threshold.cpp:35</a></div></div>
956<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000957</div><!-- fragment -->
958<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>
959<dl class="params"><dt>Parameters</dt><dd>
960 <table class="params">
961 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
962 </table>
963 </dd>
964</dl>
965<dl class="section return"><dt>Returns</dt><dd>Arithmetic left or right shift. </dd></dl>
966
Jenkinsb9abeae2018-11-22 11:58:08 +0000967<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000968
969</div>
970</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000971<a id="a9bc08a8c1833c5e6055ad6665e3ccf12"></a>
972<h2 class="memtitle"><span class="permalink"><a href="#a9bc08a8c1833c5e6055ad6665e3ccf12">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK</h2>
973
Anthony Barbier06ea0482018-02-22 15:45:35 +0000974<div class="memitem">
975<div class="memproto">
976 <table class="memname">
977 <tr>
978 <td class="memname">#define ASYMM_SELECT_USING_MASK</td>
979 <td>(</td>
980 <td class="paramtype">&#160;</td>
981 <td class="paramname">if_mask, </td>
982 </tr>
983 <tr>
984 <td class="paramkey"></td>
985 <td></td>
986 <td class="paramtype">&#160;</td>
987 <td class="paramname">then_val, </td>
988 </tr>
989 <tr>
990 <td class="paramkey"></td>
991 <td></td>
992 <td class="paramtype">&#160;</td>
993 <td class="paramname">else_val, </td>
994 </tr>
995 <tr>
996 <td class="paramkey"></td>
997 <td></td>
998 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100999 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001000 </tr>
1001 <tr>
1002 <td></td>
1003 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001004 <td></td><td>&#160;&#160;&#160;asymm_select_using_mask##size(if_mask, then_val, else_val)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001005 </tr>
1006 </table>
1007</div><div class="memdoc">
1008
Jenkinsb9abeae2018-11-22 11:58:08 +00001009<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001010
1011</div>
1012</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001013<a id="ab0b4069b25ac886d5cb6eb3b76473f88"></a>
1014<h2 class="memtitle"><span class="permalink"><a href="#ab0b4069b25ac886d5cb6eb3b76473f88">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK_IMPL</h2>
1015
Anthony Barbier06ea0482018-02-22 15:45:35 +00001016<div class="memitem">
1017<div class="memproto">
1018 <table class="memname">
1019 <tr>
1020 <td class="memname">#define ASYMM_SELECT_USING_MASK_IMPL</td>
1021 <td>(</td>
1022 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001023 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001024 <td></td>
1025 </tr>
1026 </table>
1027</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +00001028<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) asymm_select_using_mask##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) if_mask, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) then_val, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) else_val) \</div><div class="line"> { \</div><div class="line"> return (if_mask &amp; then_val) ^ (~if_mask &amp; else_val); \</div><div class="line"> }</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001029</div><!-- fragment -->
1030<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>
1031<p>Equivalent to the VBSL instruction in ARM NEON.</p>
1032<dl class="params"><dt>Parameters</dt><dd>
1033 <table class="params">
1034 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1035 </table>
1036 </dd>
1037</dl>
1038<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>
1039
Jenkinsb9abeae2018-11-22 11:58:08 +00001040<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001041
1042</div>
1043</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001044<a id="ace9ecff421cf885ad2c2d72d87c492cb"></a>
1045<h2 class="memtitle"><span class="permalink"><a href="#ace9ecff421cf885ad2c2d72d87c492cb">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER</h2>
1046
Anthony Barbier06ea0482018-02-22 15:45:35 +00001047<div class="memitem">
1048<div class="memproto">
1049 <table class="memname">
1050 <tr>
1051 <td class="memname">#define EXP_BARREL_SHIFTER</td>
1052 <td>(</td>
1053 <td class="paramtype">&#160;</td>
1054 <td class="paramname">result, </td>
1055 </tr>
1056 <tr>
1057 <td class="paramkey"></td>
1058 <td></td>
1059 <td class="paramtype">&#160;</td>
1060 <td class="paramname">exponent, </td>
1061 </tr>
1062 <tr>
1063 <td class="paramkey"></td>
1064 <td></td>
1065 <td class="paramtype">&#160;</td>
1066 <td class="paramname">fp_multiplier, </td>
1067 </tr>
1068 <tr>
1069 <td class="paramkey"></td>
1070 <td></td>
1071 <td class="paramtype">&#160;</td>
1072 <td class="paramname">k_integer_bits, </td>
1073 </tr>
1074 <tr>
1075 <td class="paramkey"></td>
1076 <td></td>
1077 <td class="paramtype">&#160;</td>
1078 <td class="paramname">k_fractional_bits, </td>
1079 </tr>
1080 <tr>
1081 <td class="paramkey"></td>
1082 <td></td>
1083 <td class="paramtype">&#160;</td>
1084 <td class="paramname">remainder, </td>
1085 </tr>
1086 <tr>
1087 <td class="paramkey"></td>
1088 <td></td>
1089 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001090 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001091 </tr>
1092 <tr>
1093 <td></td>
1094 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001095 <td></td><td>&#160;&#160;&#160;exp_barrel_shifter##size(result, exponent, fp_multiplier, k_integer_bits, k_fractional_bits, remainder)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001096 </tr>
1097 </table>
1098</div><div class="memdoc">
1099
Jenkinsb9abeae2018-11-22 11:58:08 +00001100<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001101
1102</div>
1103</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001104<a id="aa12ca21cb9a54d2e4c26d57303fe44a7"></a>
1105<h2 class="memtitle"><span class="permalink"><a href="#aa12ca21cb9a54d2e4c26d57303fe44a7">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER_IMPL</h2>
1106
Anthony Barbier06ea0482018-02-22 15:45:35 +00001107<div class="memitem">
1108<div class="memproto">
1109 <table class="memname">
1110 <tr>
1111 <td class="memname">#define EXP_BARREL_SHIFTER_IMPL</td>
1112 <td>(</td>
1113 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001114 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001115 <td></td>
1116 </tr>
1117 </table>
1118</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +00001119<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) exp_barrel_shifter##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) result, <span class="keywordtype">int</span> exponent, <span class="keywordtype">int</span> fp_multiplier, <span class="keywordtype">int</span> k_integer_bits, <span class="keywordtype">int</span> k_fractional_bits, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">int</span>, size) remainder) \</div><div class="line"> { \</div><div class="line"> if(k_integer_bits &gt; exponent) \</div><div class="line"> { \</div><div class="line"> const <span class="keywordtype">int</span> k_shift_amount = k_integer_bits &gt; exponent ? k_fractional_bits + exponent : 0; \</div><div class="line"> return <a class="code" href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a>( \</div><div class="line"> <a class="code" href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a>(remainder &amp; (1 &lt;&lt; k_shift_amount), size), \</div><div class="line"> <a class="code" href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a>(result, fp_multiplier, size), result, size); \</div><div class="line"> } \</div><div class="line"> \</div><div class="line"> return result; \</div><div class="line"> }</div><div class="ttc" id="helpers__asymm_8h_xhtml_a5483aefd5e07244661178bfd3f434448"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a5483aefd5e07244661178bfd3f434448">ASYMM_MULT</a></div><div class="ttdeci">#define ASYMM_MULT(a, b, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00296">helpers_asymm.h:296</a></div></div>
1120<div class="ttc" id="helpers__asymm_8h_xhtml_af1d5450c9c4c13a6b7aa52af197b54b2"><div class="ttname"><a href="helpers__asymm_8h.xhtml#af1d5450c9c4c13a6b7aa52af197b54b2">ASYMM_MASK_IF_NON_ZERO</a></div><div class="ttdeci">#define ASYMM_MASK_IF_NON_ZERO(a, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00302">helpers_asymm.h:302</a></div></div>
1121<div class="ttc" id="helpers__asymm_8h_xhtml_a9bc08a8c1833c5e6055ad6665e3ccf12"><div class="ttname"><a href="helpers__asymm_8h.xhtml#a9bc08a8c1833c5e6055ad6665e3ccf12">ASYMM_SELECT_USING_MASK</a></div><div class="ttdeci">#define ASYMM_SELECT_USING_MASK(if_mask, then_val, else_val, size)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00300">helpers_asymm.h:300</a></div></div>
1122<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a36f754c05b6fddf6df0d8d0a74f8159f"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_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="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00054">helpers.h:54</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001123</div><!-- fragment -->
Jenkinsb9abeae2018-11-22 11:58:08 +00001124<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001125
1126</div>
1127</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001128<h2 class="groupheader">Function Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00001129<a id="a1d51b02a83af2a152fa52755f572f5a6"></a>
1130<h2 class="memtitle"><span class="permalink"><a href="#a1d51b02a83af2a152fa52755f572f5a6">&#9670;&nbsp;</a></span>asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16()</h2>
1131
Anthony Barbier06ea0482018-02-22 15:45:35 +00001132<div class="memitem">
1133<div class="memproto">
1134<table class="mlabels">
1135 <tr>
1136 <td class="mlabels-left">
1137 <table class="memname">
1138 <tr>
1139 <td class="memname">int16 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16 </td>
1140 <td>(</td>
1141 <td class="paramtype">int16&#160;</td>
1142 <td class="paramname"><em>a</em></td><td>)</td>
1143 <td></td>
1144 </tr>
1145 </table>
1146 </td>
1147 <td class="mlabels-right">
1148<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1149 </tr>
1150</table>
1151</div><div class="memdoc">
1152
Jenkinsb9abeae2018-11-22 11:58:08 +00001153<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001154
1155</div>
1156</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001157<a id="a8eb88d417247a1b8b8929e5c8faeb48d"></a>
1158<h2 class="memtitle"><span class="permalink"><a href="#a8eb88d417247a1b8b8929e5c8faeb48d">&#9670;&nbsp;</a></span>asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2()</h2>
1159
Anthony Barbier06ea0482018-02-22 15:45:35 +00001160<div class="memitem">
1161<div class="memproto">
1162<table class="mlabels">
1163 <tr>
1164 <td class="mlabels-left">
1165 <table class="memname">
1166 <tr>
1167 <td class="memname">int2 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2 </td>
1168 <td>(</td>
1169 <td class="paramtype">int2&#160;</td>
1170 <td class="paramname"><em>a</em></td><td>)</td>
1171 <td></td>
1172 </tr>
1173 </table>
1174 </td>
1175 <td class="mlabels-right">
1176<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1177 </tr>
1178</table>
1179</div><div class="memdoc">
1180
Jenkinsb9abeae2018-11-22 11:58:08 +00001181<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001182
1183</div>
1184</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001185<a id="a43aa0011bd9b23ce3f691a9ae205fe07"></a>
1186<h2 class="memtitle"><span class="permalink"><a href="#a43aa0011bd9b23ce3f691a9ae205fe07">&#9670;&nbsp;</a></span>asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4()</h2>
1187
Anthony Barbier06ea0482018-02-22 15:45:35 +00001188<div class="memitem">
1189<div class="memproto">
1190<table class="mlabels">
1191 <tr>
1192 <td class="mlabels-left">
1193 <table class="memname">
1194 <tr>
1195 <td class="memname">int4 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4 </td>
1196 <td>(</td>
1197 <td class="paramtype">int4&#160;</td>
1198 <td class="paramname"><em>a</em></td><td>)</td>
1199 <td></td>
1200 </tr>
1201 </table>
1202 </td>
1203 <td class="mlabels-right">
1204<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1205 </tr>
1206</table>
1207</div><div class="memdoc">
1208
Jenkinsb9abeae2018-11-22 11:58:08 +00001209<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001210
1211</div>
1212</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001213<a id="accb6ee0e0c578704ae23e6ab0a57cdd0"></a>
1214<h2 class="memtitle"><span class="permalink"><a href="#accb6ee0e0c578704ae23e6ab0a57cdd0">&#9670;&nbsp;</a></span>asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8()</h2>
1215
Anthony Barbier06ea0482018-02-22 15:45:35 +00001216<div class="memitem">
1217<div class="memproto">
1218<table class="mlabels">
1219 <tr>
1220 <td class="mlabels-left">
1221 <table class="memname">
1222 <tr>
1223 <td class="memname">int8 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8 </td>
1224 <td>(</td>
1225 <td class="paramtype">int8&#160;</td>
1226 <td class="paramname"><em>a</em></td><td>)</td>
1227 <td></td>
1228 </tr>
1229 </table>
1230 </td>
1231 <td class="mlabels-right">
1232<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1233 </tr>
1234</table>
1235</div><div class="memdoc">
1236
Jenkinsb9abeae2018-11-22 11:58:08 +00001237<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001238
1239</div>
1240</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001241<a id="ae13cfab30e1d4c5f797f9d3d7c6acacf"></a>
1242<h2 class="memtitle"><span class="permalink"><a href="#ae13cfab30e1d4c5f797f9d3d7c6acacf">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values16()</h2>
1243
Anthony Barbier06ea0482018-02-22 15:45:35 +00001244<div class="memitem">
1245<div class="memproto">
1246<table class="mlabels">
1247 <tr>
1248 <td class="mlabels-left">
1249 <table class="memname">
1250 <tr>
1251 <td class="memname">int16 asymm_exp_on_negative_values16 </td>
1252 <td>(</td>
1253 <td class="paramtype">int16&#160;</td>
1254 <td class="paramname"><em>a</em>, </td>
1255 </tr>
1256 <tr>
1257 <td class="paramkey"></td>
1258 <td></td>
1259 <td class="paramtype">int&#160;</td>
1260 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1261 </tr>
1262 <tr>
1263 <td></td>
1264 <td>)</td>
1265 <td></td><td></td>
1266 </tr>
1267 </table>
1268 </td>
1269 <td class="mlabels-right">
1270<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1271 </tr>
1272</table>
1273</div><div class="memdoc">
1274
Jenkinsb9abeae2018-11-22 11:58:08 +00001275<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001276
1277</div>
1278</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001279<a id="a35b98dc80eefc6ce799720861a668691"></a>
1280<h2 class="memtitle"><span class="permalink"><a href="#a35b98dc80eefc6ce799720861a668691">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values2()</h2>
1281
Anthony Barbier06ea0482018-02-22 15:45:35 +00001282<div class="memitem">
1283<div class="memproto">
1284<table class="mlabels">
1285 <tr>
1286 <td class="mlabels-left">
1287 <table class="memname">
1288 <tr>
1289 <td class="memname">int2 asymm_exp_on_negative_values2 </td>
1290 <td>(</td>
1291 <td class="paramtype">int2&#160;</td>
1292 <td class="paramname"><em>a</em>, </td>
1293 </tr>
1294 <tr>
1295 <td class="paramkey"></td>
1296 <td></td>
1297 <td class="paramtype">int&#160;</td>
1298 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1299 </tr>
1300 <tr>
1301 <td></td>
1302 <td>)</td>
1303 <td></td><td></td>
1304 </tr>
1305 </table>
1306 </td>
1307 <td class="mlabels-right">
1308<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1309 </tr>
1310</table>
1311</div><div class="memdoc">
1312
Jenkinsb9abeae2018-11-22 11:58:08 +00001313<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001314
1315</div>
1316</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001317<a id="aa1dda459c2b10a9620b2c14a928ed4ba"></a>
1318<h2 class="memtitle"><span class="permalink"><a href="#aa1dda459c2b10a9620b2c14a928ed4ba">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values4()</h2>
1319
Anthony Barbier06ea0482018-02-22 15:45:35 +00001320<div class="memitem">
1321<div class="memproto">
1322<table class="mlabels">
1323 <tr>
1324 <td class="mlabels-left">
1325 <table class="memname">
1326 <tr>
1327 <td class="memname">int4 asymm_exp_on_negative_values4 </td>
1328 <td>(</td>
1329 <td class="paramtype">int4&#160;</td>
1330 <td class="paramname"><em>a</em>, </td>
1331 </tr>
1332 <tr>
1333 <td class="paramkey"></td>
1334 <td></td>
1335 <td class="paramtype">int&#160;</td>
1336 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1337 </tr>
1338 <tr>
1339 <td></td>
1340 <td>)</td>
1341 <td></td><td></td>
1342 </tr>
1343 </table>
1344 </td>
1345 <td class="mlabels-right">
1346<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1347 </tr>
1348</table>
1349</div><div class="memdoc">
1350
Jenkinsb9abeae2018-11-22 11:58:08 +00001351<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001352
1353</div>
1354</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001355<a id="a429f20ad96413c1f7d4ee968afed6f0d"></a>
1356<h2 class="memtitle"><span class="permalink"><a href="#a429f20ad96413c1f7d4ee968afed6f0d">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values8()</h2>
1357
Anthony Barbier06ea0482018-02-22 15:45:35 +00001358<div class="memitem">
1359<div class="memproto">
1360<table class="mlabels">
1361 <tr>
1362 <td class="mlabels-left">
1363 <table class="memname">
1364 <tr>
1365 <td class="memname">int8 asymm_exp_on_negative_values8 </td>
1366 <td>(</td>
1367 <td class="paramtype">int8&#160;</td>
1368 <td class="paramname"><em>a</em>, </td>
1369 </tr>
1370 <tr>
1371 <td class="paramkey"></td>
1372 <td></td>
1373 <td class="paramtype">int&#160;</td>
1374 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1375 </tr>
1376 <tr>
1377 <td></td>
1378 <td>)</td>
1379 <td></td><td></td>
1380 </tr>
1381 </table>
1382 </td>
1383 <td class="mlabels-right">
1384<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1385 </tr>
1386</table>
1387</div><div class="memdoc">
1388
Jenkinsb9abeae2018-11-22 11:58:08 +00001389<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001390
1391</div>
1392</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001393<a id="a1e1fef1353d2458beb7fab06cc8f460e"></a>
1394<h2 class="memtitle"><span class="permalink"><a href="#a1e1fef1353d2458beb7fab06cc8f460e">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero16()</h2>
1395
Anthony Barbier06ea0482018-02-22 15:45:35 +00001396<div class="memitem">
1397<div class="memproto">
1398<table class="mlabels">
1399 <tr>
1400 <td class="mlabels-left">
1401 <table class="memname">
1402 <tr>
1403 <td class="memname">int16 asymm_mask_if_non_zero16 </td>
1404 <td>(</td>
1405 <td class="paramtype">int16&#160;</td>
1406 <td class="paramname"><em>a</em></td><td>)</td>
1407 <td></td>
1408 </tr>
1409 </table>
1410 </td>
1411 <td class="mlabels-right">
1412<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1413 </tr>
1414</table>
1415</div><div class="memdoc">
1416
Jenkinsb9abeae2018-11-22 11:58:08 +00001417<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001418
1419</div>
1420</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001421<a id="a885a16f240b119acc9f0721c07acdce9"></a>
1422<h2 class="memtitle"><span class="permalink"><a href="#a885a16f240b119acc9f0721c07acdce9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero2()</h2>
1423
Anthony Barbier06ea0482018-02-22 15:45:35 +00001424<div class="memitem">
1425<div class="memproto">
1426<table class="mlabels">
1427 <tr>
1428 <td class="mlabels-left">
1429 <table class="memname">
1430 <tr>
1431 <td class="memname">int2 asymm_mask_if_non_zero2 </td>
1432 <td>(</td>
1433 <td class="paramtype">int2&#160;</td>
1434 <td class="paramname"><em>a</em></td><td>)</td>
1435 <td></td>
1436 </tr>
1437 </table>
1438 </td>
1439 <td class="mlabels-right">
1440<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1441 </tr>
1442</table>
1443</div><div class="memdoc">
1444
Jenkinsb9abeae2018-11-22 11:58:08 +00001445<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001446
1447</div>
1448</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001449<a id="a2f180955030087d7538d5dc89f29eba9"></a>
1450<h2 class="memtitle"><span class="permalink"><a href="#a2f180955030087d7538d5dc89f29eba9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero4()</h2>
1451
Anthony Barbier06ea0482018-02-22 15:45:35 +00001452<div class="memitem">
1453<div class="memproto">
1454<table class="mlabels">
1455 <tr>
1456 <td class="mlabels-left">
1457 <table class="memname">
1458 <tr>
1459 <td class="memname">int4 asymm_mask_if_non_zero4 </td>
1460 <td>(</td>
1461 <td class="paramtype">int4&#160;</td>
1462 <td class="paramname"><em>a</em></td><td>)</td>
1463 <td></td>
1464 </tr>
1465 </table>
1466 </td>
1467 <td class="mlabels-right">
1468<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1469 </tr>
1470</table>
1471</div><div class="memdoc">
1472
Jenkinsb9abeae2018-11-22 11:58:08 +00001473<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001474
1475</div>
1476</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001477<a id="a8de81d453a39d0f589b0d3e007c7fde1"></a>
1478<h2 class="memtitle"><span class="permalink"><a href="#a8de81d453a39d0f589b0d3e007c7fde1">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero8()</h2>
1479
Anthony Barbier06ea0482018-02-22 15:45:35 +00001480<div class="memitem">
1481<div class="memproto">
1482<table class="mlabels">
1483 <tr>
1484 <td class="mlabels-left">
1485 <table class="memname">
1486 <tr>
1487 <td class="memname">int8 asymm_mask_if_non_zero8 </td>
1488 <td>(</td>
1489 <td class="paramtype">int8&#160;</td>
1490 <td class="paramname"><em>a</em></td><td>)</td>
1491 <td></td>
1492 </tr>
1493 </table>
1494 </td>
1495 <td class="mlabels-right">
1496<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1497 </tr>
1498</table>
1499</div><div class="memdoc">
1500
Jenkinsb9abeae2018-11-22 11:58:08 +00001501<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001502
1503</div>
1504</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001505<a id="a509916b7ee582d87faf1312fde111c3b"></a>
1506<h2 class="memtitle"><span class="permalink"><a href="#a509916b7ee582d87faf1312fde111c3b">&#9670;&nbsp;</a></span>asymm_mask_if_zero16()</h2>
1507
Anthony Barbier06ea0482018-02-22 15:45:35 +00001508<div class="memitem">
1509<div class="memproto">
1510<table class="mlabels">
1511 <tr>
1512 <td class="mlabels-left">
1513 <table class="memname">
1514 <tr>
1515 <td class="memname">int16 asymm_mask_if_zero16 </td>
1516 <td>(</td>
1517 <td class="paramtype">int16&#160;</td>
1518 <td class="paramname"><em>a</em></td><td>)</td>
1519 <td></td>
1520 </tr>
1521 </table>
1522 </td>
1523 <td class="mlabels-right">
1524<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1525 </tr>
1526</table>
1527</div><div class="memdoc">
1528
Jenkinsb9abeae2018-11-22 11:58:08 +00001529<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001530
1531</div>
1532</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001533<a id="a6ed499c821cf4f6b3bc4049d49e35139"></a>
1534<h2 class="memtitle"><span class="permalink"><a href="#a6ed499c821cf4f6b3bc4049d49e35139">&#9670;&nbsp;</a></span>asymm_mask_if_zero2()</h2>
1535
Anthony Barbier06ea0482018-02-22 15:45:35 +00001536<div class="memitem">
1537<div class="memproto">
1538<table class="mlabels">
1539 <tr>
1540 <td class="mlabels-left">
1541 <table class="memname">
1542 <tr>
1543 <td class="memname">int2 asymm_mask_if_zero2 </td>
1544 <td>(</td>
1545 <td class="paramtype">int2&#160;</td>
1546 <td class="paramname"><em>a</em></td><td>)</td>
1547 <td></td>
1548 </tr>
1549 </table>
1550 </td>
1551 <td class="mlabels-right">
1552<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1553 </tr>
1554</table>
1555</div><div class="memdoc">
1556
Jenkinsb9abeae2018-11-22 11:58:08 +00001557<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001558
1559</div>
1560</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001561<a id="aed95c68d9545d401d2323cd8ad287fe1"></a>
1562<h2 class="memtitle"><span class="permalink"><a href="#aed95c68d9545d401d2323cd8ad287fe1">&#9670;&nbsp;</a></span>asymm_mask_if_zero4()</h2>
1563
Anthony Barbier06ea0482018-02-22 15:45:35 +00001564<div class="memitem">
1565<div class="memproto">
1566<table class="mlabels">
1567 <tr>
1568 <td class="mlabels-left">
1569 <table class="memname">
1570 <tr>
1571 <td class="memname">int4 asymm_mask_if_zero4 </td>
1572 <td>(</td>
1573 <td class="paramtype">int4&#160;</td>
1574 <td class="paramname"><em>a</em></td><td>)</td>
1575 <td></td>
1576 </tr>
1577 </table>
1578 </td>
1579 <td class="mlabels-right">
1580<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1581 </tr>
1582</table>
1583</div><div class="memdoc">
1584
Jenkinsb9abeae2018-11-22 11:58:08 +00001585<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001586
1587</div>
1588</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001589<a id="abefb0a278a588f03dc561db900df0958"></a>
1590<h2 class="memtitle"><span class="permalink"><a href="#abefb0a278a588f03dc561db900df0958">&#9670;&nbsp;</a></span>asymm_mask_if_zero8()</h2>
1591
Anthony Barbier06ea0482018-02-22 15:45:35 +00001592<div class="memitem">
1593<div class="memproto">
1594<table class="mlabels">
1595 <tr>
1596 <td class="mlabels-left">
1597 <table class="memname">
1598 <tr>
1599 <td class="memname">int8 asymm_mask_if_zero8 </td>
1600 <td>(</td>
1601 <td class="paramtype">int8&#160;</td>
1602 <td class="paramname"><em>a</em></td><td>)</td>
1603 <td></td>
1604 </tr>
1605 </table>
1606 </td>
1607 <td class="mlabels-right">
1608<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1609 </tr>
1610</table>
1611</div><div class="memdoc">
1612
Jenkinsb9abeae2018-11-22 11:58:08 +00001613<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001614
1615</div>
1616</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001617<a id="aef32e3a9c804f145deb6b88f0a444919"></a>
1618<h2 class="memtitle"><span class="permalink"><a href="#aef32e3a9c804f145deb6b88f0a444919">&#9670;&nbsp;</a></span>asymm_mult16()</h2>
1619
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001620<div class="memitem">
1621<div class="memproto">
1622<table class="mlabels">
1623 <tr>
1624 <td class="mlabels-left">
1625 <table class="memname">
1626 <tr>
1627 <td class="memname">int16 asymm_mult16 </td>
1628 <td>(</td>
1629 <td class="paramtype">int16&#160;</td>
1630 <td class="paramname"><em>a</em>, </td>
1631 </tr>
1632 <tr>
1633 <td class="paramkey"></td>
1634 <td></td>
1635 <td class="paramtype">int16&#160;</td>
1636 <td class="paramname"><em>b</em>&#160;</td>
1637 </tr>
1638 <tr>
1639 <td></td>
1640 <td>)</td>
1641 <td></td><td></td>
1642 </tr>
1643 </table>
1644 </td>
1645 <td class="mlabels-right">
1646<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1647 </tr>
1648</table>
1649</div><div class="memdoc">
1650
Jenkinsb9abeae2018-11-22 11:58:08 +00001651<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001652
1653</div>
1654</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001655<a id="a5038b78913b76d782cc0aa0d841bd7ed"></a>
1656<h2 class="memtitle"><span class="permalink"><a href="#a5038b78913b76d782cc0aa0d841bd7ed">&#9670;&nbsp;</a></span>asymm_mult2()</h2>
1657
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001658<div class="memitem">
1659<div class="memproto">
1660<table class="mlabels">
1661 <tr>
1662 <td class="mlabels-left">
1663 <table class="memname">
1664 <tr>
1665 <td class="memname">int2 asymm_mult2 </td>
1666 <td>(</td>
1667 <td class="paramtype">int2&#160;</td>
1668 <td class="paramname"><em>a</em>, </td>
1669 </tr>
1670 <tr>
1671 <td class="paramkey"></td>
1672 <td></td>
1673 <td class="paramtype">int2&#160;</td>
1674 <td class="paramname"><em>b</em>&#160;</td>
1675 </tr>
1676 <tr>
1677 <td></td>
1678 <td>)</td>
1679 <td></td><td></td>
1680 </tr>
1681 </table>
1682 </td>
1683 <td class="mlabels-right">
1684<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1685 </tr>
1686</table>
1687</div><div class="memdoc">
1688
Jenkinsb9abeae2018-11-22 11:58:08 +00001689<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001690
1691</div>
1692</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001693<a id="a6dca28649388d59ec0281af70d4507b2"></a>
1694<h2 class="memtitle"><span class="permalink"><a href="#a6dca28649388d59ec0281af70d4507b2">&#9670;&nbsp;</a></span>asymm_mult4()</h2>
1695
Anthony Barbier06ea0482018-02-22 15:45:35 +00001696<div class="memitem">
1697<div class="memproto">
1698<table class="mlabels">
1699 <tr>
1700 <td class="mlabels-left">
1701 <table class="memname">
1702 <tr>
1703 <td class="memname">int4 asymm_mult4 </td>
1704 <td>(</td>
1705 <td class="paramtype">int4&#160;</td>
1706 <td class="paramname"><em>a</em>, </td>
1707 </tr>
1708 <tr>
1709 <td class="paramkey"></td>
1710 <td></td>
1711 <td class="paramtype">int4&#160;</td>
1712 <td class="paramname"><em>b</em>&#160;</td>
1713 </tr>
1714 <tr>
1715 <td></td>
1716 <td>)</td>
1717 <td></td><td></td>
1718 </tr>
1719 </table>
1720 </td>
1721 <td class="mlabels-right">
1722<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1723 </tr>
1724</table>
1725</div><div class="memdoc">
1726
Jenkinsb9abeae2018-11-22 11:58:08 +00001727<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001728
1729</div>
1730</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001731<a id="a165b0bbab841712ea2c9a17a09bfa166"></a>
1732<h2 class="memtitle"><span class="permalink"><a href="#a165b0bbab841712ea2c9a17a09bfa166">&#9670;&nbsp;</a></span>asymm_mult8()</h2>
1733
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001734<div class="memitem">
1735<div class="memproto">
1736<table class="mlabels">
1737 <tr>
1738 <td class="mlabels-left">
1739 <table class="memname">
1740 <tr>
1741 <td class="memname">int8 asymm_mult8 </td>
1742 <td>(</td>
1743 <td class="paramtype">int8&#160;</td>
1744 <td class="paramname"><em>a</em>, </td>
1745 </tr>
1746 <tr>
1747 <td class="paramkey"></td>
1748 <td></td>
1749 <td class="paramtype">int8&#160;</td>
1750 <td class="paramname"><em>b</em>&#160;</td>
1751 </tr>
1752 <tr>
1753 <td></td>
1754 <td>)</td>
1755 <td></td><td></td>
1756 </tr>
1757 </table>
1758 </td>
1759 <td class="mlabels-right">
1760<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1761 </tr>
1762</table>
1763</div><div class="memdoc">
1764
Jenkinsb9abeae2018-11-22 11:58:08 +00001765<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001766
1767</div>
1768</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001769<a id="ac3316120c01b6c993ac8f2d3f2b4ff03"></a>
1770<h2 class="memtitle"><span class="permalink"><a href="#ac3316120c01b6c993ac8f2d3f2b4ff03">&#9670;&nbsp;</a></span>asymm_one_over_one_plus_x_for_x_in_0_116()</h2>
1771
Anthony Barbier06ea0482018-02-22 15:45:35 +00001772<div class="memitem">
1773<div class="memproto">
1774<table class="mlabels">
1775 <tr>
1776 <td class="mlabels-left">
1777 <table class="memname">
1778 <tr>
1779 <td class="memname">int16 asymm_one_over_one_plus_x_for_x_in_0_116 </td>
1780 <td>(</td>
1781 <td class="paramtype">int16&#160;</td>
1782 <td class="paramname"><em>a</em></td><td>)</td>
1783 <td></td>
1784 </tr>
1785 </table>
1786 </td>
1787 <td class="mlabels-right">
1788<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1789 </tr>
1790</table>
1791</div><div class="memdoc">
1792
Jenkinsb9abeae2018-11-22 11:58:08 +00001793<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001794
1795</div>
1796</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001797<a id="a6524f601cf9a2ae69d5eab74576c93d0"></a>
1798<h2 class="memtitle"><span class="permalink"><a href="#a6524f601cf9a2ae69d5eab74576c93d0">&#9670;&nbsp;</a></span>asymm_one_over_one_plus_x_for_x_in_0_12()</h2>
1799
Anthony Barbier06ea0482018-02-22 15:45:35 +00001800<div class="memitem">
1801<div class="memproto">
1802<table class="mlabels">
1803 <tr>
1804 <td class="mlabels-left">
1805 <table class="memname">
1806 <tr>
1807 <td class="memname">int2 asymm_one_over_one_plus_x_for_x_in_0_12 </td>
1808 <td>(</td>
1809 <td class="paramtype">int2&#160;</td>
1810 <td class="paramname"><em>a</em></td><td>)</td>
1811 <td></td>
1812 </tr>
1813 </table>
1814 </td>
1815 <td class="mlabels-right">
1816<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1817 </tr>
1818</table>
1819</div><div class="memdoc">
1820
Jenkinsb9abeae2018-11-22 11:58:08 +00001821<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001822
1823</div>
1824</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001825<a id="a049439083adb7b960079832ad6367389"></a>
1826<h2 class="memtitle"><span class="permalink"><a href="#a049439083adb7b960079832ad6367389">&#9670;&nbsp;</a></span>asymm_one_over_one_plus_x_for_x_in_0_14()</h2>
1827
Anthony Barbier06ea0482018-02-22 15:45:35 +00001828<div class="memitem">
1829<div class="memproto">
1830<table class="mlabels">
1831 <tr>
1832 <td class="mlabels-left">
1833 <table class="memname">
1834 <tr>
1835 <td class="memname">int4 asymm_one_over_one_plus_x_for_x_in_0_14 </td>
1836 <td>(</td>
1837 <td class="paramtype">int4&#160;</td>
1838 <td class="paramname"><em>a</em></td><td>)</td>
1839 <td></td>
1840 </tr>
1841 </table>
1842 </td>
1843 <td class="mlabels-right">
1844<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1845 </tr>
1846</table>
1847</div><div class="memdoc">
1848
Jenkinsb9abeae2018-11-22 11:58:08 +00001849<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001850
1851</div>
1852</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001853<a id="abe37c90e62ee60565cbfbb38c4358fd6"></a>
1854<h2 class="memtitle"><span class="permalink"><a href="#abe37c90e62ee60565cbfbb38c4358fd6">&#9670;&nbsp;</a></span>asymm_one_over_one_plus_x_for_x_in_0_18()</h2>
1855
Anthony Barbier06ea0482018-02-22 15:45:35 +00001856<div class="memitem">
1857<div class="memproto">
1858<table class="mlabels">
1859 <tr>
1860 <td class="mlabels-left">
1861 <table class="memname">
1862 <tr>
1863 <td class="memname">int8 asymm_one_over_one_plus_x_for_x_in_0_18 </td>
1864 <td>(</td>
1865 <td class="paramtype">int8&#160;</td>
1866 <td class="paramname"><em>a</em></td><td>)</td>
1867 <td></td>
1868 </tr>
1869 </table>
1870 </td>
1871 <td class="mlabels-right">
1872<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1873 </tr>
1874</table>
1875</div><div class="memdoc">
1876
Jenkinsb9abeae2018-11-22 11:58:08 +00001877<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001878
1879</div>
1880</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001881<a id="a700e603af523859efb90ed4b52b41c84"></a>
1882<h2 class="memtitle"><span class="permalink"><a href="#a700e603af523859efb90ed4b52b41c84">&#9670;&nbsp;</a></span>asymm_rescale16()</h2>
1883
Anthony Barbier06ea0482018-02-22 15:45:35 +00001884<div class="memitem">
1885<div class="memproto">
1886<table class="mlabels">
1887 <tr>
1888 <td class="mlabels-left">
1889 <table class="memname">
1890 <tr>
1891 <td class="memname">int16 asymm_rescale16 </td>
1892 <td>(</td>
1893 <td class="paramtype">int16&#160;</td>
1894 <td class="paramname"><em>value</em>, </td>
1895 </tr>
1896 <tr>
1897 <td class="paramkey"></td>
1898 <td></td>
1899 <td class="paramtype">int&#160;</td>
1900 <td class="paramname"><em>src_integer_bits</em>, </td>
1901 </tr>
1902 <tr>
1903 <td class="paramkey"></td>
1904 <td></td>
1905 <td class="paramtype">int&#160;</td>
1906 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1907 </tr>
1908 <tr>
1909 <td></td>
1910 <td>)</td>
1911 <td></td><td></td>
1912 </tr>
1913 </table>
1914 </td>
1915 <td class="mlabels-right">
1916<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1917 </tr>
1918</table>
1919</div><div class="memdoc">
1920
Jenkinsb9abeae2018-11-22 11:58:08 +00001921<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001922
1923</div>
1924</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001925<a id="a49b94bfc99276975c6fed32c693cbac5"></a>
1926<h2 class="memtitle"><span class="permalink"><a href="#a49b94bfc99276975c6fed32c693cbac5">&#9670;&nbsp;</a></span>asymm_rescale2()</h2>
1927
Anthony Barbier06ea0482018-02-22 15:45:35 +00001928<div class="memitem">
1929<div class="memproto">
1930<table class="mlabels">
1931 <tr>
1932 <td class="mlabels-left">
1933 <table class="memname">
1934 <tr>
1935 <td class="memname">int2 asymm_rescale2 </td>
1936 <td>(</td>
1937 <td class="paramtype">int2&#160;</td>
1938 <td class="paramname"><em>value</em>, </td>
1939 </tr>
1940 <tr>
1941 <td class="paramkey"></td>
1942 <td></td>
1943 <td class="paramtype">int&#160;</td>
1944 <td class="paramname"><em>src_integer_bits</em>, </td>
1945 </tr>
1946 <tr>
1947 <td class="paramkey"></td>
1948 <td></td>
1949 <td class="paramtype">int&#160;</td>
1950 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1951 </tr>
1952 <tr>
1953 <td></td>
1954 <td>)</td>
1955 <td></td><td></td>
1956 </tr>
1957 </table>
1958 </td>
1959 <td class="mlabels-right">
1960<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1961 </tr>
1962</table>
1963</div><div class="memdoc">
1964
Jenkinsb9abeae2018-11-22 11:58:08 +00001965<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001966
1967</div>
1968</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001969<a id="a8f9d043040f28f051c7145281de94681"></a>
1970<h2 class="memtitle"><span class="permalink"><a href="#a8f9d043040f28f051c7145281de94681">&#9670;&nbsp;</a></span>asymm_rescale4()</h2>
1971
Anthony Barbier06ea0482018-02-22 15:45:35 +00001972<div class="memitem">
1973<div class="memproto">
1974<table class="mlabels">
1975 <tr>
1976 <td class="mlabels-left">
1977 <table class="memname">
1978 <tr>
1979 <td class="memname">int4 asymm_rescale4 </td>
1980 <td>(</td>
1981 <td class="paramtype">int4&#160;</td>
1982 <td class="paramname"><em>value</em>, </td>
1983 </tr>
1984 <tr>
1985 <td class="paramkey"></td>
1986 <td></td>
1987 <td class="paramtype">int&#160;</td>
1988 <td class="paramname"><em>src_integer_bits</em>, </td>
1989 </tr>
1990 <tr>
1991 <td class="paramkey"></td>
1992 <td></td>
1993 <td class="paramtype">int&#160;</td>
1994 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1995 </tr>
1996 <tr>
1997 <td></td>
1998 <td>)</td>
1999 <td></td><td></td>
2000 </tr>
2001 </table>
2002 </td>
2003 <td class="mlabels-right">
2004<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2005 </tr>
2006</table>
2007</div><div class="memdoc">
2008
Jenkinsb9abeae2018-11-22 11:58:08 +00002009<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002010
2011</div>
2012</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002013<a id="a478b69bea5edb6ad939d8e7edd9e7e3f"></a>
2014<h2 class="memtitle"><span class="permalink"><a href="#a478b69bea5edb6ad939d8e7edd9e7e3f">&#9670;&nbsp;</a></span>asymm_rescale8()</h2>
2015
Anthony Barbier06ea0482018-02-22 15:45:35 +00002016<div class="memitem">
2017<div class="memproto">
2018<table class="mlabels">
2019 <tr>
2020 <td class="mlabels-left">
2021 <table class="memname">
2022 <tr>
2023 <td class="memname">int8 asymm_rescale8 </td>
2024 <td>(</td>
2025 <td class="paramtype">int8&#160;</td>
2026 <td class="paramname"><em>value</em>, </td>
2027 </tr>
2028 <tr>
2029 <td class="paramkey"></td>
2030 <td></td>
2031 <td class="paramtype">int&#160;</td>
2032 <td class="paramname"><em>src_integer_bits</em>, </td>
2033 </tr>
2034 <tr>
2035 <td class="paramkey"></td>
2036 <td></td>
2037 <td class="paramtype">int&#160;</td>
2038 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2039 </tr>
2040 <tr>
2041 <td></td>
2042 <td>)</td>
2043 <td></td><td></td>
2044 </tr>
2045 </table>
2046 </td>
2047 <td class="mlabels-right">
2048<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2049 </tr>
2050</table>
2051</div><div class="memdoc">
2052
Jenkinsb9abeae2018-11-22 11:58:08 +00002053<p class="definition">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>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002054
2055</div>
2056</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002057<a id="a21d65cd6ac14696d58509b82789db845"></a>
2058<h2 class="memtitle"><span class="permalink"><a href="#a21d65cd6ac14696d58509b82789db845">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_16()</h2>
2059
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002060<div class="memitem">
2061<div class="memproto">
2062<table class="mlabels">
2063 <tr>
2064 <td class="mlabels-left">
2065 <table class="memname">
2066 <tr>
2067 <td class="memname">int16 asymm_rounding_divide_by_POW2_16 </td>
2068 <td>(</td>
2069 <td class="paramtype">int16&#160;</td>
2070 <td class="paramname"><em>x</em>, </td>
2071 </tr>
2072 <tr>
2073 <td class="paramkey"></td>
2074 <td></td>
2075 <td class="paramtype">int&#160;</td>
2076 <td class="paramname"><em>exponent</em>&#160;</td>
2077 </tr>
2078 <tr>
2079 <td></td>
2080 <td>)</td>
2081 <td></td><td></td>
2082 </tr>
2083 </table>
2084 </td>
2085 <td class="mlabels-right">
2086<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2087 </tr>
2088</table>
2089</div><div class="memdoc">
2090
Jenkinsb9abeae2018-11-22 11:58:08 +00002091<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002092
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002093</div>
2094</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002095<a id="ae62b2416b40ca28724c065e95e18a25b"></a>
2096<h2 class="memtitle"><span class="permalink"><a href="#ae62b2416b40ca28724c065e95e18a25b">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_2()</h2>
2097
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002098<div class="memitem">
2099<div class="memproto">
2100<table class="mlabels">
2101 <tr>
2102 <td class="mlabels-left">
2103 <table class="memname">
2104 <tr>
2105 <td class="memname">int2 asymm_rounding_divide_by_POW2_2 </td>
2106 <td>(</td>
2107 <td class="paramtype">int2&#160;</td>
2108 <td class="paramname"><em>x</em>, </td>
2109 </tr>
2110 <tr>
2111 <td class="paramkey"></td>
2112 <td></td>
2113 <td class="paramtype">int&#160;</td>
2114 <td class="paramname"><em>exponent</em>&#160;</td>
2115 </tr>
2116 <tr>
2117 <td></td>
2118 <td>)</td>
2119 <td></td><td></td>
2120 </tr>
2121 </table>
2122 </td>
2123 <td class="mlabels-right">
2124<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2125 </tr>
2126</table>
2127</div><div class="memdoc">
2128
Jenkinsb9abeae2018-11-22 11:58:08 +00002129<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002130
2131</div>
2132</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002133<a id="a2660d5193f286b247cf533d8ca234e77"></a>
2134<h2 class="memtitle"><span class="permalink"><a href="#a2660d5193f286b247cf533d8ca234e77">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_4()</h2>
2135
Anthony Barbier06ea0482018-02-22 15:45:35 +00002136<div class="memitem">
2137<div class="memproto">
2138<table class="mlabels">
2139 <tr>
2140 <td class="mlabels-left">
2141 <table class="memname">
2142 <tr>
2143 <td class="memname">int4 asymm_rounding_divide_by_POW2_4 </td>
2144 <td>(</td>
2145 <td class="paramtype">int4&#160;</td>
2146 <td class="paramname"><em>x</em>, </td>
2147 </tr>
2148 <tr>
2149 <td class="paramkey"></td>
2150 <td></td>
2151 <td class="paramtype">int&#160;</td>
2152 <td class="paramname"><em>exponent</em>&#160;</td>
2153 </tr>
2154 <tr>
2155 <td></td>
2156 <td>)</td>
2157 <td></td><td></td>
2158 </tr>
2159 </table>
2160 </td>
2161 <td class="mlabels-right">
2162<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2163 </tr>
2164</table>
2165</div><div class="memdoc">
2166
Jenkinsb9abeae2018-11-22 11:58:08 +00002167<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002168
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002169</div>
2170</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002171<a id="a38afb1b30447264fd62ca7ad86e7ea19"></a>
2172<h2 class="memtitle"><span class="permalink"><a href="#a38afb1b30447264fd62ca7ad86e7ea19">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_8()</h2>
2173
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002174<div class="memitem">
2175<div class="memproto">
2176<table class="mlabels">
2177 <tr>
2178 <td class="mlabels-left">
2179 <table class="memname">
2180 <tr>
2181 <td class="memname">int8 asymm_rounding_divide_by_POW2_8 </td>
2182 <td>(</td>
2183 <td class="paramtype">int8&#160;</td>
2184 <td class="paramname"><em>x</em>, </td>
2185 </tr>
2186 <tr>
2187 <td class="paramkey"></td>
2188 <td></td>
2189 <td class="paramtype">int&#160;</td>
2190 <td class="paramname"><em>exponent</em>&#160;</td>
2191 </tr>
2192 <tr>
2193 <td></td>
2194 <td>)</td>
2195 <td></td><td></td>
2196 </tr>
2197 </table>
2198 </td>
2199 <td class="mlabels-right">
2200<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2201 </tr>
2202</table>
2203</div><div class="memdoc">
2204
Jenkinsb9abeae2018-11-22 11:58:08 +00002205<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002206
2207</div>
2208</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002209<a id="ab13b1910b09c0cf268f6a8af0e2013e2"></a>
2210<h2 class="memtitle"><span class="permalink"><a href="#ab13b1910b09c0cf268f6a8af0e2013e2">&#9670;&nbsp;</a></span>asymm_rounding_half_sum16()</h2>
2211
Anthony Barbier06ea0482018-02-22 15:45:35 +00002212<div class="memitem">
2213<div class="memproto">
2214<table class="mlabels">
2215 <tr>
2216 <td class="mlabels-left">
2217 <table class="memname">
2218 <tr>
2219 <td class="memname">int16 asymm_rounding_half_sum16 </td>
2220 <td>(</td>
2221 <td class="paramtype">int16&#160;</td>
2222 <td class="paramname"><em>a</em>, </td>
2223 </tr>
2224 <tr>
2225 <td class="paramkey"></td>
2226 <td></td>
2227 <td class="paramtype">int16&#160;</td>
2228 <td class="paramname"><em>b</em>&#160;</td>
2229 </tr>
2230 <tr>
2231 <td></td>
2232 <td>)</td>
2233 <td></td><td></td>
2234 </tr>
2235 </table>
2236 </td>
2237 <td class="mlabels-right">
2238<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2239 </tr>
2240</table>
2241</div><div class="memdoc">
2242
Jenkinsb9abeae2018-11-22 11:58:08 +00002243<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002244
2245</div>
2246</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002247<a id="acd43480a8530400e781603a995adcad0"></a>
2248<h2 class="memtitle"><span class="permalink"><a href="#acd43480a8530400e781603a995adcad0">&#9670;&nbsp;</a></span>asymm_rounding_half_sum2()</h2>
2249
Anthony Barbier06ea0482018-02-22 15:45:35 +00002250<div class="memitem">
2251<div class="memproto">
2252<table class="mlabels">
2253 <tr>
2254 <td class="mlabels-left">
2255 <table class="memname">
2256 <tr>
2257 <td class="memname">int2 asymm_rounding_half_sum2 </td>
2258 <td>(</td>
2259 <td class="paramtype">int2&#160;</td>
2260 <td class="paramname"><em>a</em>, </td>
2261 </tr>
2262 <tr>
2263 <td class="paramkey"></td>
2264 <td></td>
2265 <td class="paramtype">int2&#160;</td>
2266 <td class="paramname"><em>b</em>&#160;</td>
2267 </tr>
2268 <tr>
2269 <td></td>
2270 <td>)</td>
2271 <td></td><td></td>
2272 </tr>
2273 </table>
2274 </td>
2275 <td class="mlabels-right">
2276<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2277 </tr>
2278</table>
2279</div><div class="memdoc">
2280
Jenkinsb9abeae2018-11-22 11:58:08 +00002281<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002282
2283</div>
2284</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002285<a id="a7dda5bba50450367760a7ad1148881be"></a>
2286<h2 class="memtitle"><span class="permalink"><a href="#a7dda5bba50450367760a7ad1148881be">&#9670;&nbsp;</a></span>asymm_rounding_half_sum4()</h2>
2287
Anthony Barbier06ea0482018-02-22 15:45:35 +00002288<div class="memitem">
2289<div class="memproto">
2290<table class="mlabels">
2291 <tr>
2292 <td class="mlabels-left">
2293 <table class="memname">
2294 <tr>
2295 <td class="memname">int4 asymm_rounding_half_sum4 </td>
2296 <td>(</td>
2297 <td class="paramtype">int4&#160;</td>
2298 <td class="paramname"><em>a</em>, </td>
2299 </tr>
2300 <tr>
2301 <td class="paramkey"></td>
2302 <td></td>
2303 <td class="paramtype">int4&#160;</td>
2304 <td class="paramname"><em>b</em>&#160;</td>
2305 </tr>
2306 <tr>
2307 <td></td>
2308 <td>)</td>
2309 <td></td><td></td>
2310 </tr>
2311 </table>
2312 </td>
2313 <td class="mlabels-right">
2314<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2315 </tr>
2316</table>
2317</div><div class="memdoc">
2318
Jenkinsb9abeae2018-11-22 11:58:08 +00002319<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002320
2321</div>
2322</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002323<a id="acba55fb1a4dfa6ab5080cc276550d5fd"></a>
2324<h2 class="memtitle"><span class="permalink"><a href="#acba55fb1a4dfa6ab5080cc276550d5fd">&#9670;&nbsp;</a></span>asymm_rounding_half_sum8()</h2>
2325
Anthony Barbier06ea0482018-02-22 15:45:35 +00002326<div class="memitem">
2327<div class="memproto">
2328<table class="mlabels">
2329 <tr>
2330 <td class="mlabels-left">
2331 <table class="memname">
2332 <tr>
2333 <td class="memname">int8 asymm_rounding_half_sum8 </td>
2334 <td>(</td>
2335 <td class="paramtype">int8&#160;</td>
2336 <td class="paramname"><em>a</em>, </td>
2337 </tr>
2338 <tr>
2339 <td class="paramkey"></td>
2340 <td></td>
2341 <td class="paramtype">int8&#160;</td>
2342 <td class="paramname"><em>b</em>&#160;</td>
2343 </tr>
2344 <tr>
2345 <td></td>
2346 <td>)</td>
2347 <td></td><td></td>
2348 </tr>
2349 </table>
2350 </td>
2351 <td class="mlabels-right">
2352<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2353 </tr>
2354</table>
2355</div><div class="memdoc">
2356
Jenkinsb9abeae2018-11-22 11:58:08 +00002357<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002358
2359</div>
2360</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002361<a id="a88b3d0aae3bcf134f9eb4b5637a4b73c"></a>
2362<h2 class="memtitle"><span class="permalink"><a href="#a88b3d0aae3bcf134f9eb4b5637a4b73c">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow216()</h2>
2363
Anthony Barbier06ea0482018-02-22 15:45:35 +00002364<div class="memitem">
2365<div class="memproto">
2366<table class="mlabels">
2367 <tr>
2368 <td class="mlabels-left">
2369 <table class="memname">
2370 <tr>
2371 <td class="memname">int16 asymm_saturating_rounding_mult_by_pow216 </td>
2372 <td>(</td>
2373 <td class="paramtype">int16&#160;</td>
2374 <td class="paramname"><em>x</em>, </td>
2375 </tr>
2376 <tr>
2377 <td class="paramkey"></td>
2378 <td></td>
2379 <td class="paramtype">int&#160;</td>
2380 <td class="paramname"><em>exponent</em>&#160;</td>
2381 </tr>
2382 <tr>
2383 <td></td>
2384 <td>)</td>
2385 <td></td><td></td>
2386 </tr>
2387 </table>
2388 </td>
2389 <td class="mlabels-right">
2390<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2391 </tr>
2392</table>
2393</div><div class="memdoc">
2394
Jenkinsb9abeae2018-11-22 11:58:08 +00002395<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002396
2397</div>
2398</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002399<a id="ac5d336b40941ee7c63a750b3dc92b030"></a>
2400<h2 class="memtitle"><span class="permalink"><a href="#ac5d336b40941ee7c63a750b3dc92b030">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow22()</h2>
2401
Anthony Barbier06ea0482018-02-22 15:45:35 +00002402<div class="memitem">
2403<div class="memproto">
2404<table class="mlabels">
2405 <tr>
2406 <td class="mlabels-left">
2407 <table class="memname">
2408 <tr>
2409 <td class="memname">int2 asymm_saturating_rounding_mult_by_pow22 </td>
2410 <td>(</td>
2411 <td class="paramtype">int2&#160;</td>
2412 <td class="paramname"><em>x</em>, </td>
2413 </tr>
2414 <tr>
2415 <td class="paramkey"></td>
2416 <td></td>
2417 <td class="paramtype">int&#160;</td>
2418 <td class="paramname"><em>exponent</em>&#160;</td>
2419 </tr>
2420 <tr>
2421 <td></td>
2422 <td>)</td>
2423 <td></td><td></td>
2424 </tr>
2425 </table>
2426 </td>
2427 <td class="mlabels-right">
2428<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2429 </tr>
2430</table>
2431</div><div class="memdoc">
2432
Jenkinsb9abeae2018-11-22 11:58:08 +00002433<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002434
2435</div>
2436</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002437<a id="af06991bb67792a6fec9c426923f39745"></a>
2438<h2 class="memtitle"><span class="permalink"><a href="#af06991bb67792a6fec9c426923f39745">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow24()</h2>
2439
Anthony Barbier06ea0482018-02-22 15:45:35 +00002440<div class="memitem">
2441<div class="memproto">
2442<table class="mlabels">
2443 <tr>
2444 <td class="mlabels-left">
2445 <table class="memname">
2446 <tr>
2447 <td class="memname">int4 asymm_saturating_rounding_mult_by_pow24 </td>
2448 <td>(</td>
2449 <td class="paramtype">int4&#160;</td>
2450 <td class="paramname"><em>x</em>, </td>
2451 </tr>
2452 <tr>
2453 <td class="paramkey"></td>
2454 <td></td>
2455 <td class="paramtype">int&#160;</td>
2456 <td class="paramname"><em>exponent</em>&#160;</td>
2457 </tr>
2458 <tr>
2459 <td></td>
2460 <td>)</td>
2461 <td></td><td></td>
2462 </tr>
2463 </table>
2464 </td>
2465 <td class="mlabels-right">
2466<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2467 </tr>
2468</table>
2469</div><div class="memdoc">
2470
Jenkinsb9abeae2018-11-22 11:58:08 +00002471<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002472
2473</div>
2474</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002475<a id="a1bfbcc866bf09921d6bf4fc39cd38d89"></a>
2476<h2 class="memtitle"><span class="permalink"><a href="#a1bfbcc866bf09921d6bf4fc39cd38d89">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow28()</h2>
2477
Anthony Barbier06ea0482018-02-22 15:45:35 +00002478<div class="memitem">
2479<div class="memproto">
2480<table class="mlabels">
2481 <tr>
2482 <td class="mlabels-left">
2483 <table class="memname">
2484 <tr>
2485 <td class="memname">int8 asymm_saturating_rounding_mult_by_pow28 </td>
2486 <td>(</td>
2487 <td class="paramtype">int8&#160;</td>
2488 <td class="paramname"><em>x</em>, </td>
2489 </tr>
2490 <tr>
2491 <td class="paramkey"></td>
2492 <td></td>
2493 <td class="paramtype">int&#160;</td>
2494 <td class="paramname"><em>exponent</em>&#160;</td>
2495 </tr>
2496 <tr>
2497 <td></td>
2498 <td>)</td>
2499 <td></td><td></td>
2500 </tr>
2501 </table>
2502 </td>
2503 <td class="mlabels-right">
2504<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2505 </tr>
2506</table>
2507</div><div class="memdoc">
2508
Jenkinsb9abeae2018-11-22 11:58:08 +00002509<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002510
2511</div>
2512</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002513<a id="a7effd9e7de9fefa9d4ae4eb2cfc06090"></a>
2514<h2 class="memtitle"><span class="permalink"><a href="#a7effd9e7de9fefa9d4ae4eb2cfc06090">&#9670;&nbsp;</a></span>asymm_select_using_mask16()</h2>
2515
Anthony Barbier06ea0482018-02-22 15:45:35 +00002516<div class="memitem">
2517<div class="memproto">
2518<table class="mlabels">
2519 <tr>
2520 <td class="mlabels-left">
2521 <table class="memname">
2522 <tr>
2523 <td class="memname">int16 asymm_select_using_mask16 </td>
2524 <td>(</td>
2525 <td class="paramtype">int16&#160;</td>
2526 <td class="paramname"><em>if_mask</em>, </td>
2527 </tr>
2528 <tr>
2529 <td class="paramkey"></td>
2530 <td></td>
2531 <td class="paramtype">int16&#160;</td>
2532 <td class="paramname"><em>then_val</em>, </td>
2533 </tr>
2534 <tr>
2535 <td class="paramkey"></td>
2536 <td></td>
2537 <td class="paramtype">int16&#160;</td>
2538 <td class="paramname"><em>else_val</em>&#160;</td>
2539 </tr>
2540 <tr>
2541 <td></td>
2542 <td>)</td>
2543 <td></td><td></td>
2544 </tr>
2545 </table>
2546 </td>
2547 <td class="mlabels-right">
2548<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2549 </tr>
2550</table>
2551</div><div class="memdoc">
2552
Jenkinsb9abeae2018-11-22 11:58:08 +00002553<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002554
2555</div>
2556</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002557<a id="a0dade5bb9ed9aae49b6bb2875e273d89"></a>
2558<h2 class="memtitle"><span class="permalink"><a href="#a0dade5bb9ed9aae49b6bb2875e273d89">&#9670;&nbsp;</a></span>asymm_select_using_mask2()</h2>
2559
Anthony Barbier06ea0482018-02-22 15:45:35 +00002560<div class="memitem">
2561<div class="memproto">
2562<table class="mlabels">
2563 <tr>
2564 <td class="mlabels-left">
2565 <table class="memname">
2566 <tr>
2567 <td class="memname">int2 asymm_select_using_mask2 </td>
2568 <td>(</td>
2569 <td class="paramtype">int2&#160;</td>
2570 <td class="paramname"><em>if_mask</em>, </td>
2571 </tr>
2572 <tr>
2573 <td class="paramkey"></td>
2574 <td></td>
2575 <td class="paramtype">int2&#160;</td>
2576 <td class="paramname"><em>then_val</em>, </td>
2577 </tr>
2578 <tr>
2579 <td class="paramkey"></td>
2580 <td></td>
2581 <td class="paramtype">int2&#160;</td>
2582 <td class="paramname"><em>else_val</em>&#160;</td>
2583 </tr>
2584 <tr>
2585 <td></td>
2586 <td>)</td>
2587 <td></td><td></td>
2588 </tr>
2589 </table>
2590 </td>
2591 <td class="mlabels-right">
2592<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2593 </tr>
2594</table>
2595</div><div class="memdoc">
2596
Jenkinsb9abeae2018-11-22 11:58:08 +00002597<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002598
2599</div>
2600</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002601<a id="a44e4d74ed42006c4153a9cb6c97285de"></a>
2602<h2 class="memtitle"><span class="permalink"><a href="#a44e4d74ed42006c4153a9cb6c97285de">&#9670;&nbsp;</a></span>asymm_select_using_mask4()</h2>
2603
Anthony Barbier06ea0482018-02-22 15:45:35 +00002604<div class="memitem">
2605<div class="memproto">
2606<table class="mlabels">
2607 <tr>
2608 <td class="mlabels-left">
2609 <table class="memname">
2610 <tr>
2611 <td class="memname">int4 asymm_select_using_mask4 </td>
2612 <td>(</td>
2613 <td class="paramtype">int4&#160;</td>
2614 <td class="paramname"><em>if_mask</em>, </td>
2615 </tr>
2616 <tr>
2617 <td class="paramkey"></td>
2618 <td></td>
2619 <td class="paramtype">int4&#160;</td>
2620 <td class="paramname"><em>then_val</em>, </td>
2621 </tr>
2622 <tr>
2623 <td class="paramkey"></td>
2624 <td></td>
2625 <td class="paramtype">int4&#160;</td>
2626 <td class="paramname"><em>else_val</em>&#160;</td>
2627 </tr>
2628 <tr>
2629 <td></td>
2630 <td>)</td>
2631 <td></td><td></td>
2632 </tr>
2633 </table>
2634 </td>
2635 <td class="mlabels-right">
2636<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2637 </tr>
2638</table>
2639</div><div class="memdoc">
2640
Jenkinsb9abeae2018-11-22 11:58:08 +00002641<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002642
2643</div>
2644</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002645<a id="a64682bc22716ad771d012ce4c7398652"></a>
2646<h2 class="memtitle"><span class="permalink"><a href="#a64682bc22716ad771d012ce4c7398652">&#9670;&nbsp;</a></span>asymm_select_using_mask8()</h2>
2647
Anthony Barbier06ea0482018-02-22 15:45:35 +00002648<div class="memitem">
2649<div class="memproto">
2650<table class="mlabels">
2651 <tr>
2652 <td class="mlabels-left">
2653 <table class="memname">
2654 <tr>
2655 <td class="memname">int8 asymm_select_using_mask8 </td>
2656 <td>(</td>
2657 <td class="paramtype">int8&#160;</td>
2658 <td class="paramname"><em>if_mask</em>, </td>
2659 </tr>
2660 <tr>
2661 <td class="paramkey"></td>
2662 <td></td>
2663 <td class="paramtype">int8&#160;</td>
2664 <td class="paramname"><em>then_val</em>, </td>
2665 </tr>
2666 <tr>
2667 <td class="paramkey"></td>
2668 <td></td>
2669 <td class="paramtype">int8&#160;</td>
2670 <td class="paramname"><em>else_val</em>&#160;</td>
2671 </tr>
2672 <tr>
2673 <td></td>
2674 <td>)</td>
2675 <td></td><td></td>
2676 </tr>
2677 </table>
2678 </td>
2679 <td class="mlabels-right">
2680<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2681 </tr>
2682</table>
2683</div><div class="memdoc">
2684
Jenkinsb9abeae2018-11-22 11:58:08 +00002685<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002686
2687</div>
2688</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002689<a id="a4bde4cd395697b5d37af5116773f16ed"></a>
2690<h2 class="memtitle"><span class="permalink"><a href="#a4bde4cd395697b5d37af5116773f16ed">&#9670;&nbsp;</a></span>exp_barrel_shifter16()</h2>
2691
Anthony Barbier06ea0482018-02-22 15:45:35 +00002692<div class="memitem">
2693<div class="memproto">
2694<table class="mlabels">
2695 <tr>
2696 <td class="mlabels-left">
2697 <table class="memname">
2698 <tr>
2699 <td class="memname">int16 exp_barrel_shifter16 </td>
2700 <td>(</td>
2701 <td class="paramtype">int16&#160;</td>
2702 <td class="paramname"><em>result</em>, </td>
2703 </tr>
2704 <tr>
2705 <td class="paramkey"></td>
2706 <td></td>
2707 <td class="paramtype">int&#160;</td>
2708 <td class="paramname"><em>exponent</em>, </td>
2709 </tr>
2710 <tr>
2711 <td class="paramkey"></td>
2712 <td></td>
2713 <td class="paramtype">int&#160;</td>
2714 <td class="paramname"><em>fp_multiplier</em>, </td>
2715 </tr>
2716 <tr>
2717 <td class="paramkey"></td>
2718 <td></td>
2719 <td class="paramtype">int&#160;</td>
2720 <td class="paramname"><em>k_integer_bits</em>, </td>
2721 </tr>
2722 <tr>
2723 <td class="paramkey"></td>
2724 <td></td>
2725 <td class="paramtype">int&#160;</td>
2726 <td class="paramname"><em>k_fractional_bits</em>, </td>
2727 </tr>
2728 <tr>
2729 <td class="paramkey"></td>
2730 <td></td>
2731 <td class="paramtype">int16&#160;</td>
2732 <td class="paramname"><em>remainder</em>&#160;</td>
2733 </tr>
2734 <tr>
2735 <td></td>
2736 <td>)</td>
2737 <td></td><td></td>
2738 </tr>
2739 </table>
2740 </td>
2741 <td class="mlabels-right">
2742<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2743 </tr>
2744</table>
2745</div><div class="memdoc">
2746
Jenkinsb9abeae2018-11-22 11:58:08 +00002747<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002748
2749</div>
2750</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002751<a id="ad12110cc5f3099fa90b631e7b05772a0"></a>
2752<h2 class="memtitle"><span class="permalink"><a href="#ad12110cc5f3099fa90b631e7b05772a0">&#9670;&nbsp;</a></span>exp_barrel_shifter2()</h2>
2753
Anthony Barbier06ea0482018-02-22 15:45:35 +00002754<div class="memitem">
2755<div class="memproto">
2756<table class="mlabels">
2757 <tr>
2758 <td class="mlabels-left">
2759 <table class="memname">
2760 <tr>
2761 <td class="memname">int2 exp_barrel_shifter2 </td>
2762 <td>(</td>
2763 <td class="paramtype">int2&#160;</td>
2764 <td class="paramname"><em>result</em>, </td>
2765 </tr>
2766 <tr>
2767 <td class="paramkey"></td>
2768 <td></td>
2769 <td class="paramtype">int&#160;</td>
2770 <td class="paramname"><em>exponent</em>, </td>
2771 </tr>
2772 <tr>
2773 <td class="paramkey"></td>
2774 <td></td>
2775 <td class="paramtype">int&#160;</td>
2776 <td class="paramname"><em>fp_multiplier</em>, </td>
2777 </tr>
2778 <tr>
2779 <td class="paramkey"></td>
2780 <td></td>
2781 <td class="paramtype">int&#160;</td>
2782 <td class="paramname"><em>k_integer_bits</em>, </td>
2783 </tr>
2784 <tr>
2785 <td class="paramkey"></td>
2786 <td></td>
2787 <td class="paramtype">int&#160;</td>
2788 <td class="paramname"><em>k_fractional_bits</em>, </td>
2789 </tr>
2790 <tr>
2791 <td class="paramkey"></td>
2792 <td></td>
2793 <td class="paramtype">int2&#160;</td>
2794 <td class="paramname"><em>remainder</em>&#160;</td>
2795 </tr>
2796 <tr>
2797 <td></td>
2798 <td>)</td>
2799 <td></td><td></td>
2800 </tr>
2801 </table>
2802 </td>
2803 <td class="mlabels-right">
2804<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2805 </tr>
2806</table>
2807</div><div class="memdoc">
2808
Jenkinsb9abeae2018-11-22 11:58:08 +00002809<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002810
2811</div>
2812</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002813<a id="a521e3ded9b6ca69692e9415ef9b4cee1"></a>
2814<h2 class="memtitle"><span class="permalink"><a href="#a521e3ded9b6ca69692e9415ef9b4cee1">&#9670;&nbsp;</a></span>exp_barrel_shifter4()</h2>
2815
Anthony Barbier06ea0482018-02-22 15:45:35 +00002816<div class="memitem">
2817<div class="memproto">
2818<table class="mlabels">
2819 <tr>
2820 <td class="mlabels-left">
2821 <table class="memname">
2822 <tr>
2823 <td class="memname">int4 exp_barrel_shifter4 </td>
2824 <td>(</td>
2825 <td class="paramtype">int4&#160;</td>
2826 <td class="paramname"><em>result</em>, </td>
2827 </tr>
2828 <tr>
2829 <td class="paramkey"></td>
2830 <td></td>
2831 <td class="paramtype">int&#160;</td>
2832 <td class="paramname"><em>exponent</em>, </td>
2833 </tr>
2834 <tr>
2835 <td class="paramkey"></td>
2836 <td></td>
2837 <td class="paramtype">int&#160;</td>
2838 <td class="paramname"><em>fp_multiplier</em>, </td>
2839 </tr>
2840 <tr>
2841 <td class="paramkey"></td>
2842 <td></td>
2843 <td class="paramtype">int&#160;</td>
2844 <td class="paramname"><em>k_integer_bits</em>, </td>
2845 </tr>
2846 <tr>
2847 <td class="paramkey"></td>
2848 <td></td>
2849 <td class="paramtype">int&#160;</td>
2850 <td class="paramname"><em>k_fractional_bits</em>, </td>
2851 </tr>
2852 <tr>
2853 <td class="paramkey"></td>
2854 <td></td>
2855 <td class="paramtype">int4&#160;</td>
2856 <td class="paramname"><em>remainder</em>&#160;</td>
2857 </tr>
2858 <tr>
2859 <td></td>
2860 <td>)</td>
2861 <td></td><td></td>
2862 </tr>
2863 </table>
2864 </td>
2865 <td class="mlabels-right">
2866<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2867 </tr>
2868</table>
2869</div><div class="memdoc">
2870
Jenkinsb9abeae2018-11-22 11:58:08 +00002871<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002872
2873</div>
2874</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002875<a id="a936aed524c644efcf20b28877e3a0f3f"></a>
2876<h2 class="memtitle"><span class="permalink"><a href="#a936aed524c644efcf20b28877e3a0f3f">&#9670;&nbsp;</a></span>exp_barrel_shifter8()</h2>
2877
Anthony Barbier06ea0482018-02-22 15:45:35 +00002878<div class="memitem">
2879<div class="memproto">
2880<table class="mlabels">
2881 <tr>
2882 <td class="mlabels-left">
2883 <table class="memname">
2884 <tr>
2885 <td class="memname">int8 exp_barrel_shifter8 </td>
2886 <td>(</td>
2887 <td class="paramtype">int8&#160;</td>
2888 <td class="paramname"><em>result</em>, </td>
2889 </tr>
2890 <tr>
2891 <td class="paramkey"></td>
2892 <td></td>
2893 <td class="paramtype">int&#160;</td>
2894 <td class="paramname"><em>exponent</em>, </td>
2895 </tr>
2896 <tr>
2897 <td class="paramkey"></td>
2898 <td></td>
2899 <td class="paramtype">int&#160;</td>
2900 <td class="paramname"><em>fp_multiplier</em>, </td>
2901 </tr>
2902 <tr>
2903 <td class="paramkey"></td>
2904 <td></td>
2905 <td class="paramtype">int&#160;</td>
2906 <td class="paramname"><em>k_integer_bits</em>, </td>
2907 </tr>
2908 <tr>
2909 <td class="paramkey"></td>
2910 <td></td>
2911 <td class="paramtype">int&#160;</td>
2912 <td class="paramname"><em>k_fractional_bits</em>, </td>
2913 </tr>
2914 <tr>
2915 <td class="paramkey"></td>
2916 <td></td>
2917 <td class="paramtype">int8&#160;</td>
2918 <td class="paramname"><em>remainder</em>&#160;</td>
2919 </tr>
2920 <tr>
2921 <td></td>
2922 <td>)</td>
2923 <td></td><td></td>
2924 </tr>
2925 </table>
2926 </td>
2927 <td class="mlabels-right">
2928<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2929 </tr>
2930</table>
2931</div><div class="memdoc">
2932
Jenkinsb9abeae2018-11-22 11:58:08 +00002933<p class="definition">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>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002934
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002935</div>
2936</div>
2937</div><!-- contents -->
2938</div><!-- doc-content -->
2939<!-- start footer part -->
2940<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
2941 <ul>
2942 <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>
Jenkinsb9abeae2018-11-22 11:58:08 +00002943 <li class="footer">Generated on Thu Nov 22 2018 11:57:43 for Compute Library by
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002944 <a href="http://www.doxygen.org/index.html">
Jenkinsb9abeae2018-11-22 11:58:08 +00002945 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002946 </ul>
2947</div>
2948</body>
2949</html>