blob: 2fd5b9bf8a811ad35c203ae583b115201b335928 [file] [log] [blame]
Jenkins514be652019-02-28 12:25:18 +00001<!-- HTML header for doxygen 1.8.15-->
2<!-- Remember to use version doxygen 1.8.15 +-->
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
7<meta http-equiv="X-UA-Compatible" content="IE=9"/>
Jenkins514be652019-02-28 12:25:18 +00008<meta name="generator" content="Doxygen 1.8.15"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00009<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
10<title>Compute Library: src/core/CL/cl_kernels/helpers_asymm.h File Reference</title>
11<link href="tabs.css" rel="stylesheet" type="text/css"/>
12<script type="text/javascript" src="jquery.js"></script>
13<script type="text/javascript" src="dynsections.js"></script>
14<link href="navtree.css" rel="stylesheet" type="text/css"/>
15<script type="text/javascript" src="resize.js"></script>
16<script type="text/javascript" src="navtreedata.js"></script>
17<script type="text/javascript" src="navtree.js"></script>
18<script type="text/javascript">
Jenkins514be652019-02-28 12:25:18 +000019/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
Anthony Barbier8140e1e2017-12-14 23:48:46 +000020 $(document).ready(initResizable);
Jenkins514be652019-02-28 12:25:18 +000021/* @license-end */</script>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000022<link href="search/search.css" rel="stylesheet" type="text/css"/>
23<script type="text/javascript" src="search/searchdata.js"></script>
24<script type="text/javascript" src="search/search.js"></script>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000025<script type="text/x-mathjax-config">
26 MathJax.Hub.Config({
27 extensions: ["tex2jax.js"],
28 jax: ["input/TeX","output/HTML-CSS"],
29});
Jenkins514be652019-02-28 12:25:18 +000030</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000031<link href="doxygen.css" rel="stylesheet" type="text/css" />
Jenkins514be652019-02-28 12:25:18 +000032<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000033</head>
34<body>
35<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
36<div id="titlearea">
37<table cellspacing="0" cellpadding="0">
38 <tbody>
39 <tr style="height: 56px;">
Jenkins514be652019-02-28 12:25:18 +000040 <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000041 <td style="padding-left: 0.5em;">
Jenkins514be652019-02-28 12:25:18 +000042 <div id="projectname">
Jenkins4ba87db2019-05-23 17:11:51 +010043 &#160;<span id="projectnumber">19.05</span>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000044 </div>
45 </td>
46 </tr>
47 </tbody>
48</table>
49</div>
50<!-- end header part -->
Jenkins514be652019-02-28 12:25:18 +000051<!-- Generated by Doxygen 1.8.15 -->
Anthony Barbier8140e1e2017-12-14 23:48:46 +000052<script type="text/javascript">
Jenkins514be652019-02-28 12:25:18 +000053/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
Anthony Barbier8140e1e2017-12-14 23:48:46 +000054var searchBox = new SearchBox("searchBox", "search",false,'Search');
Jenkins514be652019-02-28 12:25:18 +000055/* @license-end */
Anthony Barbier8140e1e2017-12-14 23:48:46 +000056</script>
Jenkinsb9abeae2018-11-22 11:58:08 +000057<script type="text/javascript" src="menudata.js"></script>
58<script type="text/javascript" src="menu.js"></script>
59<script type="text/javascript">
Jenkins514be652019-02-28 12:25:18 +000060/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
Jenkinsb9abeae2018-11-22 11:58:08 +000061$(function() {
62 initMenu('',true,false,'search.php','Search');
63 $(document).ready(function() { init_search(); });
64});
Jenkins514be652019-02-28 12:25:18 +000065/* @license-end */</script>
Jenkinsb9abeae2018-11-22 11:58:08 +000066<div id="main-nav"></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +000067</div><!-- top -->
68<div id="side-nav" class="ui-resizable side-nav-resizable">
69 <div id="nav-tree">
70 <div id="nav-tree-contents">
71 <div id="nav-sync" class="sync"></div>
72 </div>
73 </div>
74 <div id="splitbar" style="-moz-user-select:none;"
75 class="ui-resizable-handle">
76 </div>
77</div>
78<script type="text/javascript">
Jenkins514be652019-02-28 12:25:18 +000079/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
Anthony Barbier8140e1e2017-12-14 23:48:46 +000080$(document).ready(function(){initNavTree('helpers__asymm_8h.xhtml','');});
Jenkins514be652019-02-28 12:25:18 +000081/* @license-end */
Anthony Barbier8140e1e2017-12-14 23:48:46 +000082</script>
83<div id="doc-content">
84<!-- window showing the filter options -->
85<div id="MSearchSelectWindow"
86 onmouseover="return searchBox.OnSearchSelectShow()"
87 onmouseout="return searchBox.OnSearchSelectHide()"
88 onkeydown="return searchBox.OnSearchSelectKey(event)">
89</div>
90
91<!-- iframe showing the search results (closed by default) -->
92<div id="MSearchResultsWindow">
93<iframe src="javascript:void(0)" frameborder="0"
94 name="MSearchResults" id="MSearchResults">
95</iframe>
96</div>
97
98<div class="header">
99 <div class="summary">
100<a href="#define-members">Macros</a> &#124;
101<a href="#func-members">Functions</a> </div>
102 <div class="headertitle">
103<div class="title">helpers_asymm.h File Reference</div> </div>
104</div><!--header-->
105<div class="contents">
Jenkinsb9abeae2018-11-22 11:58:08 +0000106<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 +0000107</div>
108<p><a href="helpers__asymm_8h_source.xhtml">Go to the source code of this file.</a></p>
109<table class="memberdecls">
110<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
111Macros</h2></td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100112<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 +0000113<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>
114<tr class="separator:abf75e242631b23007e4046682aa57ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100115<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 +0000116<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>
117<tr class="separator:ad4b199221927cbabbf859e4d2efb688d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100118<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 +0000119<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>
120<tr class="separator:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100121<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 +0000122<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>
123<tr class="separator:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100124<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 +0000125<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>
126<tr class="separator:a8c47a92ec76a1e367b45305c17d9ea88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100127<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 +0000128<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>
129<tr class="separator:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100130<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 +0000131<tr class="separator:aa12ca21cb9a54d2e4c26d57303fe44a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100132<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 +0000133<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>
134<tr class="separator:a4d0a02b30d8cc5725d0a11781b488852"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100135<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 +0000136<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>
137<tr class="separator:a737312bc4a68c79a77cfab4849793bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100138<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 +0000139<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>
140<tr class="separator:a8d97c6698c0e44424deae3f3130c55ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100141<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 +0000142<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>
143<tr class="separator:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100144<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 +0000145<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>
146<tr class="separator:aace85e2a32bacdaa4e2d2055deabfc57"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100147<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 +0000148<tr class="separator:aa43fc359dea64362f3016384f4269845"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100149<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 +0000150<tr class="separator:a5483aefd5e07244661178bfd3f434448"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100151<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 +0000152<tr class="separator:a86de0ffca367bfcf27a8ae5dd1fdef2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100153<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 +0000154<tr class="separator:aeebdcd88f4320931cd4a599ad1527e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100155<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 +0000156<tr class="separator:a9bc08a8c1833c5e6055ad6665e3ccf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100157<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 +0000158<tr class="separator:afc6a76528024472919bb5d50d067578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100159<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 +0000160<tr class="separator:af1d5450c9c4c13a6b7aa52af197b54b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100161<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 +0000162<tr class="separator:ace9ecff421cf885ad2c2d72d87c492cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100163<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 +0000164<tr class="separator:a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100165<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 +0000166<tr class="separator:ae77f34e1316d52c1ee84c35be9efb0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100167<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 +0000168<tr class="separator:a4cc3ff3a2eeb5f5e9d6743e08f632928"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100169<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 +0000170<tr class="separator:ad47fa44c1566aa4678fe524478490612"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100171<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 +0000172<tr class="separator:a98585f1bb84dea90aecbf59785c46151"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000173</table><table class="memberdecls">
174<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
175Functions</h2></td></tr>
176<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>
177<tr class="separator:ae62b2416b40ca28724c065e95e18a25b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000178<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>
179<tr class="separator:a2660d5193f286b247cf533d8ca234e77"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000180<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>
181<tr class="separator:a38afb1b30447264fd62ca7ad86e7ea19"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<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>
183<tr class="separator:a21d65cd6ac14696d58509b82789db845"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<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>
185<tr class="separator:a5038b78913b76d782cc0aa0d841bd7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000186<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>
187<tr class="separator:a6dca28649388d59ec0281af70d4507b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000188<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>
189<tr class="separator:a165b0bbab841712ea2c9a17a09bfa166"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<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>
191<tr class="separator:aef32e3a9c804f145deb6b88f0a444919"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000192<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>
193<tr class="separator:a8eb88d417247a1b8b8929e5c8faeb48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<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>
195<tr class="separator:a43aa0011bd9b23ce3f691a9ae205fe07"><td class="memSeparator" colspan="2">&#160;</td></tr>
196<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>
197<tr class="separator:accb6ee0e0c578704ae23e6ab0a57cdd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<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>
199<tr class="separator:a1d51b02a83af2a152fa52755f572f5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<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>
201<tr class="separator:a0dade5bb9ed9aae49b6bb2875e273d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
202<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>
203<tr class="separator:a44e4d74ed42006c4153a9cb6c97285de"><td class="memSeparator" colspan="2">&#160;</td></tr>
204<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>
205<tr class="separator:a64682bc22716ad771d012ce4c7398652"><td class="memSeparator" colspan="2">&#160;</td></tr>
206<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>
207<tr class="separator:a7effd9e7de9fefa9d4ae4eb2cfc06090"><td class="memSeparator" colspan="2">&#160;</td></tr>
208<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>
209<tr class="separator:a6ed499c821cf4f6b3bc4049d49e35139"><td class="memSeparator" colspan="2">&#160;</td></tr>
210<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>
211<tr class="separator:aed95c68d9545d401d2323cd8ad287fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<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>
213<tr class="separator:abefb0a278a588f03dc561db900df0958"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<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>
215<tr class="separator:a509916b7ee582d87faf1312fde111c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<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>
217<tr class="separator:a885a16f240b119acc9f0721c07acdce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
218<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>
219<tr class="separator:a2f180955030087d7538d5dc89f29eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<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>
221<tr class="separator:a8de81d453a39d0f589b0d3e007c7fde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
222<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>
223<tr class="separator:a1e1fef1353d2458beb7fab06cc8f460e"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<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>
225<tr class="separator:ad12110cc5f3099fa90b631e7b05772a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<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>
227<tr class="separator:a521e3ded9b6ca69692e9415ef9b4cee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<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>
229<tr class="separator:a936aed524c644efcf20b28877e3a0f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<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>
231<tr class="separator:a4bde4cd395697b5d37af5116773f16ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<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>
233<tr class="separator:a35b98dc80eefc6ce799720861a668691"><td class="memSeparator" colspan="2">&#160;</td></tr>
234<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>
235<tr class="separator:aa1dda459c2b10a9620b2c14a928ed4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
236<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>
237<tr class="separator:a429f20ad96413c1f7d4ee968afed6f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
238<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>
239<tr class="separator:ae13cfab30e1d4c5f797f9d3d7c6acacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<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>
241<tr class="separator:ac5d336b40941ee7c63a750b3dc92b030"><td class="memSeparator" colspan="2">&#160;</td></tr>
242<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>
243<tr class="separator:af06991bb67792a6fec9c426923f39745"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<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>
245<tr class="separator:a1bfbcc866bf09921d6bf4fc39cd38d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
246<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>
247<tr class="separator:a88b3d0aae3bcf134f9eb4b5637a4b73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
248<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>
249<tr class="separator:acd43480a8530400e781603a995adcad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
250<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>
251<tr class="separator:a7dda5bba50450367760a7ad1148881be"><td class="memSeparator" colspan="2">&#160;</td></tr>
252<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>
253<tr class="separator:acba55fb1a4dfa6ab5080cc276550d5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
254<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>
255<tr class="separator:ab13b1910b09c0cf268f6a8af0e2013e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
256<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>
257<tr class="separator:a6524f601cf9a2ae69d5eab74576c93d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
258<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>
259<tr class="separator:a049439083adb7b960079832ad6367389"><td class="memSeparator" colspan="2">&#160;</td></tr>
260<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>
261<tr class="separator:abe37c90e62ee60565cbfbb38c4358fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
262<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>
263<tr class="separator:ac3316120c01b6c993ac8f2d3f2b4ff03"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100264<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 +0000265<tr class="separator:a49b94bfc99276975c6fed32c693cbac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100266<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 +0000267<tr class="separator:a8f9d043040f28f051c7145281de94681"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100268<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 +0000269<tr class="separator:a478b69bea5edb6ad939d8e7edd9e7e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100270<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 +0000271<tr class="separator:a700e603af523859efb90ed4b52b41c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000272</table>
273<h2 class="groupheader">Macro Definition Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +0000274<a id="aeebdcd88f4320931cd4a599ad1527e83"></a>
275<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>
276
Anthony Barbier06ea0482018-02-22 15:45:35 +0000277<div class="memitem">
278<div class="memproto">
279 <table class="memname">
280 <tr>
281 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</td>
282 <td>(</td>
283 <td class="paramtype">&#160;</td>
284 <td class="paramname">a, </td>
285 </tr>
286 <tr>
287 <td class="paramkey"></td>
288 <td></td>
289 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100290 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000291 </tr>
292 <tr>
293 <td></td>
294 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100295 <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 +0000296 </tr>
297 </table>
298</div><div class="memdoc">
299
Jenkinsb9abeae2018-11-22 11:58:08 +0000300<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 +0000301
302</div>
303</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000304<a id="a3d8a3968a069eb8abbc28d31c20f6b8c"></a>
305<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>
306
Anthony Barbier06ea0482018-02-22 15:45:35 +0000307<div class="memitem">
308<div class="memproto">
309 <table class="memname">
310 <tr>
311 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</td>
312 <td>(</td>
313 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100314 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000315 <td></td>
316 </tr>
317 </table>
318</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000319<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) \</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 + (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="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>
Jenkinsb9abeae2018-11-22 11:58:08 +0000320<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>
Jenkins514be652019-02-28 12:25:18 +0000321<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000322</div><!-- fragment -->
323<p>Calculates \( exp(x) \) for x in [-1/4, 0). </p>
324<dl class="params"><dt>Parameters</dt><dd>
325 <table class="params">
326 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
327 </table>
328 </dd>
329</dl>
330<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
331
Jenkinsb9abeae2018-11-22 11:58:08 +0000332<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 +0000333
334</div>
335</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000336<a id="a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"></a>
337<h2 class="memtitle"><span class="permalink"><a href="#a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES</h2>
338
Anthony Barbier06ea0482018-02-22 15:45:35 +0000339<div class="memitem">
340<div class="memproto">
341 <table class="memname">
342 <tr>
343 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES</td>
344 <td>(</td>
345 <td class="paramtype">&#160;</td>
346 <td class="paramname">a, </td>
347 </tr>
348 <tr>
349 <td class="paramkey"></td>
350 <td></td>
351 <td class="paramtype">&#160;</td>
352 <td class="paramname">k_integer_bits, </td>
353 </tr>
354 <tr>
355 <td class="paramkey"></td>
356 <td></td>
357 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100358 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000359 </tr>
360 <tr>
361 <td></td>
362 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100363 <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 +0000364 </tr>
365 </table>
366</div><div class="memdoc">
367
Jenkinsb9abeae2018-11-22 11:58:08 +0000368<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 +0000369
370</div>
371</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000372<a id="a4d0a02b30d8cc5725d0a11781b488852"></a>
373<h2 class="memtitle"><span class="permalink"><a href="#a4d0a02b30d8cc5725d0a11781b488852">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</h2>
374
Anthony Barbier06ea0482018-02-22 15:45:35 +0000375<div class="memitem">
376<div class="memproto">
377 <table class="memname">
378 <tr>
379 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</td>
380 <td>(</td>
381 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100382 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000383 <td></td>
384 </tr>
385 </table>
386</div><div class="memdoc">
387
388<p>Calculates \( exp(x) \) for x &lt; 0. </p>
389<dl class="params"><dt>Parameters</dt><dd>
390 <table class="params">
391 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
392 </table>
393 </dd>
394</dl>
395<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
396
Jenkinsb9abeae2018-11-22 11:58:08 +0000397<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 +0000398
399</div>
400</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000401<a id="af1d5450c9c4c13a6b7aa52af197b54b2"></a>
402<h2 class="memtitle"><span class="permalink"><a href="#af1d5450c9c4c13a6b7aa52af197b54b2">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO</h2>
403
Anthony Barbier06ea0482018-02-22 15:45:35 +0000404<div class="memitem">
405<div class="memproto">
406 <table class="memname">
407 <tr>
408 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO</td>
409 <td>(</td>
410 <td class="paramtype">&#160;</td>
411 <td class="paramname">a, </td>
412 </tr>
413 <tr>
414 <td class="paramkey"></td>
415 <td></td>
416 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100417 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000418 </tr>
419 <tr>
420 <td></td>
421 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100422 <td></td><td>&#160;&#160;&#160;asymm_mask_if_non_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000423 </tr>
424 </table>
425</div><div class="memdoc">
426
Jenkinsb9abeae2018-11-22 11:58:08 +0000427<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 +0000428
429</div>
430</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000431<a id="a6dd3d8d22942f0ff3e59b4e32cfd4de3"></a>
432<h2 class="memtitle"><span class="permalink"><a href="#a6dd3d8d22942f0ff3e59b4e32cfd4de3">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO_IMPL</h2>
433
Anthony Barbier06ea0482018-02-22 15:45:35 +0000434<div class="memitem">
435<div class="memproto">
436 <table class="memname">
437 <tr>
438 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO_IMPL</td>
439 <td>(</td>
440 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100441 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000442 <td></td>
443 </tr>
444 </table>
445</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000446<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) \</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 <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(all_zeros, all_ones, a != 0); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_af77145fbdc6b0c8931148f5597d9de53"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">arm_compute::test::validation::select</a></div><div class="ttdeci">CLSelect select</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_select_8cpp_source.xhtml#l00164">Select.cpp:164</a></div></div>
447<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000448</div><!-- fragment -->
449<p>For each element of input vector, the corresponding bits of the result item are set if the input item is non-zero. </p>
450<dl class="params"><dt>Parameters</dt><dd>
451 <table class="params">
452 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
453 </table>
454 </dd>
455</dl>
456<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>
457
Jenkinsb9abeae2018-11-22 11:58:08 +0000458<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 +0000459
460</div>
461</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000462<a id="afc6a76528024472919bb5d50d067578b"></a>
463<h2 class="memtitle"><span class="permalink"><a href="#afc6a76528024472919bb5d50d067578b">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO</h2>
464
Anthony Barbier06ea0482018-02-22 15:45:35 +0000465<div class="memitem">
466<div class="memproto">
467 <table class="memname">
468 <tr>
469 <td class="memname">#define ASYMM_MASK_IF_ZERO</td>
470 <td>(</td>
471 <td class="paramtype">&#160;</td>
472 <td class="paramname">a, </td>
473 </tr>
474 <tr>
475 <td class="paramkey"></td>
476 <td></td>
477 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100478 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000479 </tr>
480 <tr>
481 <td></td>
482 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100483 <td></td><td>&#160;&#160;&#160;asymm_mask_if_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000484 </tr>
485 </table>
486</div><div class="memdoc">
487
Jenkinsb9abeae2018-11-22 11:58:08 +0000488<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 +0000489
490</div>
491</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000492<a id="a8c47a92ec76a1e367b45305c17d9ea88"></a>
493<h2 class="memtitle"><span class="permalink"><a href="#a8c47a92ec76a1e367b45305c17d9ea88">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO_IMPL</h2>
494
Anthony Barbier06ea0482018-02-22 15:45:35 +0000495<div class="memitem">
496<div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">#define ASYMM_MASK_IF_ZERO_IMPL</td>
500 <td>(</td>
501 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100502 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000503 <td></td>
504 </tr>
505 </table>
506</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000507<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) \</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 <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(all_zeros, all_ones, a == 0); \</div><div class="line"> }</div><div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_af77145fbdc6b0c8931148f5597d9de53"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">arm_compute::test::validation::select</a></div><div class="ttdeci">CLSelect select</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_select_8cpp_source.xhtml#l00164">Select.cpp:164</a></div></div>
508<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000509</div><!-- fragment -->
510<p>For each element of input vector, the corresponding bits of the result item are set if the input item is zero. </p>
511<dl class="params"><dt>Parameters</dt><dd>
512 <table class="params">
513 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
514 </table>
515 </dd>
516</dl>
517<dl class="section return"><dt>Returns</dt><dd>Output vector with bits set when corresponding bit in <code>a</code> is zero. </dd></dl>
518
Jenkinsb9abeae2018-11-22 11:58:08 +0000519<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 +0000520
521</div>
522</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000523<a id="a5483aefd5e07244661178bfd3f434448"></a>
524<h2 class="memtitle"><span class="permalink"><a href="#a5483aefd5e07244661178bfd3f434448">&#9670;&nbsp;</a></span>ASYMM_MULT</h2>
525
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000526<div class="memitem">
527<div class="memproto">
528 <table class="memname">
529 <tr>
530 <td class="memname">#define ASYMM_MULT</td>
531 <td>(</td>
532 <td class="paramtype">&#160;</td>
533 <td class="paramname">a, </td>
534 </tr>
535 <tr>
536 <td class="paramkey"></td>
537 <td></td>
538 <td class="paramtype">&#160;</td>
539 <td class="paramname">b, </td>
540 </tr>
541 <tr>
542 <td class="paramkey"></td>
543 <td></td>
544 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100545 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000546 </tr>
547 <tr>
548 <td></td>
549 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100550 <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 +0000551 </tr>
552 </table>
553</div><div class="memdoc">
554
Jenkinsb9abeae2018-11-22 11:58:08 +0000555<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 +0000556
557</div>
558</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000559<a id="a86de0ffca367bfcf27a8ae5dd1fdef2d"></a>
560<h2 class="memtitle"><span class="permalink"><a href="#a86de0ffca367bfcf27a8ae5dd1fdef2d">&#9670;&nbsp;</a></span>ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</h2>
561
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000562<div class="memitem">
563<div class="memproto">
564 <table class="memname">
565 <tr>
566 <td class="memname">#define ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</td>
567 <td>(</td>
568 <td class="paramtype">&#160;</td>
569 <td class="paramname">x, </td>
570 </tr>
571 <tr>
572 <td class="paramkey"></td>
573 <td></td>
574 <td class="paramtype">&#160;</td>
575 <td class="paramname">quantized_multiplier, </td>
576 </tr>
577 <tr>
578 <td class="paramkey"></td>
579 <td></td>
580 <td class="paramtype">&#160;</td>
581 <td class="paramname">right_shift, </td>
582 </tr>
583 <tr>
584 <td class="paramkey"></td>
585 <td></td>
586 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100587 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000588 </tr>
589 <tr>
590 <td></td>
591 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100592 <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 +0000593 </tr>
594 </table>
595</div><div class="memdoc">
596
Jenkinsb9abeae2018-11-22 11:58:08 +0000597<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 +0000598
599</div>
600</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000601<a id="ad4b199221927cbabbf859e4d2efb688d"></a>
602<h2 class="memtitle"><span class="permalink"><a href="#ad4b199221927cbabbf859e4d2efb688d">&#9670;&nbsp;</a></span>ASYMM_MULT_IMPL</h2>
603
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000604<div class="memitem">
605<div class="memproto">
606 <table class="memname">
607 <tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000608 <td class="memname">#define ASYMM_MULT_IMPL</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000609 <td>(</td>
610 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100611 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000612 <td></td>
613 </tr>
614 </table>
615</div><div class="memdoc">
Jenkins4ba87db2019-05-23 17:11:51 +0100616<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, <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#aa76b4a6e74940dabc5b7fc6b2dab3545">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#aa76b4a6e74940dabc5b7fc6b2dab3545">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#aa76b4a6e74940dabc5b7fc6b2dab3545">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 <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(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>
617<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_aa76b4a6e74940dabc5b7fc6b2dab3545"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aa76b4a6e74940dabc5b7fc6b2dab3545">arm_compute::test::validation::b</a></div><div class="ttdeci">SimpleTensor&lt; float &gt; b</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_d_f_t_8cpp_source.xhtml#l00157">DFT.cpp:157</a></div></div>
Jenkins514be652019-02-28 12:25:18 +0000618<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_af77145fbdc6b0c8931148f5597d9de53"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">arm_compute::test::validation::select</a></div><div class="ttdeci">CLSelect select</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_select_8cpp_source.xhtml#l00164">Select.cpp:164</a></div></div>
619<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000620</div><!-- fragment -->
621<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>
622<dl class="params"><dt>Parameters</dt><dd>
623 <table class="params">
624 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
625 </table>
626 </dd>
627</dl>
628<dl class="section return"><dt>Returns</dt><dd>Product of two fixed-point numbers. </dd></dl>
629
Jenkinsb9abeae2018-11-22 11:58:08 +0000630<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 +0000631
632</div>
633</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000634<a id="ae77f34e1316d52c1ee84c35be9efb0d8"></a>
635<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>
636
Anthony Barbier06ea0482018-02-22 15:45:35 +0000637<div class="memitem">
638<div class="memproto">
639 <table class="memname">
640 <tr>
641 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</td>
642 <td>(</td>
643 <td class="paramtype">&#160;</td>
644 <td class="paramname">a, </td>
645 </tr>
646 <tr>
647 <td class="paramkey"></td>
648 <td></td>
649 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100650 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000651 </tr>
652 <tr>
653 <td></td>
654 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100655 <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 +0000656 </tr>
657 </table>
658</div><div class="memdoc">
659
Jenkinsb9abeae2018-11-22 11:58:08 +0000660<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 +0000661
662</div>
663</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000664<a id="a0e53aa5d4cbcec7a0c0085838f32453d"></a>
665<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>
666
Anthony Barbier06ea0482018-02-22 15:45:35 +0000667<div class="memitem">
668<div class="memproto">
669 <table class="memname">
670 <tr>
671 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</td>
672 <td>(</td>
673 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100674 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000675 <td></td>
676 </tr>
677 </table>
678</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000679<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) \</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, 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="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>
Jenkinsb9abeae2018-11-22 11:58:08 +0000680<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>
681<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>
Jenkins514be652019-02-28 12:25:18 +0000682<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000683</div><!-- fragment -->
684<p>Calculates \( 1 / (1 + x) \) for x in (0, 1). </p>
685<dl class="params"><dt>Parameters</dt><dd>
686 <table class="params">
687 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
688 </table>
689 </dd>
690</dl>
691<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
692
Jenkinsb9abeae2018-11-22 11:58:08 +0000693<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 +0000694
695</div>
696</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000697<a id="a98585f1bb84dea90aecbf59785c46151"></a>
698<h2 class="memtitle"><span class="permalink"><a href="#a98585f1bb84dea90aecbf59785c46151">&#9670;&nbsp;</a></span>ASYMM_RESCALE</h2>
699
Anthony Barbier06ea0482018-02-22 15:45:35 +0000700<div class="memitem">
701<div class="memproto">
702 <table class="memname">
703 <tr>
704 <td class="memname">#define ASYMM_RESCALE</td>
705 <td>(</td>
706 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100707 <td class="paramname">value, </td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000708 </tr>
709 <tr>
710 <td class="paramkey"></td>
711 <td></td>
712 <td class="paramtype">&#160;</td>
713 <td class="paramname">src_integer_bits, </td>
714 </tr>
715 <tr>
716 <td class="paramkey"></td>
717 <td></td>
718 <td class="paramtype">&#160;</td>
719 <td class="paramname">dst_integer_bits, </td>
720 </tr>
721 <tr>
722 <td class="paramkey"></td>
723 <td></td>
724 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100725 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000726 </tr>
727 <tr>
728 <td></td>
729 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100730 <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 +0000731 </tr>
732 </table>
733</div><div class="memdoc">
734
Jenkinsb9abeae2018-11-22 11:58:08 +0000735<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 +0000736
737</div>
738</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000739<a id="aace85e2a32bacdaa4e2d2055deabfc57"></a>
740<h2 class="memtitle"><span class="permalink"><a href="#aace85e2a32bacdaa4e2d2055deabfc57">&#9670;&nbsp;</a></span>ASYMM_RESCALE_IMPL</h2>
741
Anthony Barbier06ea0482018-02-22 15:45:35 +0000742<div class="memitem">
743<div class="memproto">
744 <table class="memname">
745 <tr>
746 <td class="memname">#define ASYMM_RESCALE_IMPL</td>
747 <td>(</td>
748 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100749 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000750 <td></td>
751 </tr>
752 </table>
753</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +0000754<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 +0000755<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>
Jenkins514be652019-02-28 12:25:18 +0000756<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000757</div><!-- fragment -->
758<p>Considering the integer value as fixed-point, change the number of integer bits and update value accordingly. </p>
759<dl class="params"><dt>Parameters</dt><dd>
760 <table class="params">
761 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
762 </table>
763 </dd>
764</dl>
765<dl class="section return"><dt>Returns</dt><dd>Rescaled value. </dd></dl>
766
Jenkinsb9abeae2018-11-22 11:58:08 +0000767<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 +0000768
769</div>
770</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000771<a id="aa43fc359dea64362f3016384f4269845"></a>
772<h2 class="memtitle"><span class="permalink"><a href="#aa43fc359dea64362f3016384f4269845">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2</h2>
773
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000774<div class="memitem">
775<div class="memproto">
776 <table class="memname">
777 <tr>
778 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2</td>
779 <td>(</td>
780 <td class="paramtype">&#160;</td>
781 <td class="paramname">x, </td>
782 </tr>
783 <tr>
784 <td class="paramkey"></td>
785 <td></td>
786 <td class="paramtype">&#160;</td>
787 <td class="paramname">exponent, </td>
788 </tr>
789 <tr>
790 <td class="paramkey"></td>
791 <td></td>
792 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100793 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000794 </tr>
795 <tr>
796 <td></td>
797 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100798 <td></td><td>&#160;&#160;&#160;asymm_rounding_divide_by_POW2_##size(x, exponent)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000799 </tr>
800 </table>
801</div><div class="memdoc">
802
Jenkinsb9abeae2018-11-22 11:58:08 +0000803<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 +0000804
805</div>
806</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000807<a id="abf75e242631b23007e4046682aa57ec5"></a>
808<h2 class="memtitle"><span class="permalink"><a href="#abf75e242631b23007e4046682aa57ec5">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</h2>
809
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000810<div class="memitem">
811<div class="memproto">
812 <table class="memname">
813 <tr>
814 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</td>
815 <td>(</td>
816 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100817 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000818 <td></td>
819 </tr>
820 </table>
821</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000822<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) + <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(zero, one, x &lt; 0); \</div><div class="line"> return (x &gt;&gt; exponent) + <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(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_xhtml_af77145fbdc6b0c8931148f5597d9de53"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">arm_compute::test::validation::select</a></div><div class="ttdeci">CLSelect select</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_select_8cpp_source.xhtml#l00164">Select.cpp:164</a></div></div>
823<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>
824<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000825</div><!-- fragment -->
826<p>Correctly-rounded-to-nearest division by a power-of-two. </p>
827<dl class="params"><dt>Parameters</dt><dd>
828 <table class="params">
829 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
830 </table>
831 </dd>
832</dl>
833<dl class="section return"><dt>Returns</dt><dd>Correctly-rounded-to-nearest division by a power-of-two. </dd></dl>
834
Jenkinsb9abeae2018-11-22 11:58:08 +0000835<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 +0000836
837</div>
838</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000839<a id="ad47fa44c1566aa4678fe524478490612"></a>
840<h2 class="memtitle"><span class="permalink"><a href="#ad47fa44c1566aa4678fe524478490612">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM</h2>
841
Anthony Barbier06ea0482018-02-22 15:45:35 +0000842<div class="memitem">
843<div class="memproto">
844 <table class="memname">
845 <tr>
846 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM</td>
847 <td>(</td>
848 <td class="paramtype">&#160;</td>
849 <td class="paramname">a, </td>
850 </tr>
851 <tr>
852 <td class="paramkey"></td>
853 <td></td>
854 <td class="paramtype">&#160;</td>
855 <td class="paramname">b, </td>
856 </tr>
857 <tr>
858 <td class="paramkey"></td>
859 <td></td>
860 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100861 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000862 </tr>
863 <tr>
864 <td></td>
865 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100866 <td></td><td>&#160;&#160;&#160;asymm_rounding_half_sum##size(a, b)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000867 </tr>
868 </table>
869</div><div class="memdoc">
870
Jenkinsb9abeae2018-11-22 11:58:08 +0000871<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 +0000872
873</div>
874</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000875<a id="a8d97c6698c0e44424deae3f3130c55ac"></a>
876<h2 class="memtitle"><span class="permalink"><a href="#a8d97c6698c0e44424deae3f3130c55ac">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM_IMPL</h2>
877
Anthony Barbier06ea0482018-02-22 15:45:35 +0000878<div class="memitem">
879<div class="memproto">
880 <table class="memname">
881 <tr>
882 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM_IMPL</td>
883 <td>(</td>
884 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100885 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000886 <td></td>
887 </tr>
888 </table>
889</div><div class="memdoc">
Jenkins4ba87db2019-05-23 17:11:51 +0100890<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, <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#aa76b4a6e74940dabc5b7fc6b2dab3545">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#aa76b4a6e74940dabc5b7fc6b2dab3545">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 = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">select</a>(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_aa76b4a6e74940dabc5b7fc6b2dab3545"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#aa76b4a6e74940dabc5b7fc6b2dab3545">arm_compute::test::validation::b</a></div><div class="ttdeci">SimpleTensor&lt; float &gt; b</div><div class="ttdef"><b>Definition:</b> <a href="_c_p_p_2_d_f_t_8cpp_source.xhtml#l00157">DFT.cpp:157</a></div></div>
891<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>
Jenkins514be652019-02-28 12:25:18 +0000892<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_af77145fbdc6b0c8931148f5597d9de53"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#af77145fbdc6b0c8931148f5597d9de53">arm_compute::test::validation::select</a></div><div class="ttdeci">CLSelect select</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_select_8cpp_source.xhtml#l00164">Select.cpp:164</a></div></div>
893<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000894</div><!-- fragment -->
895<p>Calculates (a+b)/2, rounded to the nearest integer. </p>
896<p>Equivalent to VRHADD in the ARM NEON instruction set.</p>
897<dl class="params"><dt>Parameters</dt><dd>
898 <table class="params">
899 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
900 </table>
901 </dd>
902</dl>
903<dl class="section return"><dt>Returns</dt><dd>(a+b)/2, rounded to the nearest integer. </dd></dl>
904
Jenkinsb9abeae2018-11-22 11:58:08 +0000905<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 +0000906
907</div>
908</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000909<a id="a4cc3ff3a2eeb5f5e9d6743e08f632928"></a>
910<h2 class="memtitle"><span class="permalink"><a href="#a4cc3ff3a2eeb5f5e9d6743e08f632928">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</h2>
911
Anthony Barbier06ea0482018-02-22 15:45:35 +0000912<div class="memitem">
913<div class="memproto">
914 <table class="memname">
915 <tr>
916 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</td>
917 <td>(</td>
918 <td class="paramtype">&#160;</td>
919 <td class="paramname">x, </td>
920 </tr>
921 <tr>
922 <td class="paramkey"></td>
923 <td></td>
924 <td class="paramtype">&#160;</td>
925 <td class="paramname">exponent, </td>
926 </tr>
927 <tr>
928 <td class="paramkey"></td>
929 <td></td>
930 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100931 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000932 </tr>
933 <tr>
934 <td></td>
935 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100936 <td></td><td>&#160;&#160;&#160;asymm_saturating_rounding_mult_by_pow2##size(x, exponent)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000937 </tr>
938 </table>
939</div><div class="memdoc">
940
Jenkinsb9abeae2018-11-22 11:58:08 +0000941<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 +0000942
943</div>
944</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000945<a id="a737312bc4a68c79a77cfab4849793bc0"></a>
946<h2 class="memtitle"><span class="permalink"><a href="#a737312bc4a68c79a77cfab4849793bc0">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</h2>
947
Anthony Barbier06ea0482018-02-22 15:45:35 +0000948<div class="memitem">
949<div class="memproto">
950 <table class="memname">
951 <tr>
952 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</td>
953 <td>(</td>
954 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100955 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000956 <td></td>
957 </tr>
958 </table>
959</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000960<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; <a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, 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; -<a class="code" href="namespacearm__compute_1_1test_1_1validation_1_1reference.xhtml#a6cae310822a46019ba25a00ddb0f7e62">threshold</a>, 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>
Jenkinsb9abeae2018-11-22 11:58:08 +0000961<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>
962<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>
963<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>
Jenkins514be652019-02-28 12:25:18 +0000964<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000965</div><!-- fragment -->
966<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>
967<dl class="params"><dt>Parameters</dt><dd>
968 <table class="params">
969 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
970 </table>
971 </dd>
972</dl>
973<dl class="section return"><dt>Returns</dt><dd>Arithmetic left or right shift. </dd></dl>
974
Jenkinsb9abeae2018-11-22 11:58:08 +0000975<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 +0000976
977</div>
978</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000979<a id="a9bc08a8c1833c5e6055ad6665e3ccf12"></a>
980<h2 class="memtitle"><span class="permalink"><a href="#a9bc08a8c1833c5e6055ad6665e3ccf12">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK</h2>
981
Anthony Barbier06ea0482018-02-22 15:45:35 +0000982<div class="memitem">
983<div class="memproto">
984 <table class="memname">
985 <tr>
986 <td class="memname">#define ASYMM_SELECT_USING_MASK</td>
987 <td>(</td>
988 <td class="paramtype">&#160;</td>
989 <td class="paramname">if_mask, </td>
990 </tr>
991 <tr>
992 <td class="paramkey"></td>
993 <td></td>
994 <td class="paramtype">&#160;</td>
995 <td class="paramname">then_val, </td>
996 </tr>
997 <tr>
998 <td class="paramkey"></td>
999 <td></td>
1000 <td class="paramtype">&#160;</td>
1001 <td class="paramname">else_val, </td>
1002 </tr>
1003 <tr>
1004 <td class="paramkey"></td>
1005 <td></td>
1006 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001007 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001008 </tr>
1009 <tr>
1010 <td></td>
1011 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001012 <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 +00001013 </tr>
1014 </table>
1015</div><div class="memdoc">
1016
Jenkinsb9abeae2018-11-22 11:58:08 +00001017<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 +00001018
1019</div>
1020</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001021<a id="ab0b4069b25ac886d5cb6eb3b76473f88"></a>
1022<h2 class="memtitle"><span class="permalink"><a href="#ab0b4069b25ac886d5cb6eb3b76473f88">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK_IMPL</h2>
1023
Anthony Barbier06ea0482018-02-22 15:45:35 +00001024<div class="memitem">
1025<div class="memproto">
1026 <table class="memname">
1027 <tr>
1028 <td class="memname">#define ASYMM_SELECT_USING_MASK_IMPL</td>
1029 <td>(</td>
1030 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001031 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001032 <td></td>
1033 </tr>
1034 </table>
1035</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +00001036<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001037</div><!-- fragment -->
1038<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>
1039<p>Equivalent to the VBSL instruction in ARM NEON.</p>
1040<dl class="params"><dt>Parameters</dt><dd>
1041 <table class="params">
1042 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1043 </table>
1044 </dd>
1045</dl>
1046<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>
1047
Jenkinsb9abeae2018-11-22 11:58:08 +00001048<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 +00001049
1050</div>
1051</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001052<a id="ace9ecff421cf885ad2c2d72d87c492cb"></a>
1053<h2 class="memtitle"><span class="permalink"><a href="#ace9ecff421cf885ad2c2d72d87c492cb">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER</h2>
1054
Anthony Barbier06ea0482018-02-22 15:45:35 +00001055<div class="memitem">
1056<div class="memproto">
1057 <table class="memname">
1058 <tr>
1059 <td class="memname">#define EXP_BARREL_SHIFTER</td>
1060 <td>(</td>
1061 <td class="paramtype">&#160;</td>
1062 <td class="paramname">result, </td>
1063 </tr>
1064 <tr>
1065 <td class="paramkey"></td>
1066 <td></td>
1067 <td class="paramtype">&#160;</td>
1068 <td class="paramname">exponent, </td>
1069 </tr>
1070 <tr>
1071 <td class="paramkey"></td>
1072 <td></td>
1073 <td class="paramtype">&#160;</td>
1074 <td class="paramname">fp_multiplier, </td>
1075 </tr>
1076 <tr>
1077 <td class="paramkey"></td>
1078 <td></td>
1079 <td class="paramtype">&#160;</td>
1080 <td class="paramname">k_integer_bits, </td>
1081 </tr>
1082 <tr>
1083 <td class="paramkey"></td>
1084 <td></td>
1085 <td class="paramtype">&#160;</td>
1086 <td class="paramname">k_fractional_bits, </td>
1087 </tr>
1088 <tr>
1089 <td class="paramkey"></td>
1090 <td></td>
1091 <td class="paramtype">&#160;</td>
1092 <td class="paramname">remainder, </td>
1093 </tr>
1094 <tr>
1095 <td class="paramkey"></td>
1096 <td></td>
1097 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001098 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001099 </tr>
1100 <tr>
1101 <td></td>
1102 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001103 <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 +00001104 </tr>
1105 </table>
1106</div><div class="memdoc">
1107
Jenkinsb9abeae2018-11-22 11:58:08 +00001108<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 +00001109
1110</div>
1111</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001112<a id="aa12ca21cb9a54d2e4c26d57303fe44a7"></a>
1113<h2 class="memtitle"><span class="permalink"><a href="#aa12ca21cb9a54d2e4c26d57303fe44a7">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER_IMPL</h2>
1114
Anthony Barbier06ea0482018-02-22 15:45:35 +00001115<div class="memitem">
1116<div class="memproto">
1117 <table class="memname">
1118 <tr>
1119 <td class="memname">#define EXP_BARREL_SHIFTER_IMPL</td>
1120 <td>(</td>
1121 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001122 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001123 <td></td>
1124 </tr>
1125 </table>
1126</div><div class="memdoc">
Jenkinsb9abeae2018-11-22 11:58:08 +00001127<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>
1128<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>
1129<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>
Jenkins514be652019-02-28 12:25:18 +00001130<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#l00057">helpers.h:57</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001131</div><!-- fragment -->
Jenkinsb9abeae2018-11-22 11:58:08 +00001132<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 +00001133
1134</div>
1135</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001136<h2 class="groupheader">Function Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00001137<a id="a1d51b02a83af2a152fa52755f572f5a6"></a>
1138<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>
1139
Anthony Barbier06ea0482018-02-22 15:45:35 +00001140<div class="memitem">
1141<div class="memproto">
1142<table class="mlabels">
1143 <tr>
1144 <td class="mlabels-left">
1145 <table class="memname">
1146 <tr>
1147 <td class="memname">int16 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16 </td>
1148 <td>(</td>
1149 <td class="paramtype">int16&#160;</td>
1150 <td class="paramname"><em>a</em></td><td>)</td>
1151 <td></td>
1152 </tr>
1153 </table>
1154 </td>
1155 <td class="mlabels-right">
1156<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1157 </tr>
1158</table>
1159</div><div class="memdoc">
1160
Jenkinsb9abeae2018-11-22 11:58:08 +00001161<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 +00001162
1163</div>
1164</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001165<a id="a8eb88d417247a1b8b8929e5c8faeb48d"></a>
1166<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>
1167
Anthony Barbier06ea0482018-02-22 15:45:35 +00001168<div class="memitem">
1169<div class="memproto">
1170<table class="mlabels">
1171 <tr>
1172 <td class="mlabels-left">
1173 <table class="memname">
1174 <tr>
1175 <td class="memname">int2 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2 </td>
1176 <td>(</td>
1177 <td class="paramtype">int2&#160;</td>
1178 <td class="paramname"><em>a</em></td><td>)</td>
1179 <td></td>
1180 </tr>
1181 </table>
1182 </td>
1183 <td class="mlabels-right">
1184<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1185 </tr>
1186</table>
1187</div><div class="memdoc">
1188
Jenkinsb9abeae2018-11-22 11:58:08 +00001189<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 +00001190
1191</div>
1192</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001193<a id="a43aa0011bd9b23ce3f691a9ae205fe07"></a>
1194<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>
1195
Anthony Barbier06ea0482018-02-22 15:45:35 +00001196<div class="memitem">
1197<div class="memproto">
1198<table class="mlabels">
1199 <tr>
1200 <td class="mlabels-left">
1201 <table class="memname">
1202 <tr>
1203 <td class="memname">int4 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4 </td>
1204 <td>(</td>
1205 <td class="paramtype">int4&#160;</td>
1206 <td class="paramname"><em>a</em></td><td>)</td>
1207 <td></td>
1208 </tr>
1209 </table>
1210 </td>
1211 <td class="mlabels-right">
1212<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1213 </tr>
1214</table>
1215</div><div class="memdoc">
1216
Jenkinsb9abeae2018-11-22 11:58:08 +00001217<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 +00001218
1219</div>
1220</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001221<a id="accb6ee0e0c578704ae23e6ab0a57cdd0"></a>
1222<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>
1223
Anthony Barbier06ea0482018-02-22 15:45:35 +00001224<div class="memitem">
1225<div class="memproto">
1226<table class="mlabels">
1227 <tr>
1228 <td class="mlabels-left">
1229 <table class="memname">
1230 <tr>
1231 <td class="memname">int8 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8 </td>
1232 <td>(</td>
1233 <td class="paramtype">int8&#160;</td>
1234 <td class="paramname"><em>a</em></td><td>)</td>
1235 <td></td>
1236 </tr>
1237 </table>
1238 </td>
1239 <td class="mlabels-right">
1240<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1241 </tr>
1242</table>
1243</div><div class="memdoc">
1244
Jenkinsb9abeae2018-11-22 11:58:08 +00001245<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 +00001246
1247</div>
1248</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001249<a id="ae13cfab30e1d4c5f797f9d3d7c6acacf"></a>
1250<h2 class="memtitle"><span class="permalink"><a href="#ae13cfab30e1d4c5f797f9d3d7c6acacf">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values16()</h2>
1251
Anthony Barbier06ea0482018-02-22 15:45:35 +00001252<div class="memitem">
1253<div class="memproto">
1254<table class="mlabels">
1255 <tr>
1256 <td class="mlabels-left">
1257 <table class="memname">
1258 <tr>
1259 <td class="memname">int16 asymm_exp_on_negative_values16 </td>
1260 <td>(</td>
1261 <td class="paramtype">int16&#160;</td>
1262 <td class="paramname"><em>a</em>, </td>
1263 </tr>
1264 <tr>
1265 <td class="paramkey"></td>
1266 <td></td>
1267 <td class="paramtype">int&#160;</td>
1268 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1269 </tr>
1270 <tr>
1271 <td></td>
1272 <td>)</td>
1273 <td></td><td></td>
1274 </tr>
1275 </table>
1276 </td>
1277 <td class="mlabels-right">
1278<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1279 </tr>
1280</table>
1281</div><div class="memdoc">
1282
Jenkinsb9abeae2018-11-22 11:58:08 +00001283<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 +00001284
1285</div>
1286</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001287<a id="a35b98dc80eefc6ce799720861a668691"></a>
1288<h2 class="memtitle"><span class="permalink"><a href="#a35b98dc80eefc6ce799720861a668691">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values2()</h2>
1289
Anthony Barbier06ea0482018-02-22 15:45:35 +00001290<div class="memitem">
1291<div class="memproto">
1292<table class="mlabels">
1293 <tr>
1294 <td class="mlabels-left">
1295 <table class="memname">
1296 <tr>
1297 <td class="memname">int2 asymm_exp_on_negative_values2 </td>
1298 <td>(</td>
1299 <td class="paramtype">int2&#160;</td>
1300 <td class="paramname"><em>a</em>, </td>
1301 </tr>
1302 <tr>
1303 <td class="paramkey"></td>
1304 <td></td>
1305 <td class="paramtype">int&#160;</td>
1306 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1307 </tr>
1308 <tr>
1309 <td></td>
1310 <td>)</td>
1311 <td></td><td></td>
1312 </tr>
1313 </table>
1314 </td>
1315 <td class="mlabels-right">
1316<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1317 </tr>
1318</table>
1319</div><div class="memdoc">
1320
Jenkinsb9abeae2018-11-22 11:58:08 +00001321<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 +00001322
1323</div>
1324</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001325<a id="aa1dda459c2b10a9620b2c14a928ed4ba"></a>
1326<h2 class="memtitle"><span class="permalink"><a href="#aa1dda459c2b10a9620b2c14a928ed4ba">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values4()</h2>
1327
Anthony Barbier06ea0482018-02-22 15:45:35 +00001328<div class="memitem">
1329<div class="memproto">
1330<table class="mlabels">
1331 <tr>
1332 <td class="mlabels-left">
1333 <table class="memname">
1334 <tr>
1335 <td class="memname">int4 asymm_exp_on_negative_values4 </td>
1336 <td>(</td>
1337 <td class="paramtype">int4&#160;</td>
1338 <td class="paramname"><em>a</em>, </td>
1339 </tr>
1340 <tr>
1341 <td class="paramkey"></td>
1342 <td></td>
1343 <td class="paramtype">int&#160;</td>
1344 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1345 </tr>
1346 <tr>
1347 <td></td>
1348 <td>)</td>
1349 <td></td><td></td>
1350 </tr>
1351 </table>
1352 </td>
1353 <td class="mlabels-right">
1354<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1355 </tr>
1356</table>
1357</div><div class="memdoc">
1358
Jenkinsb9abeae2018-11-22 11:58:08 +00001359<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 +00001360
1361</div>
1362</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001363<a id="a429f20ad96413c1f7d4ee968afed6f0d"></a>
1364<h2 class="memtitle"><span class="permalink"><a href="#a429f20ad96413c1f7d4ee968afed6f0d">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values8()</h2>
1365
Anthony Barbier06ea0482018-02-22 15:45:35 +00001366<div class="memitem">
1367<div class="memproto">
1368<table class="mlabels">
1369 <tr>
1370 <td class="mlabels-left">
1371 <table class="memname">
1372 <tr>
1373 <td class="memname">int8 asymm_exp_on_negative_values8 </td>
1374 <td>(</td>
1375 <td class="paramtype">int8&#160;</td>
1376 <td class="paramname"><em>a</em>, </td>
1377 </tr>
1378 <tr>
1379 <td class="paramkey"></td>
1380 <td></td>
1381 <td class="paramtype">int&#160;</td>
1382 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1383 </tr>
1384 <tr>
1385 <td></td>
1386 <td>)</td>
1387 <td></td><td></td>
1388 </tr>
1389 </table>
1390 </td>
1391 <td class="mlabels-right">
1392<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1393 </tr>
1394</table>
1395</div><div class="memdoc">
1396
Jenkinsb9abeae2018-11-22 11:58:08 +00001397<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 +00001398
1399</div>
1400</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001401<a id="a1e1fef1353d2458beb7fab06cc8f460e"></a>
1402<h2 class="memtitle"><span class="permalink"><a href="#a1e1fef1353d2458beb7fab06cc8f460e">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero16()</h2>
1403
Anthony Barbier06ea0482018-02-22 15:45:35 +00001404<div class="memitem">
1405<div class="memproto">
1406<table class="mlabels">
1407 <tr>
1408 <td class="mlabels-left">
1409 <table class="memname">
1410 <tr>
1411 <td class="memname">int16 asymm_mask_if_non_zero16 </td>
1412 <td>(</td>
1413 <td class="paramtype">int16&#160;</td>
1414 <td class="paramname"><em>a</em></td><td>)</td>
1415 <td></td>
1416 </tr>
1417 </table>
1418 </td>
1419 <td class="mlabels-right">
1420<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1421 </tr>
1422</table>
1423</div><div class="memdoc">
1424
Jenkinsb9abeae2018-11-22 11:58:08 +00001425<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 +00001426
1427</div>
1428</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001429<a id="a885a16f240b119acc9f0721c07acdce9"></a>
1430<h2 class="memtitle"><span class="permalink"><a href="#a885a16f240b119acc9f0721c07acdce9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero2()</h2>
1431
Anthony Barbier06ea0482018-02-22 15:45:35 +00001432<div class="memitem">
1433<div class="memproto">
1434<table class="mlabels">
1435 <tr>
1436 <td class="mlabels-left">
1437 <table class="memname">
1438 <tr>
1439 <td class="memname">int2 asymm_mask_if_non_zero2 </td>
1440 <td>(</td>
1441 <td class="paramtype">int2&#160;</td>
1442 <td class="paramname"><em>a</em></td><td>)</td>
1443 <td></td>
1444 </tr>
1445 </table>
1446 </td>
1447 <td class="mlabels-right">
1448<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1449 </tr>
1450</table>
1451</div><div class="memdoc">
1452
Jenkinsb9abeae2018-11-22 11:58:08 +00001453<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 +00001454
1455</div>
1456</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001457<a id="a2f180955030087d7538d5dc89f29eba9"></a>
1458<h2 class="memtitle"><span class="permalink"><a href="#a2f180955030087d7538d5dc89f29eba9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero4()</h2>
1459
Anthony Barbier06ea0482018-02-22 15:45:35 +00001460<div class="memitem">
1461<div class="memproto">
1462<table class="mlabels">
1463 <tr>
1464 <td class="mlabels-left">
1465 <table class="memname">
1466 <tr>
1467 <td class="memname">int4 asymm_mask_if_non_zero4 </td>
1468 <td>(</td>
1469 <td class="paramtype">int4&#160;</td>
1470 <td class="paramname"><em>a</em></td><td>)</td>
1471 <td></td>
1472 </tr>
1473 </table>
1474 </td>
1475 <td class="mlabels-right">
1476<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1477 </tr>
1478</table>
1479</div><div class="memdoc">
1480
Jenkinsb9abeae2018-11-22 11:58:08 +00001481<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 +00001482
1483</div>
1484</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001485<a id="a8de81d453a39d0f589b0d3e007c7fde1"></a>
1486<h2 class="memtitle"><span class="permalink"><a href="#a8de81d453a39d0f589b0d3e007c7fde1">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero8()</h2>
1487
Anthony Barbier06ea0482018-02-22 15:45:35 +00001488<div class="memitem">
1489<div class="memproto">
1490<table class="mlabels">
1491 <tr>
1492 <td class="mlabels-left">
1493 <table class="memname">
1494 <tr>
1495 <td class="memname">int8 asymm_mask_if_non_zero8 </td>
1496 <td>(</td>
1497 <td class="paramtype">int8&#160;</td>
1498 <td class="paramname"><em>a</em></td><td>)</td>
1499 <td></td>
1500 </tr>
1501 </table>
1502 </td>
1503 <td class="mlabels-right">
1504<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1505 </tr>
1506</table>
1507</div><div class="memdoc">
1508
Jenkinsb9abeae2018-11-22 11:58:08 +00001509<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 +00001510
1511</div>
1512</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001513<a id="a509916b7ee582d87faf1312fde111c3b"></a>
1514<h2 class="memtitle"><span class="permalink"><a href="#a509916b7ee582d87faf1312fde111c3b">&#9670;&nbsp;</a></span>asymm_mask_if_zero16()</h2>
1515
Anthony Barbier06ea0482018-02-22 15:45:35 +00001516<div class="memitem">
1517<div class="memproto">
1518<table class="mlabels">
1519 <tr>
1520 <td class="mlabels-left">
1521 <table class="memname">
1522 <tr>
1523 <td class="memname">int16 asymm_mask_if_zero16 </td>
1524 <td>(</td>
1525 <td class="paramtype">int16&#160;</td>
1526 <td class="paramname"><em>a</em></td><td>)</td>
1527 <td></td>
1528 </tr>
1529 </table>
1530 </td>
1531 <td class="mlabels-right">
1532<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1533 </tr>
1534</table>
1535</div><div class="memdoc">
1536
Jenkinsb9abeae2018-11-22 11:58:08 +00001537<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 +00001538
1539</div>
1540</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001541<a id="a6ed499c821cf4f6b3bc4049d49e35139"></a>
1542<h2 class="memtitle"><span class="permalink"><a href="#a6ed499c821cf4f6b3bc4049d49e35139">&#9670;&nbsp;</a></span>asymm_mask_if_zero2()</h2>
1543
Anthony Barbier06ea0482018-02-22 15:45:35 +00001544<div class="memitem">
1545<div class="memproto">
1546<table class="mlabels">
1547 <tr>
1548 <td class="mlabels-left">
1549 <table class="memname">
1550 <tr>
1551 <td class="memname">int2 asymm_mask_if_zero2 </td>
1552 <td>(</td>
1553 <td class="paramtype">int2&#160;</td>
1554 <td class="paramname"><em>a</em></td><td>)</td>
1555 <td></td>
1556 </tr>
1557 </table>
1558 </td>
1559 <td class="mlabels-right">
1560<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1561 </tr>
1562</table>
1563</div><div class="memdoc">
1564
Jenkinsb9abeae2018-11-22 11:58:08 +00001565<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 +00001566
1567</div>
1568</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001569<a id="aed95c68d9545d401d2323cd8ad287fe1"></a>
1570<h2 class="memtitle"><span class="permalink"><a href="#aed95c68d9545d401d2323cd8ad287fe1">&#9670;&nbsp;</a></span>asymm_mask_if_zero4()</h2>
1571
Anthony Barbier06ea0482018-02-22 15:45:35 +00001572<div class="memitem">
1573<div class="memproto">
1574<table class="mlabels">
1575 <tr>
1576 <td class="mlabels-left">
1577 <table class="memname">
1578 <tr>
1579 <td class="memname">int4 asymm_mask_if_zero4 </td>
1580 <td>(</td>
1581 <td class="paramtype">int4&#160;</td>
1582 <td class="paramname"><em>a</em></td><td>)</td>
1583 <td></td>
1584 </tr>
1585 </table>
1586 </td>
1587 <td class="mlabels-right">
1588<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1589 </tr>
1590</table>
1591</div><div class="memdoc">
1592
Jenkinsb9abeae2018-11-22 11:58:08 +00001593<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 +00001594
1595</div>
1596</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001597<a id="abefb0a278a588f03dc561db900df0958"></a>
1598<h2 class="memtitle"><span class="permalink"><a href="#abefb0a278a588f03dc561db900df0958">&#9670;&nbsp;</a></span>asymm_mask_if_zero8()</h2>
1599
Anthony Barbier06ea0482018-02-22 15:45:35 +00001600<div class="memitem">
1601<div class="memproto">
1602<table class="mlabels">
1603 <tr>
1604 <td class="mlabels-left">
1605 <table class="memname">
1606 <tr>
1607 <td class="memname">int8 asymm_mask_if_zero8 </td>
1608 <td>(</td>
1609 <td class="paramtype">int8&#160;</td>
1610 <td class="paramname"><em>a</em></td><td>)</td>
1611 <td></td>
1612 </tr>
1613 </table>
1614 </td>
1615 <td class="mlabels-right">
1616<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1617 </tr>
1618</table>
1619</div><div class="memdoc">
1620
Jenkinsb9abeae2018-11-22 11:58:08 +00001621<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 +00001622
1623</div>
1624</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001625<a id="aef32e3a9c804f145deb6b88f0a444919"></a>
1626<h2 class="memtitle"><span class="permalink"><a href="#aef32e3a9c804f145deb6b88f0a444919">&#9670;&nbsp;</a></span>asymm_mult16()</h2>
1627
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001628<div class="memitem">
1629<div class="memproto">
1630<table class="mlabels">
1631 <tr>
1632 <td class="mlabels-left">
1633 <table class="memname">
1634 <tr>
1635 <td class="memname">int16 asymm_mult16 </td>
1636 <td>(</td>
1637 <td class="paramtype">int16&#160;</td>
1638 <td class="paramname"><em>a</em>, </td>
1639 </tr>
1640 <tr>
1641 <td class="paramkey"></td>
1642 <td></td>
1643 <td class="paramtype">int16&#160;</td>
1644 <td class="paramname"><em>b</em>&#160;</td>
1645 </tr>
1646 <tr>
1647 <td></td>
1648 <td>)</td>
1649 <td></td><td></td>
1650 </tr>
1651 </table>
1652 </td>
1653 <td class="mlabels-right">
1654<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1655 </tr>
1656</table>
1657</div><div class="memdoc">
1658
Jenkinsb9abeae2018-11-22 11:58:08 +00001659<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 +00001660
1661</div>
1662</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001663<a id="a5038b78913b76d782cc0aa0d841bd7ed"></a>
1664<h2 class="memtitle"><span class="permalink"><a href="#a5038b78913b76d782cc0aa0d841bd7ed">&#9670;&nbsp;</a></span>asymm_mult2()</h2>
1665
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001666<div class="memitem">
1667<div class="memproto">
1668<table class="mlabels">
1669 <tr>
1670 <td class="mlabels-left">
1671 <table class="memname">
1672 <tr>
1673 <td class="memname">int2 asymm_mult2 </td>
1674 <td>(</td>
1675 <td class="paramtype">int2&#160;</td>
1676 <td class="paramname"><em>a</em>, </td>
1677 </tr>
1678 <tr>
1679 <td class="paramkey"></td>
1680 <td></td>
1681 <td class="paramtype">int2&#160;</td>
1682 <td class="paramname"><em>b</em>&#160;</td>
1683 </tr>
1684 <tr>
1685 <td></td>
1686 <td>)</td>
1687 <td></td><td></td>
1688 </tr>
1689 </table>
1690 </td>
1691 <td class="mlabels-right">
1692<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1693 </tr>
1694</table>
1695</div><div class="memdoc">
1696
Jenkinsb9abeae2018-11-22 11:58:08 +00001697<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 +00001698
1699</div>
1700</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001701<a id="a6dca28649388d59ec0281af70d4507b2"></a>
1702<h2 class="memtitle"><span class="permalink"><a href="#a6dca28649388d59ec0281af70d4507b2">&#9670;&nbsp;</a></span>asymm_mult4()</h2>
1703
Anthony Barbier06ea0482018-02-22 15:45:35 +00001704<div class="memitem">
1705<div class="memproto">
1706<table class="mlabels">
1707 <tr>
1708 <td class="mlabels-left">
1709 <table class="memname">
1710 <tr>
1711 <td class="memname">int4 asymm_mult4 </td>
1712 <td>(</td>
1713 <td class="paramtype">int4&#160;</td>
1714 <td class="paramname"><em>a</em>, </td>
1715 </tr>
1716 <tr>
1717 <td class="paramkey"></td>
1718 <td></td>
1719 <td class="paramtype">int4&#160;</td>
1720 <td class="paramname"><em>b</em>&#160;</td>
1721 </tr>
1722 <tr>
1723 <td></td>
1724 <td>)</td>
1725 <td></td><td></td>
1726 </tr>
1727 </table>
1728 </td>
1729 <td class="mlabels-right">
1730<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1731 </tr>
1732</table>
1733</div><div class="memdoc">
1734
Jenkinsb9abeae2018-11-22 11:58:08 +00001735<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 +00001736
1737</div>
1738</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001739<a id="a165b0bbab841712ea2c9a17a09bfa166"></a>
1740<h2 class="memtitle"><span class="permalink"><a href="#a165b0bbab841712ea2c9a17a09bfa166">&#9670;&nbsp;</a></span>asymm_mult8()</h2>
1741
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001742<div class="memitem">
1743<div class="memproto">
1744<table class="mlabels">
1745 <tr>
1746 <td class="mlabels-left">
1747 <table class="memname">
1748 <tr>
1749 <td class="memname">int8 asymm_mult8 </td>
1750 <td>(</td>
1751 <td class="paramtype">int8&#160;</td>
1752 <td class="paramname"><em>a</em>, </td>
1753 </tr>
1754 <tr>
1755 <td class="paramkey"></td>
1756 <td></td>
1757 <td class="paramtype">int8&#160;</td>
1758 <td class="paramname"><em>b</em>&#160;</td>
1759 </tr>
1760 <tr>
1761 <td></td>
1762 <td>)</td>
1763 <td></td><td></td>
1764 </tr>
1765 </table>
1766 </td>
1767 <td class="mlabels-right">
1768<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1769 </tr>
1770</table>
1771</div><div class="memdoc">
1772
Jenkinsb9abeae2018-11-22 11:58:08 +00001773<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 +00001774
1775</div>
1776</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001777<a id="ac3316120c01b6c993ac8f2d3f2b4ff03"></a>
1778<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>
1779
Anthony Barbier06ea0482018-02-22 15:45:35 +00001780<div class="memitem">
1781<div class="memproto">
1782<table class="mlabels">
1783 <tr>
1784 <td class="mlabels-left">
1785 <table class="memname">
1786 <tr>
1787 <td class="memname">int16 asymm_one_over_one_plus_x_for_x_in_0_116 </td>
1788 <td>(</td>
1789 <td class="paramtype">int16&#160;</td>
1790 <td class="paramname"><em>a</em></td><td>)</td>
1791 <td></td>
1792 </tr>
1793 </table>
1794 </td>
1795 <td class="mlabels-right">
1796<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1797 </tr>
1798</table>
1799</div><div class="memdoc">
1800
Jenkinsb9abeae2018-11-22 11:58:08 +00001801<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 +00001802
1803</div>
1804</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001805<a id="a6524f601cf9a2ae69d5eab74576c93d0"></a>
1806<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>
1807
Anthony Barbier06ea0482018-02-22 15:45:35 +00001808<div class="memitem">
1809<div class="memproto">
1810<table class="mlabels">
1811 <tr>
1812 <td class="mlabels-left">
1813 <table class="memname">
1814 <tr>
1815 <td class="memname">int2 asymm_one_over_one_plus_x_for_x_in_0_12 </td>
1816 <td>(</td>
1817 <td class="paramtype">int2&#160;</td>
1818 <td class="paramname"><em>a</em></td><td>)</td>
1819 <td></td>
1820 </tr>
1821 </table>
1822 </td>
1823 <td class="mlabels-right">
1824<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1825 </tr>
1826</table>
1827</div><div class="memdoc">
1828
Jenkinsb9abeae2018-11-22 11:58:08 +00001829<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 +00001830
1831</div>
1832</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001833<a id="a049439083adb7b960079832ad6367389"></a>
1834<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>
1835
Anthony Barbier06ea0482018-02-22 15:45:35 +00001836<div class="memitem">
1837<div class="memproto">
1838<table class="mlabels">
1839 <tr>
1840 <td class="mlabels-left">
1841 <table class="memname">
1842 <tr>
1843 <td class="memname">int4 asymm_one_over_one_plus_x_for_x_in_0_14 </td>
1844 <td>(</td>
1845 <td class="paramtype">int4&#160;</td>
1846 <td class="paramname"><em>a</em></td><td>)</td>
1847 <td></td>
1848 </tr>
1849 </table>
1850 </td>
1851 <td class="mlabels-right">
1852<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1853 </tr>
1854</table>
1855</div><div class="memdoc">
1856
Jenkinsb9abeae2018-11-22 11:58:08 +00001857<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 +00001858
1859</div>
1860</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001861<a id="abe37c90e62ee60565cbfbb38c4358fd6"></a>
1862<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>
1863
Anthony Barbier06ea0482018-02-22 15:45:35 +00001864<div class="memitem">
1865<div class="memproto">
1866<table class="mlabels">
1867 <tr>
1868 <td class="mlabels-left">
1869 <table class="memname">
1870 <tr>
1871 <td class="memname">int8 asymm_one_over_one_plus_x_for_x_in_0_18 </td>
1872 <td>(</td>
1873 <td class="paramtype">int8&#160;</td>
1874 <td class="paramname"><em>a</em></td><td>)</td>
1875 <td></td>
1876 </tr>
1877 </table>
1878 </td>
1879 <td class="mlabels-right">
1880<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1881 </tr>
1882</table>
1883</div><div class="memdoc">
1884
Jenkinsb9abeae2018-11-22 11:58:08 +00001885<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 +00001886
1887</div>
1888</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001889<a id="a700e603af523859efb90ed4b52b41c84"></a>
1890<h2 class="memtitle"><span class="permalink"><a href="#a700e603af523859efb90ed4b52b41c84">&#9670;&nbsp;</a></span>asymm_rescale16()</h2>
1891
Anthony Barbier06ea0482018-02-22 15:45:35 +00001892<div class="memitem">
1893<div class="memproto">
1894<table class="mlabels">
1895 <tr>
1896 <td class="mlabels-left">
1897 <table class="memname">
1898 <tr>
1899 <td class="memname">int16 asymm_rescale16 </td>
1900 <td>(</td>
1901 <td class="paramtype">int16&#160;</td>
1902 <td class="paramname"><em>value</em>, </td>
1903 </tr>
1904 <tr>
1905 <td class="paramkey"></td>
1906 <td></td>
1907 <td class="paramtype">int&#160;</td>
1908 <td class="paramname"><em>src_integer_bits</em>, </td>
1909 </tr>
1910 <tr>
1911 <td class="paramkey"></td>
1912 <td></td>
1913 <td class="paramtype">int&#160;</td>
1914 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1915 </tr>
1916 <tr>
1917 <td></td>
1918 <td>)</td>
1919 <td></td><td></td>
1920 </tr>
1921 </table>
1922 </td>
1923 <td class="mlabels-right">
1924<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1925 </tr>
1926</table>
1927</div><div class="memdoc">
1928
Jenkinsb9abeae2018-11-22 11:58:08 +00001929<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 +00001930
1931</div>
1932</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001933<a id="a49b94bfc99276975c6fed32c693cbac5"></a>
1934<h2 class="memtitle"><span class="permalink"><a href="#a49b94bfc99276975c6fed32c693cbac5">&#9670;&nbsp;</a></span>asymm_rescale2()</h2>
1935
Anthony Barbier06ea0482018-02-22 15:45:35 +00001936<div class="memitem">
1937<div class="memproto">
1938<table class="mlabels">
1939 <tr>
1940 <td class="mlabels-left">
1941 <table class="memname">
1942 <tr>
1943 <td class="memname">int2 asymm_rescale2 </td>
1944 <td>(</td>
1945 <td class="paramtype">int2&#160;</td>
1946 <td class="paramname"><em>value</em>, </td>
1947 </tr>
1948 <tr>
1949 <td class="paramkey"></td>
1950 <td></td>
1951 <td class="paramtype">int&#160;</td>
1952 <td class="paramname"><em>src_integer_bits</em>, </td>
1953 </tr>
1954 <tr>
1955 <td class="paramkey"></td>
1956 <td></td>
1957 <td class="paramtype">int&#160;</td>
1958 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
1959 </tr>
1960 <tr>
1961 <td></td>
1962 <td>)</td>
1963 <td></td><td></td>
1964 </tr>
1965 </table>
1966 </td>
1967 <td class="mlabels-right">
1968<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1969 </tr>
1970</table>
1971</div><div class="memdoc">
1972
Jenkinsb9abeae2018-11-22 11:58:08 +00001973<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 +00001974
1975</div>
1976</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001977<a id="a8f9d043040f28f051c7145281de94681"></a>
1978<h2 class="memtitle"><span class="permalink"><a href="#a8f9d043040f28f051c7145281de94681">&#9670;&nbsp;</a></span>asymm_rescale4()</h2>
1979
Anthony Barbier06ea0482018-02-22 15:45:35 +00001980<div class="memitem">
1981<div class="memproto">
1982<table class="mlabels">
1983 <tr>
1984 <td class="mlabels-left">
1985 <table class="memname">
1986 <tr>
1987 <td class="memname">int4 asymm_rescale4 </td>
1988 <td>(</td>
1989 <td class="paramtype">int4&#160;</td>
1990 <td class="paramname"><em>value</em>, </td>
1991 </tr>
1992 <tr>
1993 <td class="paramkey"></td>
1994 <td></td>
1995 <td class="paramtype">int&#160;</td>
1996 <td class="paramname"><em>src_integer_bits</em>, </td>
1997 </tr>
1998 <tr>
1999 <td class="paramkey"></td>
2000 <td></td>
2001 <td class="paramtype">int&#160;</td>
2002 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2003 </tr>
2004 <tr>
2005 <td></td>
2006 <td>)</td>
2007 <td></td><td></td>
2008 </tr>
2009 </table>
2010 </td>
2011 <td class="mlabels-right">
2012<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2013 </tr>
2014</table>
2015</div><div class="memdoc">
2016
Jenkinsb9abeae2018-11-22 11:58:08 +00002017<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 +00002018
2019</div>
2020</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002021<a id="a478b69bea5edb6ad939d8e7edd9e7e3f"></a>
2022<h2 class="memtitle"><span class="permalink"><a href="#a478b69bea5edb6ad939d8e7edd9e7e3f">&#9670;&nbsp;</a></span>asymm_rescale8()</h2>
2023
Anthony Barbier06ea0482018-02-22 15:45:35 +00002024<div class="memitem">
2025<div class="memproto">
2026<table class="mlabels">
2027 <tr>
2028 <td class="mlabels-left">
2029 <table class="memname">
2030 <tr>
2031 <td class="memname">int8 asymm_rescale8 </td>
2032 <td>(</td>
2033 <td class="paramtype">int8&#160;</td>
2034 <td class="paramname"><em>value</em>, </td>
2035 </tr>
2036 <tr>
2037 <td class="paramkey"></td>
2038 <td></td>
2039 <td class="paramtype">int&#160;</td>
2040 <td class="paramname"><em>src_integer_bits</em>, </td>
2041 </tr>
2042 <tr>
2043 <td class="paramkey"></td>
2044 <td></td>
2045 <td class="paramtype">int&#160;</td>
2046 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2047 </tr>
2048 <tr>
2049 <td></td>
2050 <td>)</td>
2051 <td></td><td></td>
2052 </tr>
2053 </table>
2054 </td>
2055 <td class="mlabels-right">
2056<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2057 </tr>
2058</table>
2059</div><div class="memdoc">
2060
Jenkinsb9abeae2018-11-22 11:58:08 +00002061<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 +00002062
2063</div>
2064</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002065<a id="a21d65cd6ac14696d58509b82789db845"></a>
2066<h2 class="memtitle"><span class="permalink"><a href="#a21d65cd6ac14696d58509b82789db845">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_16()</h2>
2067
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002068<div class="memitem">
2069<div class="memproto">
2070<table class="mlabels">
2071 <tr>
2072 <td class="mlabels-left">
2073 <table class="memname">
2074 <tr>
2075 <td class="memname">int16 asymm_rounding_divide_by_POW2_16 </td>
2076 <td>(</td>
2077 <td class="paramtype">int16&#160;</td>
2078 <td class="paramname"><em>x</em>, </td>
2079 </tr>
2080 <tr>
2081 <td class="paramkey"></td>
2082 <td></td>
2083 <td class="paramtype">int&#160;</td>
2084 <td class="paramname"><em>exponent</em>&#160;</td>
2085 </tr>
2086 <tr>
2087 <td></td>
2088 <td>)</td>
2089 <td></td><td></td>
2090 </tr>
2091 </table>
2092 </td>
2093 <td class="mlabels-right">
2094<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2095 </tr>
2096</table>
2097</div><div class="memdoc">
2098
Jenkinsb9abeae2018-11-22 11:58:08 +00002099<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 +00002100
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002101</div>
2102</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002103<a id="ae62b2416b40ca28724c065e95e18a25b"></a>
2104<h2 class="memtitle"><span class="permalink"><a href="#ae62b2416b40ca28724c065e95e18a25b">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_2()</h2>
2105
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002106<div class="memitem">
2107<div class="memproto">
2108<table class="mlabels">
2109 <tr>
2110 <td class="mlabels-left">
2111 <table class="memname">
2112 <tr>
2113 <td class="memname">int2 asymm_rounding_divide_by_POW2_2 </td>
2114 <td>(</td>
2115 <td class="paramtype">int2&#160;</td>
2116 <td class="paramname"><em>x</em>, </td>
2117 </tr>
2118 <tr>
2119 <td class="paramkey"></td>
2120 <td></td>
2121 <td class="paramtype">int&#160;</td>
2122 <td class="paramname"><em>exponent</em>&#160;</td>
2123 </tr>
2124 <tr>
2125 <td></td>
2126 <td>)</td>
2127 <td></td><td></td>
2128 </tr>
2129 </table>
2130 </td>
2131 <td class="mlabels-right">
2132<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2133 </tr>
2134</table>
2135</div><div class="memdoc">
2136
Jenkinsb9abeae2018-11-22 11:58:08 +00002137<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 +00002138
2139</div>
2140</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002141<a id="a2660d5193f286b247cf533d8ca234e77"></a>
2142<h2 class="memtitle"><span class="permalink"><a href="#a2660d5193f286b247cf533d8ca234e77">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_4()</h2>
2143
Anthony Barbier06ea0482018-02-22 15:45:35 +00002144<div class="memitem">
2145<div class="memproto">
2146<table class="mlabels">
2147 <tr>
2148 <td class="mlabels-left">
2149 <table class="memname">
2150 <tr>
2151 <td class="memname">int4 asymm_rounding_divide_by_POW2_4 </td>
2152 <td>(</td>
2153 <td class="paramtype">int4&#160;</td>
2154 <td class="paramname"><em>x</em>, </td>
2155 </tr>
2156 <tr>
2157 <td class="paramkey"></td>
2158 <td></td>
2159 <td class="paramtype">int&#160;</td>
2160 <td class="paramname"><em>exponent</em>&#160;</td>
2161 </tr>
2162 <tr>
2163 <td></td>
2164 <td>)</td>
2165 <td></td><td></td>
2166 </tr>
2167 </table>
2168 </td>
2169 <td class="mlabels-right">
2170<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2171 </tr>
2172</table>
2173</div><div class="memdoc">
2174
Jenkinsb9abeae2018-11-22 11:58:08 +00002175<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 +00002176
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002177</div>
2178</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002179<a id="a38afb1b30447264fd62ca7ad86e7ea19"></a>
2180<h2 class="memtitle"><span class="permalink"><a href="#a38afb1b30447264fd62ca7ad86e7ea19">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_8()</h2>
2181
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002182<div class="memitem">
2183<div class="memproto">
2184<table class="mlabels">
2185 <tr>
2186 <td class="mlabels-left">
2187 <table class="memname">
2188 <tr>
2189 <td class="memname">int8 asymm_rounding_divide_by_POW2_8 </td>
2190 <td>(</td>
2191 <td class="paramtype">int8&#160;</td>
2192 <td class="paramname"><em>x</em>, </td>
2193 </tr>
2194 <tr>
2195 <td class="paramkey"></td>
2196 <td></td>
2197 <td class="paramtype">int&#160;</td>
2198 <td class="paramname"><em>exponent</em>&#160;</td>
2199 </tr>
2200 <tr>
2201 <td></td>
2202 <td>)</td>
2203 <td></td><td></td>
2204 </tr>
2205 </table>
2206 </td>
2207 <td class="mlabels-right">
2208<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2209 </tr>
2210</table>
2211</div><div class="memdoc">
2212
Jenkinsb9abeae2018-11-22 11:58:08 +00002213<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 +00002214
2215</div>
2216</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002217<a id="ab13b1910b09c0cf268f6a8af0e2013e2"></a>
2218<h2 class="memtitle"><span class="permalink"><a href="#ab13b1910b09c0cf268f6a8af0e2013e2">&#9670;&nbsp;</a></span>asymm_rounding_half_sum16()</h2>
2219
Anthony Barbier06ea0482018-02-22 15:45:35 +00002220<div class="memitem">
2221<div class="memproto">
2222<table class="mlabels">
2223 <tr>
2224 <td class="mlabels-left">
2225 <table class="memname">
2226 <tr>
2227 <td class="memname">int16 asymm_rounding_half_sum16 </td>
2228 <td>(</td>
2229 <td class="paramtype">int16&#160;</td>
2230 <td class="paramname"><em>a</em>, </td>
2231 </tr>
2232 <tr>
2233 <td class="paramkey"></td>
2234 <td></td>
2235 <td class="paramtype">int16&#160;</td>
2236 <td class="paramname"><em>b</em>&#160;</td>
2237 </tr>
2238 <tr>
2239 <td></td>
2240 <td>)</td>
2241 <td></td><td></td>
2242 </tr>
2243 </table>
2244 </td>
2245 <td class="mlabels-right">
2246<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2247 </tr>
2248</table>
2249</div><div class="memdoc">
2250
Jenkinsb9abeae2018-11-22 11:58:08 +00002251<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 +00002252
2253</div>
2254</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002255<a id="acd43480a8530400e781603a995adcad0"></a>
2256<h2 class="memtitle"><span class="permalink"><a href="#acd43480a8530400e781603a995adcad0">&#9670;&nbsp;</a></span>asymm_rounding_half_sum2()</h2>
2257
Anthony Barbier06ea0482018-02-22 15:45:35 +00002258<div class="memitem">
2259<div class="memproto">
2260<table class="mlabels">
2261 <tr>
2262 <td class="mlabels-left">
2263 <table class="memname">
2264 <tr>
2265 <td class="memname">int2 asymm_rounding_half_sum2 </td>
2266 <td>(</td>
2267 <td class="paramtype">int2&#160;</td>
2268 <td class="paramname"><em>a</em>, </td>
2269 </tr>
2270 <tr>
2271 <td class="paramkey"></td>
2272 <td></td>
2273 <td class="paramtype">int2&#160;</td>
2274 <td class="paramname"><em>b</em>&#160;</td>
2275 </tr>
2276 <tr>
2277 <td></td>
2278 <td>)</td>
2279 <td></td><td></td>
2280 </tr>
2281 </table>
2282 </td>
2283 <td class="mlabels-right">
2284<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2285 </tr>
2286</table>
2287</div><div class="memdoc">
2288
Jenkinsb9abeae2018-11-22 11:58:08 +00002289<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 +00002290
2291</div>
2292</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002293<a id="a7dda5bba50450367760a7ad1148881be"></a>
2294<h2 class="memtitle"><span class="permalink"><a href="#a7dda5bba50450367760a7ad1148881be">&#9670;&nbsp;</a></span>asymm_rounding_half_sum4()</h2>
2295
Anthony Barbier06ea0482018-02-22 15:45:35 +00002296<div class="memitem">
2297<div class="memproto">
2298<table class="mlabels">
2299 <tr>
2300 <td class="mlabels-left">
2301 <table class="memname">
2302 <tr>
2303 <td class="memname">int4 asymm_rounding_half_sum4 </td>
2304 <td>(</td>
2305 <td class="paramtype">int4&#160;</td>
2306 <td class="paramname"><em>a</em>, </td>
2307 </tr>
2308 <tr>
2309 <td class="paramkey"></td>
2310 <td></td>
2311 <td class="paramtype">int4&#160;</td>
2312 <td class="paramname"><em>b</em>&#160;</td>
2313 </tr>
2314 <tr>
2315 <td></td>
2316 <td>)</td>
2317 <td></td><td></td>
2318 </tr>
2319 </table>
2320 </td>
2321 <td class="mlabels-right">
2322<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2323 </tr>
2324</table>
2325</div><div class="memdoc">
2326
Jenkinsb9abeae2018-11-22 11:58:08 +00002327<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 +00002328
2329</div>
2330</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002331<a id="acba55fb1a4dfa6ab5080cc276550d5fd"></a>
2332<h2 class="memtitle"><span class="permalink"><a href="#acba55fb1a4dfa6ab5080cc276550d5fd">&#9670;&nbsp;</a></span>asymm_rounding_half_sum8()</h2>
2333
Anthony Barbier06ea0482018-02-22 15:45:35 +00002334<div class="memitem">
2335<div class="memproto">
2336<table class="mlabels">
2337 <tr>
2338 <td class="mlabels-left">
2339 <table class="memname">
2340 <tr>
2341 <td class="memname">int8 asymm_rounding_half_sum8 </td>
2342 <td>(</td>
2343 <td class="paramtype">int8&#160;</td>
2344 <td class="paramname"><em>a</em>, </td>
2345 </tr>
2346 <tr>
2347 <td class="paramkey"></td>
2348 <td></td>
2349 <td class="paramtype">int8&#160;</td>
2350 <td class="paramname"><em>b</em>&#160;</td>
2351 </tr>
2352 <tr>
2353 <td></td>
2354 <td>)</td>
2355 <td></td><td></td>
2356 </tr>
2357 </table>
2358 </td>
2359 <td class="mlabels-right">
2360<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2361 </tr>
2362</table>
2363</div><div class="memdoc">
2364
Jenkinsb9abeae2018-11-22 11:58:08 +00002365<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 +00002366
2367</div>
2368</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002369<a id="a88b3d0aae3bcf134f9eb4b5637a4b73c"></a>
2370<h2 class="memtitle"><span class="permalink"><a href="#a88b3d0aae3bcf134f9eb4b5637a4b73c">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow216()</h2>
2371
Anthony Barbier06ea0482018-02-22 15:45:35 +00002372<div class="memitem">
2373<div class="memproto">
2374<table class="mlabels">
2375 <tr>
2376 <td class="mlabels-left">
2377 <table class="memname">
2378 <tr>
2379 <td class="memname">int16 asymm_saturating_rounding_mult_by_pow216 </td>
2380 <td>(</td>
2381 <td class="paramtype">int16&#160;</td>
2382 <td class="paramname"><em>x</em>, </td>
2383 </tr>
2384 <tr>
2385 <td class="paramkey"></td>
2386 <td></td>
2387 <td class="paramtype">int&#160;</td>
2388 <td class="paramname"><em>exponent</em>&#160;</td>
2389 </tr>
2390 <tr>
2391 <td></td>
2392 <td>)</td>
2393 <td></td><td></td>
2394 </tr>
2395 </table>
2396 </td>
2397 <td class="mlabels-right">
2398<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2399 </tr>
2400</table>
2401</div><div class="memdoc">
2402
Jenkinsb9abeae2018-11-22 11:58:08 +00002403<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 +00002404
2405</div>
2406</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002407<a id="ac5d336b40941ee7c63a750b3dc92b030"></a>
2408<h2 class="memtitle"><span class="permalink"><a href="#ac5d336b40941ee7c63a750b3dc92b030">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow22()</h2>
2409
Anthony Barbier06ea0482018-02-22 15:45:35 +00002410<div class="memitem">
2411<div class="memproto">
2412<table class="mlabels">
2413 <tr>
2414 <td class="mlabels-left">
2415 <table class="memname">
2416 <tr>
2417 <td class="memname">int2 asymm_saturating_rounding_mult_by_pow22 </td>
2418 <td>(</td>
2419 <td class="paramtype">int2&#160;</td>
2420 <td class="paramname"><em>x</em>, </td>
2421 </tr>
2422 <tr>
2423 <td class="paramkey"></td>
2424 <td></td>
2425 <td class="paramtype">int&#160;</td>
2426 <td class="paramname"><em>exponent</em>&#160;</td>
2427 </tr>
2428 <tr>
2429 <td></td>
2430 <td>)</td>
2431 <td></td><td></td>
2432 </tr>
2433 </table>
2434 </td>
2435 <td class="mlabels-right">
2436<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2437 </tr>
2438</table>
2439</div><div class="memdoc">
2440
Jenkinsb9abeae2018-11-22 11:58:08 +00002441<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 +00002442
2443</div>
2444</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002445<a id="af06991bb67792a6fec9c426923f39745"></a>
2446<h2 class="memtitle"><span class="permalink"><a href="#af06991bb67792a6fec9c426923f39745">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow24()</h2>
2447
Anthony Barbier06ea0482018-02-22 15:45:35 +00002448<div class="memitem">
2449<div class="memproto">
2450<table class="mlabels">
2451 <tr>
2452 <td class="mlabels-left">
2453 <table class="memname">
2454 <tr>
2455 <td class="memname">int4 asymm_saturating_rounding_mult_by_pow24 </td>
2456 <td>(</td>
2457 <td class="paramtype">int4&#160;</td>
2458 <td class="paramname"><em>x</em>, </td>
2459 </tr>
2460 <tr>
2461 <td class="paramkey"></td>
2462 <td></td>
2463 <td class="paramtype">int&#160;</td>
2464 <td class="paramname"><em>exponent</em>&#160;</td>
2465 </tr>
2466 <tr>
2467 <td></td>
2468 <td>)</td>
2469 <td></td><td></td>
2470 </tr>
2471 </table>
2472 </td>
2473 <td class="mlabels-right">
2474<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2475 </tr>
2476</table>
2477</div><div class="memdoc">
2478
Jenkinsb9abeae2018-11-22 11:58:08 +00002479<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 +00002480
2481</div>
2482</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002483<a id="a1bfbcc866bf09921d6bf4fc39cd38d89"></a>
2484<h2 class="memtitle"><span class="permalink"><a href="#a1bfbcc866bf09921d6bf4fc39cd38d89">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow28()</h2>
2485
Anthony Barbier06ea0482018-02-22 15:45:35 +00002486<div class="memitem">
2487<div class="memproto">
2488<table class="mlabels">
2489 <tr>
2490 <td class="mlabels-left">
2491 <table class="memname">
2492 <tr>
2493 <td class="memname">int8 asymm_saturating_rounding_mult_by_pow28 </td>
2494 <td>(</td>
2495 <td class="paramtype">int8&#160;</td>
2496 <td class="paramname"><em>x</em>, </td>
2497 </tr>
2498 <tr>
2499 <td class="paramkey"></td>
2500 <td></td>
2501 <td class="paramtype">int&#160;</td>
2502 <td class="paramname"><em>exponent</em>&#160;</td>
2503 </tr>
2504 <tr>
2505 <td></td>
2506 <td>)</td>
2507 <td></td><td></td>
2508 </tr>
2509 </table>
2510 </td>
2511 <td class="mlabels-right">
2512<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2513 </tr>
2514</table>
2515</div><div class="memdoc">
2516
Jenkinsb9abeae2018-11-22 11:58:08 +00002517<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 +00002518
2519</div>
2520</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002521<a id="a7effd9e7de9fefa9d4ae4eb2cfc06090"></a>
2522<h2 class="memtitle"><span class="permalink"><a href="#a7effd9e7de9fefa9d4ae4eb2cfc06090">&#9670;&nbsp;</a></span>asymm_select_using_mask16()</h2>
2523
Anthony Barbier06ea0482018-02-22 15:45:35 +00002524<div class="memitem">
2525<div class="memproto">
2526<table class="mlabels">
2527 <tr>
2528 <td class="mlabels-left">
2529 <table class="memname">
2530 <tr>
2531 <td class="memname">int16 asymm_select_using_mask16 </td>
2532 <td>(</td>
2533 <td class="paramtype">int16&#160;</td>
2534 <td class="paramname"><em>if_mask</em>, </td>
2535 </tr>
2536 <tr>
2537 <td class="paramkey"></td>
2538 <td></td>
2539 <td class="paramtype">int16&#160;</td>
2540 <td class="paramname"><em>then_val</em>, </td>
2541 </tr>
2542 <tr>
2543 <td class="paramkey"></td>
2544 <td></td>
2545 <td class="paramtype">int16&#160;</td>
2546 <td class="paramname"><em>else_val</em>&#160;</td>
2547 </tr>
2548 <tr>
2549 <td></td>
2550 <td>)</td>
2551 <td></td><td></td>
2552 </tr>
2553 </table>
2554 </td>
2555 <td class="mlabels-right">
2556<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2557 </tr>
2558</table>
2559</div><div class="memdoc">
2560
Jenkinsb9abeae2018-11-22 11:58:08 +00002561<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 +00002562
2563</div>
2564</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002565<a id="a0dade5bb9ed9aae49b6bb2875e273d89"></a>
2566<h2 class="memtitle"><span class="permalink"><a href="#a0dade5bb9ed9aae49b6bb2875e273d89">&#9670;&nbsp;</a></span>asymm_select_using_mask2()</h2>
2567
Anthony Barbier06ea0482018-02-22 15:45:35 +00002568<div class="memitem">
2569<div class="memproto">
2570<table class="mlabels">
2571 <tr>
2572 <td class="mlabels-left">
2573 <table class="memname">
2574 <tr>
2575 <td class="memname">int2 asymm_select_using_mask2 </td>
2576 <td>(</td>
2577 <td class="paramtype">int2&#160;</td>
2578 <td class="paramname"><em>if_mask</em>, </td>
2579 </tr>
2580 <tr>
2581 <td class="paramkey"></td>
2582 <td></td>
2583 <td class="paramtype">int2&#160;</td>
2584 <td class="paramname"><em>then_val</em>, </td>
2585 </tr>
2586 <tr>
2587 <td class="paramkey"></td>
2588 <td></td>
2589 <td class="paramtype">int2&#160;</td>
2590 <td class="paramname"><em>else_val</em>&#160;</td>
2591 </tr>
2592 <tr>
2593 <td></td>
2594 <td>)</td>
2595 <td></td><td></td>
2596 </tr>
2597 </table>
2598 </td>
2599 <td class="mlabels-right">
2600<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2601 </tr>
2602</table>
2603</div><div class="memdoc">
2604
Jenkinsb9abeae2018-11-22 11:58:08 +00002605<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 +00002606
2607</div>
2608</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002609<a id="a44e4d74ed42006c4153a9cb6c97285de"></a>
2610<h2 class="memtitle"><span class="permalink"><a href="#a44e4d74ed42006c4153a9cb6c97285de">&#9670;&nbsp;</a></span>asymm_select_using_mask4()</h2>
2611
Anthony Barbier06ea0482018-02-22 15:45:35 +00002612<div class="memitem">
2613<div class="memproto">
2614<table class="mlabels">
2615 <tr>
2616 <td class="mlabels-left">
2617 <table class="memname">
2618 <tr>
2619 <td class="memname">int4 asymm_select_using_mask4 </td>
2620 <td>(</td>
2621 <td class="paramtype">int4&#160;</td>
2622 <td class="paramname"><em>if_mask</em>, </td>
2623 </tr>
2624 <tr>
2625 <td class="paramkey"></td>
2626 <td></td>
2627 <td class="paramtype">int4&#160;</td>
2628 <td class="paramname"><em>then_val</em>, </td>
2629 </tr>
2630 <tr>
2631 <td class="paramkey"></td>
2632 <td></td>
2633 <td class="paramtype">int4&#160;</td>
2634 <td class="paramname"><em>else_val</em>&#160;</td>
2635 </tr>
2636 <tr>
2637 <td></td>
2638 <td>)</td>
2639 <td></td><td></td>
2640 </tr>
2641 </table>
2642 </td>
2643 <td class="mlabels-right">
2644<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2645 </tr>
2646</table>
2647</div><div class="memdoc">
2648
Jenkinsb9abeae2018-11-22 11:58:08 +00002649<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 +00002650
2651</div>
2652</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002653<a id="a64682bc22716ad771d012ce4c7398652"></a>
2654<h2 class="memtitle"><span class="permalink"><a href="#a64682bc22716ad771d012ce4c7398652">&#9670;&nbsp;</a></span>asymm_select_using_mask8()</h2>
2655
Anthony Barbier06ea0482018-02-22 15:45:35 +00002656<div class="memitem">
2657<div class="memproto">
2658<table class="mlabels">
2659 <tr>
2660 <td class="mlabels-left">
2661 <table class="memname">
2662 <tr>
2663 <td class="memname">int8 asymm_select_using_mask8 </td>
2664 <td>(</td>
2665 <td class="paramtype">int8&#160;</td>
2666 <td class="paramname"><em>if_mask</em>, </td>
2667 </tr>
2668 <tr>
2669 <td class="paramkey"></td>
2670 <td></td>
2671 <td class="paramtype">int8&#160;</td>
2672 <td class="paramname"><em>then_val</em>, </td>
2673 </tr>
2674 <tr>
2675 <td class="paramkey"></td>
2676 <td></td>
2677 <td class="paramtype">int8&#160;</td>
2678 <td class="paramname"><em>else_val</em>&#160;</td>
2679 </tr>
2680 <tr>
2681 <td></td>
2682 <td>)</td>
2683 <td></td><td></td>
2684 </tr>
2685 </table>
2686 </td>
2687 <td class="mlabels-right">
2688<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2689 </tr>
2690</table>
2691</div><div class="memdoc">
2692
Jenkinsb9abeae2018-11-22 11:58:08 +00002693<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 +00002694
2695</div>
2696</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002697<a id="a4bde4cd395697b5d37af5116773f16ed"></a>
2698<h2 class="memtitle"><span class="permalink"><a href="#a4bde4cd395697b5d37af5116773f16ed">&#9670;&nbsp;</a></span>exp_barrel_shifter16()</h2>
2699
Anthony Barbier06ea0482018-02-22 15:45:35 +00002700<div class="memitem">
2701<div class="memproto">
2702<table class="mlabels">
2703 <tr>
2704 <td class="mlabels-left">
2705 <table class="memname">
2706 <tr>
2707 <td class="memname">int16 exp_barrel_shifter16 </td>
2708 <td>(</td>
2709 <td class="paramtype">int16&#160;</td>
2710 <td class="paramname"><em>result</em>, </td>
2711 </tr>
2712 <tr>
2713 <td class="paramkey"></td>
2714 <td></td>
2715 <td class="paramtype">int&#160;</td>
2716 <td class="paramname"><em>exponent</em>, </td>
2717 </tr>
2718 <tr>
2719 <td class="paramkey"></td>
2720 <td></td>
2721 <td class="paramtype">int&#160;</td>
2722 <td class="paramname"><em>fp_multiplier</em>, </td>
2723 </tr>
2724 <tr>
2725 <td class="paramkey"></td>
2726 <td></td>
2727 <td class="paramtype">int&#160;</td>
2728 <td class="paramname"><em>k_integer_bits</em>, </td>
2729 </tr>
2730 <tr>
2731 <td class="paramkey"></td>
2732 <td></td>
2733 <td class="paramtype">int&#160;</td>
2734 <td class="paramname"><em>k_fractional_bits</em>, </td>
2735 </tr>
2736 <tr>
2737 <td class="paramkey"></td>
2738 <td></td>
2739 <td class="paramtype">int16&#160;</td>
2740 <td class="paramname"><em>remainder</em>&#160;</td>
2741 </tr>
2742 <tr>
2743 <td></td>
2744 <td>)</td>
2745 <td></td><td></td>
2746 </tr>
2747 </table>
2748 </td>
2749 <td class="mlabels-right">
2750<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2751 </tr>
2752</table>
2753</div><div class="memdoc">
2754
Jenkinsb9abeae2018-11-22 11:58:08 +00002755<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 +00002756
2757</div>
2758</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002759<a id="ad12110cc5f3099fa90b631e7b05772a0"></a>
2760<h2 class="memtitle"><span class="permalink"><a href="#ad12110cc5f3099fa90b631e7b05772a0">&#9670;&nbsp;</a></span>exp_barrel_shifter2()</h2>
2761
Anthony Barbier06ea0482018-02-22 15:45:35 +00002762<div class="memitem">
2763<div class="memproto">
2764<table class="mlabels">
2765 <tr>
2766 <td class="mlabels-left">
2767 <table class="memname">
2768 <tr>
2769 <td class="memname">int2 exp_barrel_shifter2 </td>
2770 <td>(</td>
2771 <td class="paramtype">int2&#160;</td>
2772 <td class="paramname"><em>result</em>, </td>
2773 </tr>
2774 <tr>
2775 <td class="paramkey"></td>
2776 <td></td>
2777 <td class="paramtype">int&#160;</td>
2778 <td class="paramname"><em>exponent</em>, </td>
2779 </tr>
2780 <tr>
2781 <td class="paramkey"></td>
2782 <td></td>
2783 <td class="paramtype">int&#160;</td>
2784 <td class="paramname"><em>fp_multiplier</em>, </td>
2785 </tr>
2786 <tr>
2787 <td class="paramkey"></td>
2788 <td></td>
2789 <td class="paramtype">int&#160;</td>
2790 <td class="paramname"><em>k_integer_bits</em>, </td>
2791 </tr>
2792 <tr>
2793 <td class="paramkey"></td>
2794 <td></td>
2795 <td class="paramtype">int&#160;</td>
2796 <td class="paramname"><em>k_fractional_bits</em>, </td>
2797 </tr>
2798 <tr>
2799 <td class="paramkey"></td>
2800 <td></td>
2801 <td class="paramtype">int2&#160;</td>
2802 <td class="paramname"><em>remainder</em>&#160;</td>
2803 </tr>
2804 <tr>
2805 <td></td>
2806 <td>)</td>
2807 <td></td><td></td>
2808 </tr>
2809 </table>
2810 </td>
2811 <td class="mlabels-right">
2812<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2813 </tr>
2814</table>
2815</div><div class="memdoc">
2816
Jenkinsb9abeae2018-11-22 11:58:08 +00002817<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 +00002818
2819</div>
2820</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002821<a id="a521e3ded9b6ca69692e9415ef9b4cee1"></a>
2822<h2 class="memtitle"><span class="permalink"><a href="#a521e3ded9b6ca69692e9415ef9b4cee1">&#9670;&nbsp;</a></span>exp_barrel_shifter4()</h2>
2823
Anthony Barbier06ea0482018-02-22 15:45:35 +00002824<div class="memitem">
2825<div class="memproto">
2826<table class="mlabels">
2827 <tr>
2828 <td class="mlabels-left">
2829 <table class="memname">
2830 <tr>
2831 <td class="memname">int4 exp_barrel_shifter4 </td>
2832 <td>(</td>
2833 <td class="paramtype">int4&#160;</td>
2834 <td class="paramname"><em>result</em>, </td>
2835 </tr>
2836 <tr>
2837 <td class="paramkey"></td>
2838 <td></td>
2839 <td class="paramtype">int&#160;</td>
2840 <td class="paramname"><em>exponent</em>, </td>
2841 </tr>
2842 <tr>
2843 <td class="paramkey"></td>
2844 <td></td>
2845 <td class="paramtype">int&#160;</td>
2846 <td class="paramname"><em>fp_multiplier</em>, </td>
2847 </tr>
2848 <tr>
2849 <td class="paramkey"></td>
2850 <td></td>
2851 <td class="paramtype">int&#160;</td>
2852 <td class="paramname"><em>k_integer_bits</em>, </td>
2853 </tr>
2854 <tr>
2855 <td class="paramkey"></td>
2856 <td></td>
2857 <td class="paramtype">int&#160;</td>
2858 <td class="paramname"><em>k_fractional_bits</em>, </td>
2859 </tr>
2860 <tr>
2861 <td class="paramkey"></td>
2862 <td></td>
2863 <td class="paramtype">int4&#160;</td>
2864 <td class="paramname"><em>remainder</em>&#160;</td>
2865 </tr>
2866 <tr>
2867 <td></td>
2868 <td>)</td>
2869 <td></td><td></td>
2870 </tr>
2871 </table>
2872 </td>
2873 <td class="mlabels-right">
2874<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2875 </tr>
2876</table>
2877</div><div class="memdoc">
2878
Jenkinsb9abeae2018-11-22 11:58:08 +00002879<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 +00002880
2881</div>
2882</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002883<a id="a936aed524c644efcf20b28877e3a0f3f"></a>
2884<h2 class="memtitle"><span class="permalink"><a href="#a936aed524c644efcf20b28877e3a0f3f">&#9670;&nbsp;</a></span>exp_barrel_shifter8()</h2>
2885
Anthony Barbier06ea0482018-02-22 15:45:35 +00002886<div class="memitem">
2887<div class="memproto">
2888<table class="mlabels">
2889 <tr>
2890 <td class="mlabels-left">
2891 <table class="memname">
2892 <tr>
2893 <td class="memname">int8 exp_barrel_shifter8 </td>
2894 <td>(</td>
2895 <td class="paramtype">int8&#160;</td>
2896 <td class="paramname"><em>result</em>, </td>
2897 </tr>
2898 <tr>
2899 <td class="paramkey"></td>
2900 <td></td>
2901 <td class="paramtype">int&#160;</td>
2902 <td class="paramname"><em>exponent</em>, </td>
2903 </tr>
2904 <tr>
2905 <td class="paramkey"></td>
2906 <td></td>
2907 <td class="paramtype">int&#160;</td>
2908 <td class="paramname"><em>fp_multiplier</em>, </td>
2909 </tr>
2910 <tr>
2911 <td class="paramkey"></td>
2912 <td></td>
2913 <td class="paramtype">int&#160;</td>
2914 <td class="paramname"><em>k_integer_bits</em>, </td>
2915 </tr>
2916 <tr>
2917 <td class="paramkey"></td>
2918 <td></td>
2919 <td class="paramtype">int&#160;</td>
2920 <td class="paramname"><em>k_fractional_bits</em>, </td>
2921 </tr>
2922 <tr>
2923 <td class="paramkey"></td>
2924 <td></td>
2925 <td class="paramtype">int8&#160;</td>
2926 <td class="paramname"><em>remainder</em>&#160;</td>
2927 </tr>
2928 <tr>
2929 <td></td>
2930 <td>)</td>
2931 <td></td><td></td>
2932 </tr>
2933 </table>
2934 </td>
2935 <td class="mlabels-right">
2936<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2937 </tr>
2938</table>
2939</div><div class="memdoc">
2940
Jenkinsb9abeae2018-11-22 11:58:08 +00002941<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 +00002942
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002943</div>
2944</div>
2945</div><!-- contents -->
2946</div><!-- doc-content -->
2947<!-- start footer part -->
2948<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
2949 <ul>
2950 <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>
Jenkins4ba87db2019-05-23 17:11:51 +01002951 <li class="footer">Generated on Thu May 23 2019 17:11:26 for Compute Library by
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002952 <a href="http://www.doxygen.org/index.html">
Jenkins514be652019-02-28 12:25:18 +00002953 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002954 </ul>
2955</div>
2956</body>
2957</html>