blob: f5965d5f093c61aa491c65ea7c75007f2a44b2dd [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">
Jenkins7f09cf72020-01-22 18:08:16 +000043 &#160;<span id="projectnumber">19.11.1</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>
Jenkins0e205f72019-11-28 16:53:35 +0000112<tr class="memitem:a2ed0ea00bf682e806812fd9dbdbea5e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a2ed0ea00bf682e806812fd9dbdbea5e7">CONVERT_DOWN_RTE_STR</a>(x, type)&#160;&#160;&#160;(convert_##type##_rte((x)))</td></tr>
113<tr class="memdesc:a2ed0ea00bf682e806812fd9dbdbea5e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the given vector with round to nearest even rounding mode. <a href="#a2ed0ea00bf682e806812fd9dbdbea5e7">More...</a><br /></td></tr>
114<tr class="separator:a2ed0ea00bf682e806812fd9dbdbea5e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:ae41349ddba7d47794bba4d2fcf659872"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae41349ddba7d47794bba4d2fcf659872">CONVERT_DOWN_RTE</a>(x, type)&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#a2ed0ea00bf682e806812fd9dbdbea5e7">CONVERT_DOWN_RTE_STR</a>(x, type)</td></tr>
116<tr class="separator:ae41349ddba7d47794bba4d2fcf659872"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:a1cb86b1d0c99a1e72dacda1bc615baf6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a1cb86b1d0c99a1e72dacda1bc615baf6">QUANTIZE_IMPL</a>(type, size)</td></tr>
118<tr class="memdesc:a1cb86b1d0c99a1e72dacda1bc615baf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quantize a vector of values from floating-point. <a href="#a1cb86b1d0c99a1e72dacda1bc615baf6">More...</a><br /></td></tr>
119<tr class="separator:a1cb86b1d0c99a1e72dacda1bc615baf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
120<tr class="memitem:ac5fe0200eafe2b88af574a2ed34c3c11"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ac5fe0200eafe2b88af574a2ed34c3c11">DEQUANTIZE_IMPL</a>(type, size)</td></tr>
121<tr class="memdesc:ac5fe0200eafe2b88af574a2ed34c3c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dequantize a vector of values to floating-point. <a href="#ac5fe0200eafe2b88af574a2ed34c3c11">More...</a><br /></td></tr>
122<tr class="separator:ac5fe0200eafe2b88af574a2ed34c3c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100123<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 +0000124<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>
125<tr class="separator:abf75e242631b23007e4046682aa57ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100126<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 +0000127<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>
128<tr class="separator:ad4b199221927cbabbf859e4d2efb688d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100129<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 +0000130<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>
131<tr class="separator:a3d8a3968a069eb8abbc28d31c20f6b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100132<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 +0000133<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>
134<tr class="separator:ab0b4069b25ac886d5cb6eb3b76473f88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100135<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 +0000136<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>
137<tr class="separator:a8c47a92ec76a1e367b45305c17d9ea88"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100138<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 +0000139<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>
140<tr class="separator:a6dd3d8d22942f0ff3e59b4e32cfd4de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100141<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 +0000142<tr class="separator:aa12ca21cb9a54d2e4c26d57303fe44a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100143<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 +0000144<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>
145<tr class="separator:a4d0a02b30d8cc5725d0a11781b488852"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100146<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 +0000147<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>
148<tr class="separator:a737312bc4a68c79a77cfab4849793bc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100149<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 +0000150<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>
151<tr class="separator:a8d97c6698c0e44424deae3f3130c55ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100152<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 +0000153<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>
154<tr class="separator:a0e53aa5d4cbcec7a0c0085838f32453d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100155<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 +0000156<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>
157<tr class="separator:aace85e2a32bacdaa4e2d2055deabfc57"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkins0e205f72019-11-28 16:53:35 +0000158<tr class="memitem:a7fd28520161d368b45c31098ad948d32"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a7fd28520161d368b45c31098ad948d32">QUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)&#160;&#160;&#160;quantize_##type##size(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale)</td></tr>
159<tr class="separator:a7fd28520161d368b45c31098ad948d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:a85ca50207e80cca8c76b5d3da85e4a9f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a85ca50207e80cca8c76b5d3da85e4a9f">QUANTIZE</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#a7fd28520161d368b45c31098ad948d32">QUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)</td></tr>
161<tr class="separator:a85ca50207e80cca8c76b5d3da85e4a9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:ab98579b6a5e03ada17294034cbe4aa02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ab98579b6a5e03ada17294034cbe4aa02">DEQUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)&#160;&#160;&#160;dequantize_##type##size(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale)</td></tr>
163<tr class="separator:ab98579b6a5e03ada17294034cbe4aa02"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:a4f0a8fe9e57d31f7ca26a697ca140029"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a4f0a8fe9e57d31f7ca26a697ca140029">DEQUANTIZE</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#ab98579b6a5e03ada17294034cbe4aa02">DEQUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)</td></tr>
165<tr class="separator:a4f0a8fe9e57d31f7ca26a697ca140029"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100166<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 +0000167<tr class="separator:aa43fc359dea64362f3016384f4269845"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100168<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 +0000169<tr class="separator:a5483aefd5e07244661178bfd3f434448"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100170<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 +0000171<tr class="separator:a86de0ffca367bfcf27a8ae5dd1fdef2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100172<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 +0000173<tr class="separator:aeebdcd88f4320931cd4a599ad1527e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100174<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 +0000175<tr class="separator:a9bc08a8c1833c5e6055ad6665e3ccf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100176<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 +0000177<tr class="separator:afc6a76528024472919bb5d50d067578b"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100178<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 +0000179<tr class="separator:af1d5450c9c4c13a6b7aa52af197b54b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100180<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 +0000181<tr class="separator:ace9ecff421cf885ad2c2d72d87c492cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100182<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 +0000183<tr class="separator:a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100184<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 +0000185<tr class="separator:ae77f34e1316d52c1ee84c35be9efb0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100186<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 +0000187<tr class="separator:a4cc3ff3a2eeb5f5e9d6743e08f632928"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100188<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 +0000189<tr class="separator:ad47fa44c1566aa4678fe524478490612"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100190<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 +0000191<tr class="separator:a98585f1bb84dea90aecbf59785c46151"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000192</table><table class="memberdecls">
193<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
194Functions</h2></td></tr>
Jenkins0e205f72019-11-28 16:53:35 +0000195<tr class="memitem:a63aa8eb6ac2ac3782ffad43a96345f0a"><td class="memItemLeft" align="right" valign="top">uchar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a63aa8eb6ac2ac3782ffad43a96345f0a">quantize_qasymm8</a> (float input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
196<tr class="memdesc:a63aa8eb6ac2ac3782ffad43a96345f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quantize a floating-point scalar value to 8-bit asymmetric. <a href="#a63aa8eb6ac2ac3782ffad43a96345f0a">More...</a><br /></td></tr>
197<tr class="separator:a63aa8eb6ac2ac3782ffad43a96345f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
198<tr class="memitem:afbec2094d42590b94e7eead93710411d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#afbec2094d42590b94e7eead93710411d">dequantize_qasymm8</a> (uchar input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
199<tr class="memdesc:afbec2094d42590b94e7eead93710411d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dequantize a scalar value from 8-bit asymmetric to floating-point. <a href="#afbec2094d42590b94e7eead93710411d">More...</a><br /></td></tr>
200<tr class="separator:afbec2094d42590b94e7eead93710411d"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:ada9b2f95d7b2bb6add361832cc0251df"><td class="memItemLeft" align="right" valign="top">uchar4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ada9b2f95d7b2bb6add361832cc0251df">quantize_uchar4</a> (float4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
202<tr class="separator:ada9b2f95d7b2bb6add361832cc0251df"><td class="memSeparator" colspan="2">&#160;</td></tr>
203<tr class="memitem:a933a58d69e18da275156602365d37fc9"><td class="memItemLeft" align="right" valign="top">ushort4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a933a58d69e18da275156602365d37fc9">quantize_ushort4</a> (float4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
204<tr class="separator:a933a58d69e18da275156602365d37fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
205<tr class="memitem:af3c37581d89f0873428d938792254e30"><td class="memItemLeft" align="right" valign="top">short4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#af3c37581d89f0873428d938792254e30">quantize_short4</a> (float4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
206<tr class="separator:af3c37581d89f0873428d938792254e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
207<tr class="memitem:a951a47a7d1115404d183490f2aa11e40"><td class="memItemLeft" align="right" valign="top">float4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a951a47a7d1115404d183490f2aa11e40">dequantize_uchar4</a> (uchar4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
208<tr class="separator:a951a47a7d1115404d183490f2aa11e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="memitem:a5cdb515b62ef19a88f83d779240a02f4"><td class="memItemLeft" align="right" valign="top">float4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a5cdb515b62ef19a88f83d779240a02f4">dequantize_ushort4</a> (ushort4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
210<tr class="separator:a5cdb515b62ef19a88f83d779240a02f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
211<tr class="memitem:a2b106b11a5f1e2e5b6a70e0afe1d9e5a"><td class="memItemLeft" align="right" valign="top">float4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a2b106b11a5f1e2e5b6a70e0afe1d9e5a">dequantize_short4</a> (short4 input, float <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, float scale)</td></tr>
212<tr class="separator:a2b106b11a5f1e2e5b6a70e0afe1d9e5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
213<tr class="memitem:aaf71dc45cca316d4fbde2665cb49919c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aaf71dc45cca316d4fbde2665cb49919c">asymm_rounding_divide_by_POW2_1</a> (int x, int exponent)</td></tr>
214<tr class="separator:aaf71dc45cca316d4fbde2665cb49919c"><td class="memSeparator" colspan="2">&#160;</td></tr>
215<tr class="memitem:ae1ed2d7eea67b60ff64ed119fe273e2b"><td class="memItemLeft" align="right" valign="top">int2&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae1ed2d7eea67b60ff64ed119fe273e2b">asymm_rounding_divide_by_POW2_2</a> (int2 x, int2 exponent)</td></tr>
216<tr class="separator:ae1ed2d7eea67b60ff64ed119fe273e2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
217<tr class="memitem:ae6b082ae2ce96c4abf74b2d3ee323a6d"><td class="memItemLeft" align="right" valign="top">int4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#ae6b082ae2ce96c4abf74b2d3ee323a6d">asymm_rounding_divide_by_POW2_4</a> (int4 x, int4 exponent)</td></tr>
218<tr class="separator:ae6b082ae2ce96c4abf74b2d3ee323a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
219<tr class="memitem:aa32a080a129749481581ed0243d4facf"><td class="memItemLeft" align="right" valign="top">int8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aa32a080a129749481581ed0243d4facf">asymm_rounding_divide_by_POW2_8</a> (int8 x, int8 exponent)</td></tr>
220<tr class="separator:aa32a080a129749481581ed0243d4facf"><td class="memSeparator" colspan="2">&#160;</td></tr>
221<tr class="memitem:a74839afd2405644eaf64450a121d0871"><td class="memItemLeft" align="right" valign="top">int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#a74839afd2405644eaf64450a121d0871">asymm_rounding_divide_by_POW2_16</a> (int16 x, int16 exponent)</td></tr>
222<tr class="separator:a74839afd2405644eaf64450a121d0871"><td class="memSeparator" colspan="2">&#160;</td></tr>
223<tr class="memitem:aa6e82fbd2ec198afdd091651b7c2f7db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="helpers__asymm_8h.xhtml#aa6e82fbd2ec198afdd091651b7c2f7db">asymm_mult1</a> (int a, int b)</td></tr>
224<tr class="separator:aa6e82fbd2ec198afdd091651b7c2f7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000225<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>
226<tr class="separator:a5038b78913b76d782cc0aa0d841bd7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000227<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>
228<tr class="separator:a6dca28649388d59ec0281af70d4507b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000229<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>
230<tr class="separator:a165b0bbab841712ea2c9a17a09bfa166"><td class="memSeparator" colspan="2">&#160;</td></tr>
231<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>
232<tr class="separator:aef32e3a9c804f145deb6b88f0a444919"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000233<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>
234<tr class="separator:a8eb88d417247a1b8b8929e5c8faeb48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
235<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>
236<tr class="separator:a43aa0011bd9b23ce3f691a9ae205fe07"><td class="memSeparator" colspan="2">&#160;</td></tr>
237<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>
238<tr class="separator:accb6ee0e0c578704ae23e6ab0a57cdd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
239<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>
240<tr class="separator:a1d51b02a83af2a152fa52755f572f5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
241<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>
242<tr class="separator:a0dade5bb9ed9aae49b6bb2875e273d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
243<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>
244<tr class="separator:a44e4d74ed42006c4153a9cb6c97285de"><td class="memSeparator" colspan="2">&#160;</td></tr>
245<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>
246<tr class="separator:a64682bc22716ad771d012ce4c7398652"><td class="memSeparator" colspan="2">&#160;</td></tr>
247<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>
248<tr class="separator:a7effd9e7de9fefa9d4ae4eb2cfc06090"><td class="memSeparator" colspan="2">&#160;</td></tr>
249<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>
250<tr class="separator:a6ed499c821cf4f6b3bc4049d49e35139"><td class="memSeparator" colspan="2">&#160;</td></tr>
251<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>
252<tr class="separator:aed95c68d9545d401d2323cd8ad287fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
253<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>
254<tr class="separator:abefb0a278a588f03dc561db900df0958"><td class="memSeparator" colspan="2">&#160;</td></tr>
255<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>
256<tr class="separator:a509916b7ee582d87faf1312fde111c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
257<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>
258<tr class="separator:a885a16f240b119acc9f0721c07acdce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
259<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>
260<tr class="separator:a2f180955030087d7538d5dc89f29eba9"><td class="memSeparator" colspan="2">&#160;</td></tr>
261<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>
262<tr class="separator:a8de81d453a39d0f589b0d3e007c7fde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
263<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>
264<tr class="separator:a1e1fef1353d2458beb7fab06cc8f460e"><td class="memSeparator" colspan="2">&#160;</td></tr>
265<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>
266<tr class="separator:ad12110cc5f3099fa90b631e7b05772a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
267<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>
268<tr class="separator:a521e3ded9b6ca69692e9415ef9b4cee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
269<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>
270<tr class="separator:a936aed524c644efcf20b28877e3a0f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
271<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>
272<tr class="separator:a4bde4cd395697b5d37af5116773f16ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
273<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>
274<tr class="separator:a35b98dc80eefc6ce799720861a668691"><td class="memSeparator" colspan="2">&#160;</td></tr>
275<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>
276<tr class="separator:aa1dda459c2b10a9620b2c14a928ed4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
277<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>
278<tr class="separator:a429f20ad96413c1f7d4ee968afed6f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
279<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>
280<tr class="separator:ae13cfab30e1d4c5f797f9d3d7c6acacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
281<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>
282<tr class="separator:ac5d336b40941ee7c63a750b3dc92b030"><td class="memSeparator" colspan="2">&#160;</td></tr>
283<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>
284<tr class="separator:af06991bb67792a6fec9c426923f39745"><td class="memSeparator" colspan="2">&#160;</td></tr>
285<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>
286<tr class="separator:a1bfbcc866bf09921d6bf4fc39cd38d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
287<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>
288<tr class="separator:a88b3d0aae3bcf134f9eb4b5637a4b73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
289<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>
290<tr class="separator:acd43480a8530400e781603a995adcad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
291<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>
292<tr class="separator:a7dda5bba50450367760a7ad1148881be"><td class="memSeparator" colspan="2">&#160;</td></tr>
293<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>
294<tr class="separator:acba55fb1a4dfa6ab5080cc276550d5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
295<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>
296<tr class="separator:ab13b1910b09c0cf268f6a8af0e2013e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
297<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>
298<tr class="separator:a6524f601cf9a2ae69d5eab74576c93d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
299<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>
300<tr class="separator:a049439083adb7b960079832ad6367389"><td class="memSeparator" colspan="2">&#160;</td></tr>
301<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>
302<tr class="separator:abe37c90e62ee60565cbfbb38c4358fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
303<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>
304<tr class="separator:ac3316120c01b6c993ac8f2d3f2b4ff03"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100305<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 +0000306<tr class="separator:a49b94bfc99276975c6fed32c693cbac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100307<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 +0000308<tr class="separator:a8f9d043040f28f051c7145281de94681"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100309<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 +0000310<tr class="separator:a478b69bea5edb6ad939d8e7edd9e7e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
Jenkinsb3a371b2018-05-23 11:36:53 +0100311<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 +0000312<tr class="separator:a700e603af523859efb90ed4b52b41c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000313</table>
314<h2 class="groupheader">Macro Definition Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +0000315<a id="aeebdcd88f4320931cd4a599ad1527e83"></a>
316<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>
317
Anthony Barbier06ea0482018-02-22 15:45:35 +0000318<div class="memitem">
319<div class="memproto">
320 <table class="memname">
321 <tr>
322 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL</td>
323 <td>(</td>
324 <td class="paramtype">&#160;</td>
325 <td class="paramname">a, </td>
326 </tr>
327 <tr>
328 <td class="paramkey"></td>
329 <td></td>
330 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100331 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000332 </tr>
333 <tr>
334 <td></td>
335 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100336 <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 +0000337 </tr>
338 </table>
339</div><div class="memdoc">
340
Jenkins0e205f72019-11-28 16:53:35 +0000341<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00374">374</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000342
343</div>
344</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000345<a id="a3d8a3968a069eb8abbc28d31c20f6b8c"></a>
346<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>
347
Anthony Barbier06ea0482018-02-22 15:45:35 +0000348<div class="memitem">
349<div class="memproto">
350 <table class="memname">
351 <tr>
352 <td class="memname">#define ASYMM_EXP_ON_INTERVAL_BETWEEN_NEGATIVE_ONE_QUARTER_AND_0_EXCL_IMPL</td>
353 <td>(</td>
354 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100355 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000356 <td></td>
357 </tr>
358 </table>
359</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +0000360<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#l00371">helpers_asymm.h:371</a></div></div>
361<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#l00370">helpers_asymm.h:370</a></div></div>
362<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000363</div><!-- fragment -->
364<p>Calculates \( exp(x) \) for x in [-1/4, 0). </p>
365<dl class="params"><dt>Parameters</dt><dd>
366 <table class="params">
367 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
368 </table>
369 </dd>
370</dl>
371<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
372
Jenkins0e205f72019-11-28 16:53:35 +0000373<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00147">147</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000374
375</div>
376</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000377<a id="a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8"></a>
378<h2 class="memtitle"><span class="permalink"><a href="#a3a4f1b5d8f1cd67ac31bc62c9a6f4aa8">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES</h2>
379
Anthony Barbier06ea0482018-02-22 15:45:35 +0000380<div class="memitem">
381<div class="memproto">
382 <table class="memname">
383 <tr>
384 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES</td>
385 <td>(</td>
386 <td class="paramtype">&#160;</td>
387 <td class="paramname">a, </td>
388 </tr>
389 <tr>
390 <td class="paramkey"></td>
391 <td></td>
392 <td class="paramtype">&#160;</td>
393 <td class="paramname">k_integer_bits, </td>
394 </tr>
395 <tr>
396 <td class="paramkey"></td>
397 <td></td>
398 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100399 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000400 </tr>
401 <tr>
402 <td></td>
403 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100404 <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 +0000405 </tr>
406 </table>
407</div><div class="memdoc">
408
Jenkins0e205f72019-11-28 16:53:35 +0000409<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00379">379</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000410
411</div>
412</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000413<a id="a4d0a02b30d8cc5725d0a11781b488852"></a>
414<h2 class="memtitle"><span class="permalink"><a href="#a4d0a02b30d8cc5725d0a11781b488852">&#9670;&nbsp;</a></span>ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</h2>
415
Anthony Barbier06ea0482018-02-22 15:45:35 +0000416<div class="memitem">
417<div class="memproto">
418 <table class="memname">
419 <tr>
420 <td class="memname">#define ASYMM_EXP_ON_NEGATIVE_VALUES_IMPL</td>
421 <td>(</td>
422 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100423 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000424 <td></td>
425 </tr>
426 </table>
427</div><div class="memdoc">
428
429<p>Calculates \( exp(x) \) for x &lt; 0. </p>
430<dl class="params"><dt>Parameters</dt><dd>
431 <table class="params">
432 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
433 </table>
434 </dd>
435</dl>
436<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
437
Jenkins0e205f72019-11-28 16:53:35 +0000438<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00234">234</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000439
440</div>
441</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000442<a id="af1d5450c9c4c13a6b7aa52af197b54b2"></a>
443<h2 class="memtitle"><span class="permalink"><a href="#af1d5450c9c4c13a6b7aa52af197b54b2">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO</h2>
444
Anthony Barbier06ea0482018-02-22 15:45:35 +0000445<div class="memitem">
446<div class="memproto">
447 <table class="memname">
448 <tr>
449 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO</td>
450 <td>(</td>
451 <td class="paramtype">&#160;</td>
452 <td class="paramname">a, </td>
453 </tr>
454 <tr>
455 <td class="paramkey"></td>
456 <td></td>
457 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100458 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000459 </tr>
460 <tr>
461 <td></td>
462 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100463 <td></td><td>&#160;&#160;&#160;asymm_mask_if_non_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000464 </tr>
465 </table>
466</div><div class="memdoc">
467
Jenkins0e205f72019-11-28 16:53:35 +0000468<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00377">377</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000469
470</div>
471</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000472<a id="a6dd3d8d22942f0ff3e59b4e32cfd4de3"></a>
473<h2 class="memtitle"><span class="permalink"><a href="#a6dd3d8d22942f0ff3e59b4e32cfd4de3">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_NON_ZERO_IMPL</h2>
474
Anthony Barbier06ea0482018-02-22 15:45:35 +0000475<div class="memitem">
476<div class="memproto">
477 <table class="memname">
478 <tr>
479 <td class="memname">#define ASYMM_MASK_IF_NON_ZERO_IMPL</td>
480 <td>(</td>
481 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100482 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000483 <td></td>
484 </tr>
485 </table>
486</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000487<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>
Jenkins0e205f72019-11-28 16:53:35 +0000488<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000489</div><!-- fragment -->
490<p>For each element of input vector, the corresponding bits of the result item are set if the input item is non-zero. </p>
491<dl class="params"><dt>Parameters</dt><dd>
492 <table class="params">
493 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
494 </table>
495 </dd>
496</dl>
497<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>
498
Jenkins0e205f72019-11-28 16:53:35 +0000499<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00206">206</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000500
501</div>
502</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000503<a id="afc6a76528024472919bb5d50d067578b"></a>
504<h2 class="memtitle"><span class="permalink"><a href="#afc6a76528024472919bb5d50d067578b">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO</h2>
505
Anthony Barbier06ea0482018-02-22 15:45:35 +0000506<div class="memitem">
507<div class="memproto">
508 <table class="memname">
509 <tr>
510 <td class="memname">#define ASYMM_MASK_IF_ZERO</td>
511 <td>(</td>
512 <td class="paramtype">&#160;</td>
513 <td class="paramname">a, </td>
514 </tr>
515 <tr>
516 <td class="paramkey"></td>
517 <td></td>
518 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100519 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000520 </tr>
521 <tr>
522 <td></td>
523 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100524 <td></td><td>&#160;&#160;&#160;asymm_mask_if_zero##size(a)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000525 </tr>
526 </table>
527</div><div class="memdoc">
528
Jenkins0e205f72019-11-28 16:53:35 +0000529<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00376">376</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000530
531</div>
532</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000533<a id="a8c47a92ec76a1e367b45305c17d9ea88"></a>
534<h2 class="memtitle"><span class="permalink"><a href="#a8c47a92ec76a1e367b45305c17d9ea88">&#9670;&nbsp;</a></span>ASYMM_MASK_IF_ZERO_IMPL</h2>
535
Anthony Barbier06ea0482018-02-22 15:45:35 +0000536<div class="memitem">
537<div class="memproto">
538 <table class="memname">
539 <tr>
540 <td class="memname">#define ASYMM_MASK_IF_ZERO_IMPL</td>
541 <td>(</td>
542 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100543 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000544 <td></td>
545 </tr>
546 </table>
547</div><div class="memdoc">
Jenkins514be652019-02-28 12:25:18 +0000548<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>
Jenkins0e205f72019-11-28 16:53:35 +0000549<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000550</div><!-- fragment -->
551<p>For each element of input vector, the corresponding bits of the result item are set if the input item is zero. </p>
552<dl class="params"><dt>Parameters</dt><dd>
553 <table class="params">
554 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
555 </table>
556 </dd>
557</dl>
558<dl class="section return"><dt>Returns</dt><dd>Output vector with bits set when corresponding bit in <code>a</code> is zero. </dd></dl>
559
Jenkins0e205f72019-11-28 16:53:35 +0000560<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00191">191</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000561
562</div>
563</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000564<a id="a5483aefd5e07244661178bfd3f434448"></a>
565<h2 class="memtitle"><span class="permalink"><a href="#a5483aefd5e07244661178bfd3f434448">&#9670;&nbsp;</a></span>ASYMM_MULT</h2>
566
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000567<div class="memitem">
568<div class="memproto">
569 <table class="memname">
570 <tr>
571 <td class="memname">#define ASYMM_MULT</td>
572 <td>(</td>
573 <td class="paramtype">&#160;</td>
574 <td class="paramname">a, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype">&#160;</td>
580 <td class="paramname">b, </td>
581 </tr>
582 <tr>
583 <td class="paramkey"></td>
584 <td></td>
585 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100586 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000587 </tr>
588 <tr>
589 <td></td>
590 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100591 <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 +0000592 </tr>
593 </table>
594</div><div class="memdoc">
595
Jenkins0e205f72019-11-28 16:53:35 +0000596<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00371">371</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000597
598</div>
599</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000600<a id="a86de0ffca367bfcf27a8ae5dd1fdef2d"></a>
601<h2 class="memtitle"><span class="permalink"><a href="#a86de0ffca367bfcf27a8ae5dd1fdef2d">&#9670;&nbsp;</a></span>ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</h2>
602
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000603<div class="memitem">
604<div class="memproto">
605 <table class="memname">
606 <tr>
607 <td class="memname">#define ASYMM_MULT_BY_QUANT_MULTIPLIER_LESS_THAN_ONE</td>
608 <td>(</td>
609 <td class="paramtype">&#160;</td>
610 <td class="paramname">x, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">&#160;</td>
616 <td class="paramname">quantized_multiplier, </td>
617 </tr>
618 <tr>
619 <td class="paramkey"></td>
620 <td></td>
621 <td class="paramtype">&#160;</td>
622 <td class="paramname">right_shift, </td>
623 </tr>
624 <tr>
625 <td class="paramkey"></td>
626 <td></td>
627 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100628 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000629 </tr>
630 <tr>
631 <td></td>
632 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100633 <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 +0000634 </tr>
635 </table>
636</div><div class="memdoc">
637
Jenkins0e205f72019-11-28 16:53:35 +0000638<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00372">372</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000639
640</div>
641</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000642<a id="ad4b199221927cbabbf859e4d2efb688d"></a>
643<h2 class="memtitle"><span class="permalink"><a href="#ad4b199221927cbabbf859e4d2efb688d">&#9670;&nbsp;</a></span>ASYMM_MULT_IMPL</h2>
644
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000645<div class="memitem">
646<div class="memproto">
647 <table class="memname">
648 <tr>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000649 <td class="memname">#define ASYMM_MULT_IMPL</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000650 <td>(</td>
651 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100652 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000653 <td></td>
654 </tr>
655 </table>
656</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +0000657<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#l00057">softmax_layer_quantized.cl:57</a></div></div>
Jenkins4ba87db2019-05-23 17:11:51 +0100658<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 +0000659<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>
Jenkins0e205f72019-11-28 16:53:35 +0000660<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000661</div><!-- fragment -->
662<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>
663<dl class="params"><dt>Parameters</dt><dd>
664 <table class="params">
665 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
666 </table>
667 </dd>
668</dl>
669<dl class="section return"><dt>Returns</dt><dd>Product of two fixed-point numbers. </dd></dl>
670
Jenkins0e205f72019-11-28 16:53:35 +0000671<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00124">124</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000672
673</div>
674</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000675<a id="ae77f34e1316d52c1ee84c35be9efb0d8"></a>
676<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>
677
Anthony Barbier06ea0482018-02-22 15:45:35 +0000678<div class="memitem">
679<div class="memproto">
680 <table class="memname">
681 <tr>
682 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1</td>
683 <td>(</td>
684 <td class="paramtype">&#160;</td>
685 <td class="paramname">a, </td>
686 </tr>
687 <tr>
688 <td class="paramkey"></td>
689 <td></td>
690 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100691 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000692 </tr>
693 <tr>
694 <td></td>
695 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100696 <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 +0000697 </tr>
698 </table>
699</div><div class="memdoc">
700
Jenkins0e205f72019-11-28 16:53:35 +0000701<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00380">380</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000702
703</div>
704</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000705<a id="a0e53aa5d4cbcec7a0c0085838f32453d"></a>
706<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>
707
Anthony Barbier06ea0482018-02-22 15:45:35 +0000708<div class="memitem">
709<div class="memproto">
710 <table class="memname">
711 <tr>
712 <td class="memname">#define ASYMM_ONE_OVER_ONE_PLUS_X_FOR_X_IN_0_1_IMPL</td>
713 <td>(</td>
714 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100715 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000716 <td></td>
717 </tr>
718 </table>
719</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +0000720<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#l00371">helpers_asymm.h:371</a></div></div>
721<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#l00381">helpers_asymm.h:381</a></div></div>
722<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#l00382">helpers_asymm.h:382</a></div></div>
723<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000724</div><!-- fragment -->
725<p>Calculates \( 1 / (1 + x) \) for x in (0, 1). </p>
726<dl class="params"><dt>Parameters</dt><dd>
727 <table class="params">
728 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
729 </table>
730 </dd>
731</dl>
732<dl class="section return"><dt>Returns</dt><dd>Result in fixed-point format Q0. </dd></dl>
733
Jenkins0e205f72019-11-28 16:53:35 +0000734<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 +0000735
736</div>
737</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000738<a id="a98585f1bb84dea90aecbf59785c46151"></a>
739<h2 class="memtitle"><span class="permalink"><a href="#a98585f1bb84dea90aecbf59785c46151">&#9670;&nbsp;</a></span>ASYMM_RESCALE</h2>
740
Anthony Barbier06ea0482018-02-22 15:45:35 +0000741<div class="memitem">
742<div class="memproto">
743 <table class="memname">
744 <tr>
745 <td class="memname">#define ASYMM_RESCALE</td>
746 <td>(</td>
747 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100748 <td class="paramname">value, </td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000749 </tr>
750 <tr>
751 <td class="paramkey"></td>
752 <td></td>
753 <td class="paramtype">&#160;</td>
754 <td class="paramname">src_integer_bits, </td>
755 </tr>
756 <tr>
757 <td class="paramkey"></td>
758 <td></td>
759 <td class="paramtype">&#160;</td>
760 <td class="paramname">dst_integer_bits, </td>
761 </tr>
762 <tr>
763 <td class="paramkey"></td>
764 <td></td>
765 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100766 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000767 </tr>
768 <tr>
769 <td></td>
770 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100771 <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 +0000772 </tr>
773 </table>
774</div><div class="memdoc">
775
Jenkins0e205f72019-11-28 16:53:35 +0000776<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00383">383</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000777
778</div>
779</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000780<a id="aace85e2a32bacdaa4e2d2055deabfc57"></a>
781<h2 class="memtitle"><span class="permalink"><a href="#aace85e2a32bacdaa4e2d2055deabfc57">&#9670;&nbsp;</a></span>ASYMM_RESCALE_IMPL</h2>
782
Anthony Barbier06ea0482018-02-22 15:45:35 +0000783<div class="memitem">
784<div class="memproto">
785 <table class="memname">
786 <tr>
787 <td class="memname">#define ASYMM_RESCALE_IMPL</td>
788 <td>(</td>
789 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100790 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000791 <td></td>
792 </tr>
793 </table>
794</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +0000795<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#l00381">helpers_asymm.h:381</a></div></div>
796<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#l00059">softmax_layer_quantized.cl:59</a></div></div>
797<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000798</div><!-- fragment -->
799<p>Considering the integer value as fixed-point, change the number of integer bits and update value accordingly. </p>
800<dl class="params"><dt>Parameters</dt><dd>
801 <table class="params">
802 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
803 </table>
804 </dd>
805</dl>
806<dl class="section return"><dt>Returns</dt><dd>Rescaled value. </dd></dl>
807
Jenkins0e205f72019-11-28 16:53:35 +0000808<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 Barbier8140e1e2017-12-14 23:48:46 +0000809
810</div>
811</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000812<a id="aa43fc359dea64362f3016384f4269845"></a>
813<h2 class="memtitle"><span class="permalink"><a href="#aa43fc359dea64362f3016384f4269845">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2</h2>
814
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000815<div class="memitem">
816<div class="memproto">
817 <table class="memname">
818 <tr>
819 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2</td>
820 <td>(</td>
821 <td class="paramtype">&#160;</td>
822 <td class="paramname">x, </td>
823 </tr>
824 <tr>
825 <td class="paramkey"></td>
826 <td></td>
827 <td class="paramtype">&#160;</td>
828 <td class="paramname">exponent, </td>
829 </tr>
830 <tr>
831 <td class="paramkey"></td>
832 <td></td>
833 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100834 <td class="paramname">size&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000835 </tr>
836 <tr>
837 <td></td>
838 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100839 <td></td><td>&#160;&#160;&#160;asymm_rounding_divide_by_POW2_##size(x, exponent)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000840 </tr>
841 </table>
842</div><div class="memdoc">
843
Jenkins0e205f72019-11-28 16:53:35 +0000844<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00370">370</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000845
846</div>
847</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000848<a id="abf75e242631b23007e4046682aa57ec5"></a>
849<h2 class="memtitle"><span class="permalink"><a href="#abf75e242631b23007e4046682aa57ec5">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</h2>
850
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000851<div class="memitem">
852<div class="memproto">
853 <table class="memname">
854 <tr>
855 <td class="memname">#define ASYMM_ROUNDING_DIVIDE_BY_POW2_IMPL</td>
856 <td>(</td>
857 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100858 <td class="paramname">size</td><td>)</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000859 <td></td>
860 </tr>
861 </table>
862</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +0000863<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, <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) exponent) \</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) \</div><div class="line"> zero = (<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))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) \</div><div class="line"> one = (<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))1; \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">int</span>, size) \</div><div class="line"> mask = (one &lt;&lt; exponent) - one; \</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>
Jenkins514be652019-02-28 12:25:18 +0000864<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>
Jenkins0e205f72019-11-28 16:53:35 +0000865<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000866</div><!-- fragment -->
867<p>Correctly-rounded-to-nearest division by a power-of-two. </p>
868<dl class="params"><dt>Parameters</dt><dd>
869 <table class="params">
870 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
871 </table>
872 </dd>
873</dl>
874<dl class="section return"><dt>Returns</dt><dd>Correctly-rounded-to-nearest division by a power-of-two. </dd></dl>
875
Jenkins0e205f72019-11-28 16:53:35 +0000876<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00103">103</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +0000877
878</div>
879</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000880<a id="ad47fa44c1566aa4678fe524478490612"></a>
881<h2 class="memtitle"><span class="permalink"><a href="#ad47fa44c1566aa4678fe524478490612">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM</h2>
882
Anthony Barbier06ea0482018-02-22 15:45:35 +0000883<div class="memitem">
884<div class="memproto">
885 <table class="memname">
886 <tr>
887 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM</td>
888 <td>(</td>
889 <td class="paramtype">&#160;</td>
890 <td class="paramname">a, </td>
891 </tr>
892 <tr>
893 <td class="paramkey"></td>
894 <td></td>
895 <td class="paramtype">&#160;</td>
896 <td class="paramname">b, </td>
897 </tr>
898 <tr>
899 <td class="paramkey"></td>
900 <td></td>
901 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100902 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000903 </tr>
904 <tr>
905 <td></td>
906 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100907 <td></td><td>&#160;&#160;&#160;asymm_rounding_half_sum##size(a, b)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000908 </tr>
909 </table>
910</div><div class="memdoc">
911
Jenkins0e205f72019-11-28 16:53:35 +0000912<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00382">382</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000913
914</div>
915</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000916<a id="a8d97c6698c0e44424deae3f3130c55ac"></a>
917<h2 class="memtitle"><span class="permalink"><a href="#a8d97c6698c0e44424deae3f3130c55ac">&#9670;&nbsp;</a></span>ASYMM_ROUNDING_HALF_SUM_IMPL</h2>
918
Anthony Barbier06ea0482018-02-22 15:45:35 +0000919<div class="memitem">
920<div class="memproto">
921 <table class="memname">
922 <tr>
923 <td class="memname">#define ASYMM_ROUNDING_HALF_SUM_IMPL</td>
924 <td>(</td>
925 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100926 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000927 <td></td>
928 </tr>
929 </table>
930</div><div class="memdoc">
Jenkins4ba87db2019-05-23 17:11:51 +0100931<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>
Jenkins975dfe12019-09-02 11:47:54 +0100932<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#l00065">reduction_operation.cl:65</a></div></div>
Jenkins514be652019-02-28 12:25:18 +0000933<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>
Jenkins0e205f72019-11-28 16:53:35 +0000934<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000935</div><!-- fragment -->
936<p>Calculates (a+b)/2, rounded to the nearest integer. </p>
937<p>Equivalent to VRHADD in the ARM NEON instruction set.</p>
938<dl class="params"><dt>Parameters</dt><dd>
939 <table class="params">
940 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
941 </table>
942 </dd>
943</dl>
944<dl class="section return"><dt>Returns</dt><dd>(a+b)/2, rounded to the nearest integer. </dd></dl>
945
Jenkins0e205f72019-11-28 16:53:35 +0000946<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 +0000947
948</div>
949</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000950<a id="a4cc3ff3a2eeb5f5e9d6743e08f632928"></a>
951<h2 class="memtitle"><span class="permalink"><a href="#a4cc3ff3a2eeb5f5e9d6743e08f632928">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</h2>
952
Anthony Barbier06ea0482018-02-22 15:45:35 +0000953<div class="memitem">
954<div class="memproto">
955 <table class="memname">
956 <tr>
957 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2</td>
958 <td>(</td>
959 <td class="paramtype">&#160;</td>
960 <td class="paramname">x, </td>
961 </tr>
962 <tr>
963 <td class="paramkey"></td>
964 <td></td>
965 <td class="paramtype">&#160;</td>
966 <td class="paramname">exponent, </td>
967 </tr>
968 <tr>
969 <td class="paramkey"></td>
970 <td></td>
971 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100972 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000973 </tr>
974 <tr>
975 <td></td>
976 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100977 <td></td><td>&#160;&#160;&#160;asymm_saturating_rounding_mult_by_pow2##size(x, exponent)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000978 </tr>
979 </table>
980</div><div class="memdoc">
981
Jenkins0e205f72019-11-28 16:53:35 +0000982<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00381">381</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000983
984</div>
985</div>
Jenkinsb9abeae2018-11-22 11:58:08 +0000986<a id="a737312bc4a68c79a77cfab4849793bc0"></a>
987<h2 class="memtitle"><span class="permalink"><a href="#a737312bc4a68c79a77cfab4849793bc0">&#9670;&nbsp;</a></span>ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</h2>
988
Anthony Barbier06ea0482018-02-22 15:45:35 +0000989<div class="memitem">
990<div class="memproto">
991 <table class="memname">
992 <tr>
993 <td class="memname">#define ASYMM_SATURATING_ROUNDING_MULT_BY_POW2_IMPL</td>
994 <td>(</td>
995 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +0100996 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +0000997 <td></td>
998 </tr>
999 </table>
1000</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +00001001<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#l00370">helpers_asymm.h:370</a></div></div>
1002<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#l00377">helpers_asymm.h:377</a></div></div>
1003<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#l00375">helpers_asymm.h:375</a></div></div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001004<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>
Jenkins0e205f72019-11-28 16:53:35 +00001005<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001006</div><!-- fragment -->
1007<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>
1008<dl class="params"><dt>Parameters</dt><dd>
1009 <table class="params">
1010 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1011 </table>
1012 </dd>
1013</dl>
1014<dl class="section return"><dt>Returns</dt><dd>Arithmetic left or right shift. </dd></dl>
1015
Jenkins0e205f72019-11-28 16:53:35 +00001016<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00277">277</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001017
1018</div>
1019</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001020<a id="a9bc08a8c1833c5e6055ad6665e3ccf12"></a>
1021<h2 class="memtitle"><span class="permalink"><a href="#a9bc08a8c1833c5e6055ad6665e3ccf12">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK</h2>
1022
Anthony Barbier06ea0482018-02-22 15:45:35 +00001023<div class="memitem">
1024<div class="memproto">
1025 <table class="memname">
1026 <tr>
1027 <td class="memname">#define ASYMM_SELECT_USING_MASK</td>
1028 <td>(</td>
1029 <td class="paramtype">&#160;</td>
1030 <td class="paramname">if_mask, </td>
1031 </tr>
1032 <tr>
1033 <td class="paramkey"></td>
1034 <td></td>
1035 <td class="paramtype">&#160;</td>
1036 <td class="paramname">then_val, </td>
1037 </tr>
1038 <tr>
1039 <td class="paramkey"></td>
1040 <td></td>
1041 <td class="paramtype">&#160;</td>
1042 <td class="paramname">else_val, </td>
1043 </tr>
1044 <tr>
1045 <td class="paramkey"></td>
1046 <td></td>
1047 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001048 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001049 </tr>
1050 <tr>
1051 <td></td>
1052 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001053 <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 +00001054 </tr>
1055 </table>
1056</div><div class="memdoc">
1057
Jenkins0e205f72019-11-28 16:53:35 +00001058<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00375">375</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001059
1060</div>
1061</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001062<a id="ab0b4069b25ac886d5cb6eb3b76473f88"></a>
1063<h2 class="memtitle"><span class="permalink"><a href="#ab0b4069b25ac886d5cb6eb3b76473f88">&#9670;&nbsp;</a></span>ASYMM_SELECT_USING_MASK_IMPL</h2>
1064
Anthony Barbier06ea0482018-02-22 15:45:35 +00001065<div class="memitem">
1066<div class="memproto">
1067 <table class="memname">
1068 <tr>
1069 <td class="memname">#define ASYMM_SELECT_USING_MASK_IMPL</td>
1070 <td>(</td>
1071 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001072 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001073 <td></td>
1074 </tr>
1075 </table>
1076</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +00001077<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001078</div><!-- fragment -->
1079<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>
1080<p>Equivalent to the VBSL instruction in ARM NEON.</p>
1081<dl class="params"><dt>Parameters</dt><dd>
1082 <table class="params">
1083 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1084 </table>
1085 </dd>
1086</dl>
1087<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>
1088
Jenkins0e205f72019-11-28 16:53:35 +00001089<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00178">178</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1090
1091</div>
1092</div>
1093<a id="ae41349ddba7d47794bba4d2fcf659872"></a>
1094<h2 class="memtitle"><span class="permalink"><a href="#ae41349ddba7d47794bba4d2fcf659872">&#9670;&nbsp;</a></span>CONVERT_DOWN_RTE</h2>
1095
1096<div class="memitem">
1097<div class="memproto">
1098 <table class="memname">
1099 <tr>
1100 <td class="memname">#define CONVERT_DOWN_RTE</td>
1101 <td>(</td>
1102 <td class="paramtype">&#160;</td>
1103 <td class="paramname">x, </td>
1104 </tr>
1105 <tr>
1106 <td class="paramkey"></td>
1107 <td></td>
1108 <td class="paramtype">&#160;</td>
1109 <td class="paramname">type&#160;</td>
1110 </tr>
1111 <tr>
1112 <td></td>
1113 <td>)</td>
1114 <td></td><td>&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#a2ed0ea00bf682e806812fd9dbdbea5e7">CONVERT_DOWN_RTE_STR</a>(x, type)</td>
1115 </tr>
1116 </table>
1117</div><div class="memdoc">
1118
1119<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00037">37</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1120
1121</div>
1122</div>
1123<a id="a2ed0ea00bf682e806812fd9dbdbea5e7"></a>
1124<h2 class="memtitle"><span class="permalink"><a href="#a2ed0ea00bf682e806812fd9dbdbea5e7">&#9670;&nbsp;</a></span>CONVERT_DOWN_RTE_STR</h2>
1125
1126<div class="memitem">
1127<div class="memproto">
1128 <table class="memname">
1129 <tr>
1130 <td class="memname">#define CONVERT_DOWN_RTE_STR</td>
1131 <td>(</td>
1132 <td class="paramtype">&#160;</td>
1133 <td class="paramname">x, </td>
1134 </tr>
1135 <tr>
1136 <td class="paramkey"></td>
1137 <td></td>
1138 <td class="paramtype">&#160;</td>
1139 <td class="paramname">type&#160;</td>
1140 </tr>
1141 <tr>
1142 <td></td>
1143 <td>)</td>
1144 <td></td><td>&#160;&#160;&#160;(convert_##type##_rte((x)))</td>
1145 </tr>
1146 </table>
1147</div><div class="memdoc">
1148
1149<p>Convert the given vector with round to nearest even rounding mode. </p>
1150<dl class="params"><dt>Parameters</dt><dd>
1151 <table class="params">
1152 <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The target to be converted </td></tr>
1153 <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The target type</td></tr>
1154 </table>
1155 </dd>
1156</dl>
1157<dl class="section return"><dt>Returns</dt><dd>The converted vector </dd></dl>
1158
1159<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00036">36</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1160
1161</div>
1162</div>
1163<a id="a4f0a8fe9e57d31f7ca26a697ca140029"></a>
1164<h2 class="memtitle"><span class="permalink"><a href="#a4f0a8fe9e57d31f7ca26a697ca140029">&#9670;&nbsp;</a></span>DEQUANTIZE</h2>
1165
1166<div class="memitem">
1167<div class="memproto">
1168 <table class="memname">
1169 <tr>
1170 <td class="memname">#define DEQUANTIZE</td>
1171 <td>(</td>
1172 <td class="paramtype">&#160;</td>
1173 <td class="paramname">input, </td>
1174 </tr>
1175 <tr>
1176 <td class="paramkey"></td>
1177 <td></td>
1178 <td class="paramtype">&#160;</td>
1179 <td class="paramname"><a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
1180 </tr>
1181 <tr>
1182 <td class="paramkey"></td>
1183 <td></td>
1184 <td class="paramtype">&#160;</td>
1185 <td class="paramname">scale, </td>
1186 </tr>
1187 <tr>
1188 <td class="paramkey"></td>
1189 <td></td>
1190 <td class="paramtype">&#160;</td>
1191 <td class="paramname">type, </td>
1192 </tr>
1193 <tr>
1194 <td class="paramkey"></td>
1195 <td></td>
1196 <td class="paramtype">&#160;</td>
1197 <td class="paramname">size&#160;</td>
1198 </tr>
1199 <tr>
1200 <td></td>
1201 <td>)</td>
1202 <td></td><td>&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#ab98579b6a5e03ada17294034cbe4aa02">DEQUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)</td>
1203 </tr>
1204 </table>
1205</div><div class="memdoc">
1206
1207<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>
1208
1209</div>
1210</div>
1211<a id="ac5fe0200eafe2b88af574a2ed34c3c11"></a>
1212<h2 class="memtitle"><span class="permalink"><a href="#ac5fe0200eafe2b88af574a2ed34c3c11">&#9670;&nbsp;</a></span>DEQUANTIZE_IMPL</h2>
1213
1214<div class="memitem">
1215<div class="memproto">
1216 <table class="memname">
1217 <tr>
1218 <td class="memname">#define DEQUANTIZE_IMPL</td>
1219 <td>(</td>
1220 <td class="paramtype">&#160;</td>
1221 <td class="paramname">type, </td>
1222 </tr>
1223 <tr>
1224 <td class="paramkey"></td>
1225 <td></td>
1226 <td class="paramtype">&#160;</td>
1227 <td class="paramname">size&#160;</td>
1228 </tr>
1229 <tr>
1230 <td></td>
1231 <td>)</td>
1232 <td></td><td></td>
1233 </tr>
1234 </table>
1235</div><div class="memdoc">
1236<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">float</span>, size) dequantize_##<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>##size(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, <span class="keywordtype">float</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>) \</div><div class="line"> { \</div><div class="line"> return (<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aa8d95ba04fc73845abc6045952cae5be">CONVERT</a>(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">float</span>, 4)) - <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>; \</div><div class="line"> }</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">helpers.h:510</a></div></div>
1237<div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_aa8d95ba04fc73845abc6045952cae5be"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#aa8d95ba04fc73845abc6045952cae5be">CONVERT</a></div><div class="ttdeci">#define CONVERT(x, type)</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00261">helpers.h:261</a></div></div>
1238<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
1239<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">PixelWiseMultiplication.cpp:317</a></div></div>
1240<div class="ttc" id="namespace_gemm_tuner_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">GemmTuner.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner.py:527</a></div></div>
1241<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#l00255">helpers.h:255</a></div></div>
1242</div><!-- fragment -->
1243<p>Dequantize a vector of values to floating-point. </p>
1244<dl class="params"><dt>Parameters</dt><dd>
1245 <table class="params">
1246 <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Input data type. </td></tr>
1247 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1248 </table>
1249 </dd>
1250</dl>
1251<dl class="section return"><dt>Returns</dt><dd>dequantized values in floating point </dd></dl>
1252
1253<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00091">91</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1254
1255</div>
1256</div>
1257<a id="ab98579b6a5e03ada17294034cbe4aa02"></a>
1258<h2 class="memtitle"><span class="permalink"><a href="#ab98579b6a5e03ada17294034cbe4aa02">&#9670;&nbsp;</a></span>DEQUANTIZE_STR</h2>
1259
1260<div class="memitem">
1261<div class="memproto">
1262 <table class="memname">
1263 <tr>
1264 <td class="memname">#define DEQUANTIZE_STR</td>
1265 <td>(</td>
1266 <td class="paramtype">&#160;</td>
1267 <td class="paramname">input, </td>
1268 </tr>
1269 <tr>
1270 <td class="paramkey"></td>
1271 <td></td>
1272 <td class="paramtype">&#160;</td>
1273 <td class="paramname"><a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
1274 </tr>
1275 <tr>
1276 <td class="paramkey"></td>
1277 <td></td>
1278 <td class="paramtype">&#160;</td>
1279 <td class="paramname">scale, </td>
1280 </tr>
1281 <tr>
1282 <td class="paramkey"></td>
1283 <td></td>
1284 <td class="paramtype">&#160;</td>
1285 <td class="paramname">type, </td>
1286 </tr>
1287 <tr>
1288 <td class="paramkey"></td>
1289 <td></td>
1290 <td class="paramtype">&#160;</td>
1291 <td class="paramname">size&#160;</td>
1292 </tr>
1293 <tr>
1294 <td></td>
1295 <td>)</td>
1296 <td></td><td>&#160;&#160;&#160;dequantize_##type##size(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale)</td>
1297 </tr>
1298 </table>
1299</div><div class="memdoc">
1300
1301<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 Barbier06ea0482018-02-22 15:45:35 +00001302
1303</div>
1304</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001305<a id="ace9ecff421cf885ad2c2d72d87c492cb"></a>
1306<h2 class="memtitle"><span class="permalink"><a href="#ace9ecff421cf885ad2c2d72d87c492cb">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER</h2>
1307
Anthony Barbier06ea0482018-02-22 15:45:35 +00001308<div class="memitem">
1309<div class="memproto">
1310 <table class="memname">
1311 <tr>
1312 <td class="memname">#define EXP_BARREL_SHIFTER</td>
1313 <td>(</td>
1314 <td class="paramtype">&#160;</td>
1315 <td class="paramname">result, </td>
1316 </tr>
1317 <tr>
1318 <td class="paramkey"></td>
1319 <td></td>
1320 <td class="paramtype">&#160;</td>
1321 <td class="paramname">exponent, </td>
1322 </tr>
1323 <tr>
1324 <td class="paramkey"></td>
1325 <td></td>
1326 <td class="paramtype">&#160;</td>
1327 <td class="paramname">fp_multiplier, </td>
1328 </tr>
1329 <tr>
1330 <td class="paramkey"></td>
1331 <td></td>
1332 <td class="paramtype">&#160;</td>
1333 <td class="paramname">k_integer_bits, </td>
1334 </tr>
1335 <tr>
1336 <td class="paramkey"></td>
1337 <td></td>
1338 <td class="paramtype">&#160;</td>
1339 <td class="paramname">k_fractional_bits, </td>
1340 </tr>
1341 <tr>
1342 <td class="paramkey"></td>
1343 <td></td>
1344 <td class="paramtype">&#160;</td>
1345 <td class="paramname">remainder, </td>
1346 </tr>
1347 <tr>
1348 <td class="paramkey"></td>
1349 <td></td>
1350 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001351 <td class="paramname">size&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001352 </tr>
1353 <tr>
1354 <td></td>
1355 <td>)</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001356 <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 +00001357 </tr>
1358 </table>
1359</div><div class="memdoc">
1360
Jenkins0e205f72019-11-28 16:53:35 +00001361<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00378">378</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001362
1363</div>
1364</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001365<a id="aa12ca21cb9a54d2e4c26d57303fe44a7"></a>
1366<h2 class="memtitle"><span class="permalink"><a href="#aa12ca21cb9a54d2e4c26d57303fe44a7">&#9670;&nbsp;</a></span>EXP_BARREL_SHIFTER_IMPL</h2>
1367
Anthony Barbier06ea0482018-02-22 15:45:35 +00001368<div class="memitem">
1369<div class="memproto">
1370 <table class="memname">
1371 <tr>
1372 <td class="memname">#define EXP_BARREL_SHIFTER_IMPL</td>
1373 <td>(</td>
1374 <td class="paramtype">&#160;</td>
Jenkinsb3a371b2018-05-23 11:36:53 +01001375 <td class="paramname">size</td><td>)</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001376 <td></td>
1377 </tr>
1378 </table>
1379</div><div class="memdoc">
Jenkins0e205f72019-11-28 16:53:35 +00001380<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#l00371">helpers_asymm.h:371</a></div></div>
1381<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#l00377">helpers_asymm.h:377</a></div></div>
1382<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#l00375">helpers_asymm.h:375</a></div></div>
1383<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#l00255">helpers.h:255</a></div></div>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001384</div><!-- fragment -->
Jenkins0e205f72019-11-28 16:53:35 +00001385<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00214">214</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1386
1387</div>
1388</div>
1389<a id="a85ca50207e80cca8c76b5d3da85e4a9f"></a>
1390<h2 class="memtitle"><span class="permalink"><a href="#a85ca50207e80cca8c76b5d3da85e4a9f">&#9670;&nbsp;</a></span>QUANTIZE</h2>
1391
1392<div class="memitem">
1393<div class="memproto">
1394 <table class="memname">
1395 <tr>
1396 <td class="memname">#define QUANTIZE</td>
1397 <td>(</td>
1398 <td class="paramtype">&#160;</td>
1399 <td class="paramname">input, </td>
1400 </tr>
1401 <tr>
1402 <td class="paramkey"></td>
1403 <td></td>
1404 <td class="paramtype">&#160;</td>
1405 <td class="paramname"><a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
1406 </tr>
1407 <tr>
1408 <td class="paramkey"></td>
1409 <td></td>
1410 <td class="paramtype">&#160;</td>
1411 <td class="paramname">scale, </td>
1412 </tr>
1413 <tr>
1414 <td class="paramkey"></td>
1415 <td></td>
1416 <td class="paramtype">&#160;</td>
1417 <td class="paramname">type, </td>
1418 </tr>
1419 <tr>
1420 <td class="paramkey"></td>
1421 <td></td>
1422 <td class="paramtype">&#160;</td>
1423 <td class="paramname">size&#160;</td>
1424 </tr>
1425 <tr>
1426 <td></td>
1427 <td>)</td>
1428 <td></td><td>&#160;&#160;&#160;<a class="el" href="helpers__asymm_8h.xhtml#a7fd28520161d368b45c31098ad948d32">QUANTIZE_STR</a>(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale, type, size)</td>
1429 </tr>
1430 </table>
1431</div><div class="memdoc">
1432
1433<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>
1434
1435</div>
1436</div>
1437<a id="a1cb86b1d0c99a1e72dacda1bc615baf6"></a>
1438<h2 class="memtitle"><span class="permalink"><a href="#a1cb86b1d0c99a1e72dacda1bc615baf6">&#9670;&nbsp;</a></span>QUANTIZE_IMPL</h2>
1439
1440<div class="memitem">
1441<div class="memproto">
1442 <table class="memname">
1443 <tr>
1444 <td class="memname">#define QUANTIZE_IMPL</td>
1445 <td>(</td>
1446 <td class="paramtype">&#160;</td>
1447 <td class="paramname">type, </td>
1448 </tr>
1449 <tr>
1450 <td class="paramkey"></td>
1451 <td></td>
1452 <td class="paramtype">&#160;</td>
1453 <td class="paramname">size&#160;</td>
1454 </tr>
1455 <tr>
1456 <td></td>
1457 <td>)</td>
1458 <td></td><td></td>
1459 </tr>
1460 </table>
1461</div><div class="memdoc">
1462<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>(<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>, size) quantize_##<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</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">float</span>, size) <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a>, <span class="keywordtype">float</span> <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, <span class="keywordtype">float</span> <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>) \</div><div class="line"> { \</div><div class="line"> VEC_DATA_TYPE(<span class="keywordtype">float</span>, size) \</div><div class="line"> out_f32 = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> / (<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">float</span>, size))(<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>) + (<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<span class="keywordtype">float</span>, size))(<a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>); \</div><div class="line"> VEC_DATA_TYPE(<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>, size) \</div><div class="line"> res = <a class="code" href="direct__convolution1x1_8cl.xhtml#a1f15728672380ade7a238f5e783d54d2">CONVERT_SAT</a>(<a class="code" href="helpers__asymm_8h.xhtml#ae41349ddba7d47794bba4d2fcf659872">CONVERT_DOWN_RTE</a>(out_f32, <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="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a36f754c05b6fddf6df0d8d0a74f8159f">VEC_DATA_TYPE</a>(<a class="code" href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">type</a>, size)); \</div><div class="line"> return res; \</div><div class="line"> }</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">helpers.h:510</a></div></div>
1463<div class="ttc" id="direct__convolution1x1_8cl_xhtml_a1f15728672380ade7a238f5e783d54d2"><div class="ttname"><a href="direct__convolution1x1_8cl.xhtml#a1f15728672380ade7a238f5e783d54d2">CONVERT_SAT</a></div><div class="ttdeci">#define CONVERT_SAT(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="direct__convolution1x1_8cl_source.xhtml#l00030">direct_convolution1x1.cl:30</a></div></div>
1464<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
1465<div class="ttc" id="helpers__asymm_8h_xhtml_ae41349ddba7d47794bba4d2fcf659872"><div class="ttname"><a href="helpers__asymm_8h.xhtml#ae41349ddba7d47794bba4d2fcf659872">CONVERT_DOWN_RTE</a></div><div class="ttdeci">#define CONVERT_DOWN_RTE(x, type)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00037">helpers_asymm.h:37</a></div></div>
1466<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">PixelWiseMultiplication.cpp:317</a></div></div>
1467<div class="ttc" id="namespace_gemm_tuner_xhtml_a7aead736a07eaf25623ad7bfa1f0ee2d"><div class="ttname"><a href="namespace_gemm_tuner.xhtml#a7aead736a07eaf25623ad7bfa1f0ee2d">GemmTuner.type</a></div><div class="ttdeci">type</div><div class="ttdef"><b>Definition:</b> <a href="_gemm_tuner_8py_source.xhtml#l00527">GemmTuner.py:527</a></div></div>
1468<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#l00255">helpers.h:255</a></div></div>
1469</div><!-- fragment -->
1470<p>Quantize a vector of values from floating-point. </p>
1471<dl class="params"><dt>Parameters</dt><dd>
1472 <table class="params">
1473 <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Output data type. </td></tr>
1474 <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of vector.</td></tr>
1475 </table>
1476 </dd>
1477</dl>
1478<dl class="section return"><dt>Returns</dt><dd>quantized values </dd></dl>
1479
1480<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00074">74</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
1481
1482</div>
1483</div>
1484<a id="a7fd28520161d368b45c31098ad948d32"></a>
1485<h2 class="memtitle"><span class="permalink"><a href="#a7fd28520161d368b45c31098ad948d32">&#9670;&nbsp;</a></span>QUANTIZE_STR</h2>
1486
1487<div class="memitem">
1488<div class="memproto">
1489 <table class="memname">
1490 <tr>
1491 <td class="memname">#define QUANTIZE_STR</td>
1492 <td>(</td>
1493 <td class="paramtype">&#160;</td>
1494 <td class="paramname">input, </td>
1495 </tr>
1496 <tr>
1497 <td class="paramkey"></td>
1498 <td></td>
1499 <td class="paramtype">&#160;</td>
1500 <td class="paramname"><a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, </td>
1501 </tr>
1502 <tr>
1503 <td class="paramkey"></td>
1504 <td></td>
1505 <td class="paramtype">&#160;</td>
1506 <td class="paramname">scale, </td>
1507 </tr>
1508 <tr>
1509 <td class="paramkey"></td>
1510 <td></td>
1511 <td class="paramtype">&#160;</td>
1512 <td class="paramname">type, </td>
1513 </tr>
1514 <tr>
1515 <td class="paramkey"></td>
1516 <td></td>
1517 <td class="paramtype">&#160;</td>
1518 <td class="paramname">size&#160;</td>
1519 </tr>
1520 <tr>
1521 <td></td>
1522 <td>)</td>
1523 <td></td><td>&#160;&#160;&#160;quantize_##type##size(input, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>, scale)</td>
1524 </tr>
1525 </table>
1526</div><div class="memdoc">
1527
1528<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 +00001529
1530</div>
1531</div>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00001532<h2 class="groupheader">Function Documentation</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00001533<a id="a1d51b02a83af2a152fa52755f572f5a6"></a>
1534<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>
1535
Anthony Barbier06ea0482018-02-22 15:45:35 +00001536<div class="memitem">
1537<div class="memproto">
1538<table class="mlabels">
1539 <tr>
1540 <td class="mlabels-left">
1541 <table class="memname">
1542 <tr>
1543 <td class="memname">int16 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl16 </td>
1544 <td>(</td>
1545 <td class="paramtype">int16&#160;</td>
1546 <td class="paramname"><em>a</em></td><td>)</td>
1547 <td></td>
1548 </tr>
1549 </table>
1550 </td>
1551 <td class="mlabels-right">
1552<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1553 </tr>
1554</table>
1555</div><div class="memdoc">
1556
Jenkins0e205f72019-11-28 16:53:35 +00001557<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00408">408</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001558
1559</div>
1560</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001561<a id="a8eb88d417247a1b8b8929e5c8faeb48d"></a>
1562<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>
1563
Anthony Barbier06ea0482018-02-22 15:45:35 +00001564<div class="memitem">
1565<div class="memproto">
1566<table class="mlabels">
1567 <tr>
1568 <td class="mlabels-left">
1569 <table class="memname">
1570 <tr>
1571 <td class="memname">int2 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl2 </td>
1572 <td>(</td>
1573 <td class="paramtype">int2&#160;</td>
1574 <td class="paramname"><em>a</em></td><td>)</td>
1575 <td></td>
1576 </tr>
1577 </table>
1578 </td>
1579 <td class="mlabels-right">
1580<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1581 </tr>
1582</table>
1583</div><div class="memdoc">
1584
Jenkins0e205f72019-11-28 16:53:35 +00001585<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00405">405</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001586
1587</div>
1588</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001589<a id="a43aa0011bd9b23ce3f691a9ae205fe07"></a>
1590<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>
1591
Anthony Barbier06ea0482018-02-22 15:45:35 +00001592<div class="memitem">
1593<div class="memproto">
1594<table class="mlabels">
1595 <tr>
1596 <td class="mlabels-left">
1597 <table class="memname">
1598 <tr>
1599 <td class="memname">int4 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl4 </td>
1600 <td>(</td>
1601 <td class="paramtype">int4&#160;</td>
1602 <td class="paramname"><em>a</em></td><td>)</td>
1603 <td></td>
1604 </tr>
1605 </table>
1606 </td>
1607 <td class="mlabels-right">
1608<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1609 </tr>
1610</table>
1611</div><div class="memdoc">
1612
Jenkins0e205f72019-11-28 16:53:35 +00001613<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00406">406</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001614
1615</div>
1616</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001617<a id="accb6ee0e0c578704ae23e6ab0a57cdd0"></a>
1618<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>
1619
Anthony Barbier06ea0482018-02-22 15:45:35 +00001620<div class="memitem">
1621<div class="memproto">
1622<table class="mlabels">
1623 <tr>
1624 <td class="mlabels-left">
1625 <table class="memname">
1626 <tr>
1627 <td class="memname">int8 asymm_exp_on_interval_between_negative_one_quarter_and_0_excl8 </td>
1628 <td>(</td>
1629 <td class="paramtype">int8&#160;</td>
1630 <td class="paramname"><em>a</em></td><td>)</td>
1631 <td></td>
1632 </tr>
1633 </table>
1634 </td>
1635 <td class="mlabels-right">
1636<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1637 </tr>
1638</table>
1639</div><div class="memdoc">
1640
Jenkins0e205f72019-11-28 16:53:35 +00001641<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00407">407</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001642
1643</div>
1644</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001645<a id="ae13cfab30e1d4c5f797f9d3d7c6acacf"></a>
1646<h2 class="memtitle"><span class="permalink"><a href="#ae13cfab30e1d4c5f797f9d3d7c6acacf">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values16()</h2>
1647
Anthony Barbier06ea0482018-02-22 15:45:35 +00001648<div class="memitem">
1649<div class="memproto">
1650<table class="mlabels">
1651 <tr>
1652 <td class="mlabels-left">
1653 <table class="memname">
1654 <tr>
1655 <td class="memname">int16 asymm_exp_on_negative_values16 </td>
1656 <td>(</td>
1657 <td class="paramtype">int16&#160;</td>
1658 <td class="paramname"><em>a</em>, </td>
1659 </tr>
1660 <tr>
1661 <td class="paramkey"></td>
1662 <td></td>
1663 <td class="paramtype">int&#160;</td>
1664 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1665 </tr>
1666 <tr>
1667 <td></td>
1668 <td>)</td>
1669 <td></td><td></td>
1670 </tr>
1671 </table>
1672 </td>
1673 <td class="mlabels-right">
1674<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1675 </tr>
1676</table>
1677</div><div class="memdoc">
1678
Jenkins0e205f72019-11-28 16:53:35 +00001679<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00433">433</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001680
1681</div>
1682</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001683<a id="a35b98dc80eefc6ce799720861a668691"></a>
1684<h2 class="memtitle"><span class="permalink"><a href="#a35b98dc80eefc6ce799720861a668691">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values2()</h2>
1685
Anthony Barbier06ea0482018-02-22 15:45:35 +00001686<div class="memitem">
1687<div class="memproto">
1688<table class="mlabels">
1689 <tr>
1690 <td class="mlabels-left">
1691 <table class="memname">
1692 <tr>
1693 <td class="memname">int2 asymm_exp_on_negative_values2 </td>
1694 <td>(</td>
1695 <td class="paramtype">int2&#160;</td>
1696 <td class="paramname"><em>a</em>, </td>
1697 </tr>
1698 <tr>
1699 <td class="paramkey"></td>
1700 <td></td>
1701 <td class="paramtype">int&#160;</td>
1702 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1703 </tr>
1704 <tr>
1705 <td></td>
1706 <td>)</td>
1707 <td></td><td></td>
1708 </tr>
1709 </table>
1710 </td>
1711 <td class="mlabels-right">
1712<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1713 </tr>
1714</table>
1715</div><div class="memdoc">
1716
Jenkins0e205f72019-11-28 16:53:35 +00001717<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00430">430</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001718
1719</div>
1720</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001721<a id="aa1dda459c2b10a9620b2c14a928ed4ba"></a>
1722<h2 class="memtitle"><span class="permalink"><a href="#aa1dda459c2b10a9620b2c14a928ed4ba">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values4()</h2>
1723
Anthony Barbier06ea0482018-02-22 15:45:35 +00001724<div class="memitem">
1725<div class="memproto">
1726<table class="mlabels">
1727 <tr>
1728 <td class="mlabels-left">
1729 <table class="memname">
1730 <tr>
1731 <td class="memname">int4 asymm_exp_on_negative_values4 </td>
1732 <td>(</td>
1733 <td class="paramtype">int4&#160;</td>
1734 <td class="paramname"><em>a</em>, </td>
1735 </tr>
1736 <tr>
1737 <td class="paramkey"></td>
1738 <td></td>
1739 <td class="paramtype">int&#160;</td>
1740 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1741 </tr>
1742 <tr>
1743 <td></td>
1744 <td>)</td>
1745 <td></td><td></td>
1746 </tr>
1747 </table>
1748 </td>
1749 <td class="mlabels-right">
1750<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1751 </tr>
1752</table>
1753</div><div class="memdoc">
1754
Jenkins0e205f72019-11-28 16:53:35 +00001755<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00431">431</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001756
1757</div>
1758</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001759<a id="a429f20ad96413c1f7d4ee968afed6f0d"></a>
1760<h2 class="memtitle"><span class="permalink"><a href="#a429f20ad96413c1f7d4ee968afed6f0d">&#9670;&nbsp;</a></span>asymm_exp_on_negative_values8()</h2>
1761
Anthony Barbier06ea0482018-02-22 15:45:35 +00001762<div class="memitem">
1763<div class="memproto">
1764<table class="mlabels">
1765 <tr>
1766 <td class="mlabels-left">
1767 <table class="memname">
1768 <tr>
1769 <td class="memname">int8 asymm_exp_on_negative_values8 </td>
1770 <td>(</td>
1771 <td class="paramtype">int8&#160;</td>
1772 <td class="paramname"><em>a</em>, </td>
1773 </tr>
1774 <tr>
1775 <td class="paramkey"></td>
1776 <td></td>
1777 <td class="paramtype">int&#160;</td>
1778 <td class="paramname"><em>k_integer_bits</em>&#160;</td>
1779 </tr>
1780 <tr>
1781 <td></td>
1782 <td>)</td>
1783 <td></td><td></td>
1784 </tr>
1785 </table>
1786 </td>
1787 <td class="mlabels-right">
1788<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1789 </tr>
1790</table>
1791</div><div class="memdoc">
1792
Jenkins0e205f72019-11-28 16:53:35 +00001793<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00432">432</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001794
1795</div>
1796</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001797<a id="a1e1fef1353d2458beb7fab06cc8f460e"></a>
1798<h2 class="memtitle"><span class="permalink"><a href="#a1e1fef1353d2458beb7fab06cc8f460e">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero16()</h2>
1799
Anthony Barbier06ea0482018-02-22 15:45:35 +00001800<div class="memitem">
1801<div class="memproto">
1802<table class="mlabels">
1803 <tr>
1804 <td class="mlabels-left">
1805 <table class="memname">
1806 <tr>
1807 <td class="memname">int16 asymm_mask_if_non_zero16 </td>
1808 <td>(</td>
1809 <td class="paramtype">int16&#160;</td>
1810 <td class="paramname"><em>a</em></td><td>)</td>
1811 <td></td>
1812 </tr>
1813 </table>
1814 </td>
1815 <td class="mlabels-right">
1816<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1817 </tr>
1818</table>
1819</div><div class="memdoc">
1820
Jenkins0e205f72019-11-28 16:53:35 +00001821<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00423">423</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001822
1823</div>
1824</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001825<a id="a885a16f240b119acc9f0721c07acdce9"></a>
1826<h2 class="memtitle"><span class="permalink"><a href="#a885a16f240b119acc9f0721c07acdce9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero2()</h2>
1827
Anthony Barbier06ea0482018-02-22 15:45:35 +00001828<div class="memitem">
1829<div class="memproto">
1830<table class="mlabels">
1831 <tr>
1832 <td class="mlabels-left">
1833 <table class="memname">
1834 <tr>
1835 <td class="memname">int2 asymm_mask_if_non_zero2 </td>
1836 <td>(</td>
1837 <td class="paramtype">int2&#160;</td>
1838 <td class="paramname"><em>a</em></td><td>)</td>
1839 <td></td>
1840 </tr>
1841 </table>
1842 </td>
1843 <td class="mlabels-right">
1844<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1845 </tr>
1846</table>
1847</div><div class="memdoc">
1848
Jenkins0e205f72019-11-28 16:53:35 +00001849<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00420">420</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001850
1851</div>
1852</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001853<a id="a2f180955030087d7538d5dc89f29eba9"></a>
1854<h2 class="memtitle"><span class="permalink"><a href="#a2f180955030087d7538d5dc89f29eba9">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero4()</h2>
1855
Anthony Barbier06ea0482018-02-22 15:45:35 +00001856<div class="memitem">
1857<div class="memproto">
1858<table class="mlabels">
1859 <tr>
1860 <td class="mlabels-left">
1861 <table class="memname">
1862 <tr>
1863 <td class="memname">int4 asymm_mask_if_non_zero4 </td>
1864 <td>(</td>
1865 <td class="paramtype">int4&#160;</td>
1866 <td class="paramname"><em>a</em></td><td>)</td>
1867 <td></td>
1868 </tr>
1869 </table>
1870 </td>
1871 <td class="mlabels-right">
1872<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1873 </tr>
1874</table>
1875</div><div class="memdoc">
1876
Jenkins0e205f72019-11-28 16:53:35 +00001877<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00421">421</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001878
1879</div>
1880</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001881<a id="a8de81d453a39d0f589b0d3e007c7fde1"></a>
1882<h2 class="memtitle"><span class="permalink"><a href="#a8de81d453a39d0f589b0d3e007c7fde1">&#9670;&nbsp;</a></span>asymm_mask_if_non_zero8()</h2>
1883
Anthony Barbier06ea0482018-02-22 15:45:35 +00001884<div class="memitem">
1885<div class="memproto">
1886<table class="mlabels">
1887 <tr>
1888 <td class="mlabels-left">
1889 <table class="memname">
1890 <tr>
1891 <td class="memname">int8 asymm_mask_if_non_zero8 </td>
1892 <td>(</td>
1893 <td class="paramtype">int8&#160;</td>
1894 <td class="paramname"><em>a</em></td><td>)</td>
1895 <td></td>
1896 </tr>
1897 </table>
1898 </td>
1899 <td class="mlabels-right">
1900<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1901 </tr>
1902</table>
1903</div><div class="memdoc">
1904
Jenkins0e205f72019-11-28 16:53:35 +00001905<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00422">422</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001906
1907</div>
1908</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001909<a id="a509916b7ee582d87faf1312fde111c3b"></a>
1910<h2 class="memtitle"><span class="permalink"><a href="#a509916b7ee582d87faf1312fde111c3b">&#9670;&nbsp;</a></span>asymm_mask_if_zero16()</h2>
1911
Anthony Barbier06ea0482018-02-22 15:45:35 +00001912<div class="memitem">
1913<div class="memproto">
1914<table class="mlabels">
1915 <tr>
1916 <td class="mlabels-left">
1917 <table class="memname">
1918 <tr>
1919 <td class="memname">int16 asymm_mask_if_zero16 </td>
1920 <td>(</td>
1921 <td class="paramtype">int16&#160;</td>
1922 <td class="paramname"><em>a</em></td><td>)</td>
1923 <td></td>
1924 </tr>
1925 </table>
1926 </td>
1927 <td class="mlabels-right">
1928<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1929 </tr>
1930</table>
1931</div><div class="memdoc">
1932
Jenkins0e205f72019-11-28 16:53:35 +00001933<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00418">418</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001934
1935</div>
1936</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001937<a id="a6ed499c821cf4f6b3bc4049d49e35139"></a>
1938<h2 class="memtitle"><span class="permalink"><a href="#a6ed499c821cf4f6b3bc4049d49e35139">&#9670;&nbsp;</a></span>asymm_mask_if_zero2()</h2>
1939
Anthony Barbier06ea0482018-02-22 15:45:35 +00001940<div class="memitem">
1941<div class="memproto">
1942<table class="mlabels">
1943 <tr>
1944 <td class="mlabels-left">
1945 <table class="memname">
1946 <tr>
1947 <td class="memname">int2 asymm_mask_if_zero2 </td>
1948 <td>(</td>
1949 <td class="paramtype">int2&#160;</td>
1950 <td class="paramname"><em>a</em></td><td>)</td>
1951 <td></td>
1952 </tr>
1953 </table>
1954 </td>
1955 <td class="mlabels-right">
1956<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1957 </tr>
1958</table>
1959</div><div class="memdoc">
1960
Jenkins0e205f72019-11-28 16:53:35 +00001961<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00415">415</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001962
1963</div>
1964</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001965<a id="aed95c68d9545d401d2323cd8ad287fe1"></a>
1966<h2 class="memtitle"><span class="permalink"><a href="#aed95c68d9545d401d2323cd8ad287fe1">&#9670;&nbsp;</a></span>asymm_mask_if_zero4()</h2>
1967
Anthony Barbier06ea0482018-02-22 15:45:35 +00001968<div class="memitem">
1969<div class="memproto">
1970<table class="mlabels">
1971 <tr>
1972 <td class="mlabels-left">
1973 <table class="memname">
1974 <tr>
1975 <td class="memname">int4 asymm_mask_if_zero4 </td>
1976 <td>(</td>
1977 <td class="paramtype">int4&#160;</td>
1978 <td class="paramname"><em>a</em></td><td>)</td>
1979 <td></td>
1980 </tr>
1981 </table>
1982 </td>
1983 <td class="mlabels-right">
1984<span class="mlabels"><span class="mlabel">inline</span></span> </td>
1985 </tr>
1986</table>
1987</div><div class="memdoc">
1988
Jenkins0e205f72019-11-28 16:53:35 +00001989<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00416">416</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00001990
1991</div>
1992</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00001993<a id="abefb0a278a588f03dc561db900df0958"></a>
1994<h2 class="memtitle"><span class="permalink"><a href="#abefb0a278a588f03dc561db900df0958">&#9670;&nbsp;</a></span>asymm_mask_if_zero8()</h2>
1995
Anthony Barbier06ea0482018-02-22 15:45:35 +00001996<div class="memitem">
1997<div class="memproto">
1998<table class="mlabels">
1999 <tr>
2000 <td class="mlabels-left">
2001 <table class="memname">
2002 <tr>
2003 <td class="memname">int8 asymm_mask_if_zero8 </td>
2004 <td>(</td>
2005 <td class="paramtype">int8&#160;</td>
2006 <td class="paramname"><em>a</em></td><td>)</td>
2007 <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
Jenkins0e205f72019-11-28 16:53:35 +00002017<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00417">417</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2018
2019</div>
2020</div>
2021<a id="aa6e82fbd2ec198afdd091651b7c2f7db"></a>
2022<h2 class="memtitle"><span class="permalink"><a href="#aa6e82fbd2ec198afdd091651b7c2f7db">&#9670;&nbsp;</a></span>asymm_mult1()</h2>
2023
2024<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">int asymm_mult1 </td>
2032 <td>(</td>
2033 <td class="paramtype">int&#160;</td>
2034 <td class="paramname"><em>a</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>b</em>&#160;</td>
2041 </tr>
2042 <tr>
2043 <td></td>
2044 <td>)</td>
2045 <td></td><td></td>
2046 </tr>
2047 </table>
2048 </td>
2049 <td class="mlabels-right">
2050<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2051 </tr>
2052</table>
2053</div><div class="memdoc">
2054
2055<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00399">399</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002056
2057</div>
2058</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002059<a id="aef32e3a9c804f145deb6b88f0a444919"></a>
2060<h2 class="memtitle"><span class="permalink"><a href="#aef32e3a9c804f145deb6b88f0a444919">&#9670;&nbsp;</a></span>asymm_mult16()</h2>
2061
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002062<div class="memitem">
2063<div class="memproto">
2064<table class="mlabels">
2065 <tr>
2066 <td class="mlabels-left">
2067 <table class="memname">
2068 <tr>
2069 <td class="memname">int16 asymm_mult16 </td>
2070 <td>(</td>
2071 <td class="paramtype">int16&#160;</td>
2072 <td class="paramname"><em>a</em>, </td>
2073 </tr>
2074 <tr>
2075 <td class="paramkey"></td>
2076 <td></td>
2077 <td class="paramtype">int16&#160;</td>
2078 <td class="paramname"><em>b</em>&#160;</td>
2079 </tr>
2080 <tr>
2081 <td></td>
2082 <td>)</td>
2083 <td></td><td></td>
2084 </tr>
2085 </table>
2086 </td>
2087 <td class="mlabels-right">
2088<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2089 </tr>
2090</table>
2091</div><div class="memdoc">
2092
Jenkins0e205f72019-11-28 16:53:35 +00002093<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00403">403</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002094
2095</div>
2096</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002097<a id="a5038b78913b76d782cc0aa0d841bd7ed"></a>
2098<h2 class="memtitle"><span class="permalink"><a href="#a5038b78913b76d782cc0aa0d841bd7ed">&#9670;&nbsp;</a></span>asymm_mult2()</h2>
2099
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002100<div class="memitem">
2101<div class="memproto">
2102<table class="mlabels">
2103 <tr>
2104 <td class="mlabels-left">
2105 <table class="memname">
2106 <tr>
2107 <td class="memname">int2 asymm_mult2 </td>
2108 <td>(</td>
2109 <td class="paramtype">int2&#160;</td>
2110 <td class="paramname"><em>a</em>, </td>
2111 </tr>
2112 <tr>
2113 <td class="paramkey"></td>
2114 <td></td>
2115 <td class="paramtype">int2&#160;</td>
2116 <td class="paramname"><em>b</em>&#160;</td>
2117 </tr>
2118 <tr>
2119 <td></td>
2120 <td>)</td>
2121 <td></td><td></td>
2122 </tr>
2123 </table>
2124 </td>
2125 <td class="mlabels-right">
2126<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2127 </tr>
2128</table>
2129</div><div class="memdoc">
2130
Jenkins0e205f72019-11-28 16:53:35 +00002131<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00400">400</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002132
2133</div>
2134</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002135<a id="a6dca28649388d59ec0281af70d4507b2"></a>
2136<h2 class="memtitle"><span class="permalink"><a href="#a6dca28649388d59ec0281af70d4507b2">&#9670;&nbsp;</a></span>asymm_mult4()</h2>
2137
Anthony Barbier06ea0482018-02-22 15:45:35 +00002138<div class="memitem">
2139<div class="memproto">
2140<table class="mlabels">
2141 <tr>
2142 <td class="mlabels-left">
2143 <table class="memname">
2144 <tr>
2145 <td class="memname">int4 asymm_mult4 </td>
2146 <td>(</td>
2147 <td class="paramtype">int4&#160;</td>
2148 <td class="paramname"><em>a</em>, </td>
2149 </tr>
2150 <tr>
2151 <td class="paramkey"></td>
2152 <td></td>
2153 <td class="paramtype">int4&#160;</td>
2154 <td class="paramname"><em>b</em>&#160;</td>
2155 </tr>
2156 <tr>
2157 <td></td>
2158 <td>)</td>
2159 <td></td><td></td>
2160 </tr>
2161 </table>
2162 </td>
2163 <td class="mlabels-right">
2164<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2165 </tr>
2166</table>
2167</div><div class="memdoc">
2168
Jenkins0e205f72019-11-28 16:53:35 +00002169<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00401">401</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002170
2171</div>
2172</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002173<a id="a165b0bbab841712ea2c9a17a09bfa166"></a>
2174<h2 class="memtitle"><span class="permalink"><a href="#a165b0bbab841712ea2c9a17a09bfa166">&#9670;&nbsp;</a></span>asymm_mult8()</h2>
2175
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002176<div class="memitem">
2177<div class="memproto">
2178<table class="mlabels">
2179 <tr>
2180 <td class="mlabels-left">
2181 <table class="memname">
2182 <tr>
2183 <td class="memname">int8 asymm_mult8 </td>
2184 <td>(</td>
2185 <td class="paramtype">int8&#160;</td>
2186 <td class="paramname"><em>a</em>, </td>
2187 </tr>
2188 <tr>
2189 <td class="paramkey"></td>
2190 <td></td>
2191 <td class="paramtype">int8&#160;</td>
2192 <td class="paramname"><em>b</em>&#160;</td>
2193 </tr>
2194 <tr>
2195 <td></td>
2196 <td>)</td>
2197 <td></td><td></td>
2198 </tr>
2199 </table>
2200 </td>
2201 <td class="mlabels-right">
2202<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2203 </tr>
2204</table>
2205</div><div class="memdoc">
2206
Jenkins0e205f72019-11-28 16:53:35 +00002207<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00402">402</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002208
2209</div>
2210</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002211<a id="ac3316120c01b6c993ac8f2d3f2b4ff03"></a>
2212<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>
2213
Anthony Barbier06ea0482018-02-22 15:45:35 +00002214<div class="memitem">
2215<div class="memproto">
2216<table class="mlabels">
2217 <tr>
2218 <td class="mlabels-left">
2219 <table class="memname">
2220 <tr>
2221 <td class="memname">int16 asymm_one_over_one_plus_x_for_x_in_0_116 </td>
2222 <td>(</td>
2223 <td class="paramtype">int16&#160;</td>
2224 <td class="paramname"><em>a</em></td><td>)</td>
2225 <td></td>
2226 </tr>
2227 </table>
2228 </td>
2229 <td class="mlabels-right">
2230<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2231 </tr>
2232</table>
2233</div><div class="memdoc">
2234
Jenkins0e205f72019-11-28 16:53:35 +00002235<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00448">448</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002236
2237</div>
2238</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002239<a id="a6524f601cf9a2ae69d5eab74576c93d0"></a>
2240<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>
2241
Anthony Barbier06ea0482018-02-22 15:45:35 +00002242<div class="memitem">
2243<div class="memproto">
2244<table class="mlabels">
2245 <tr>
2246 <td class="mlabels-left">
2247 <table class="memname">
2248 <tr>
2249 <td class="memname">int2 asymm_one_over_one_plus_x_for_x_in_0_12 </td>
2250 <td>(</td>
2251 <td class="paramtype">int2&#160;</td>
2252 <td class="paramname"><em>a</em></td><td>)</td>
2253 <td></td>
2254 </tr>
2255 </table>
2256 </td>
2257 <td class="mlabels-right">
2258<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2259 </tr>
2260</table>
2261</div><div class="memdoc">
2262
Jenkins0e205f72019-11-28 16:53:35 +00002263<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00445">445</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002264
2265</div>
2266</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002267<a id="a049439083adb7b960079832ad6367389"></a>
2268<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>
2269
Anthony Barbier06ea0482018-02-22 15:45:35 +00002270<div class="memitem">
2271<div class="memproto">
2272<table class="mlabels">
2273 <tr>
2274 <td class="mlabels-left">
2275 <table class="memname">
2276 <tr>
2277 <td class="memname">int4 asymm_one_over_one_plus_x_for_x_in_0_14 </td>
2278 <td>(</td>
2279 <td class="paramtype">int4&#160;</td>
2280 <td class="paramname"><em>a</em></td><td>)</td>
2281 <td></td>
2282 </tr>
2283 </table>
2284 </td>
2285 <td class="mlabels-right">
2286<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2287 </tr>
2288</table>
2289</div><div class="memdoc">
2290
Jenkins0e205f72019-11-28 16:53:35 +00002291<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00446">446</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002292
2293</div>
2294</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002295<a id="abe37c90e62ee60565cbfbb38c4358fd6"></a>
2296<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>
2297
Anthony Barbier06ea0482018-02-22 15:45:35 +00002298<div class="memitem">
2299<div class="memproto">
2300<table class="mlabels">
2301 <tr>
2302 <td class="mlabels-left">
2303 <table class="memname">
2304 <tr>
2305 <td class="memname">int8 asymm_one_over_one_plus_x_for_x_in_0_18 </td>
2306 <td>(</td>
2307 <td class="paramtype">int8&#160;</td>
2308 <td class="paramname"><em>a</em></td><td>)</td>
2309 <td></td>
2310 </tr>
2311 </table>
2312 </td>
2313 <td class="mlabels-right">
2314<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2315 </tr>
2316</table>
2317</div><div class="memdoc">
2318
Jenkins0e205f72019-11-28 16:53:35 +00002319<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00447">447</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002320
2321</div>
2322</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002323<a id="a700e603af523859efb90ed4b52b41c84"></a>
2324<h2 class="memtitle"><span class="permalink"><a href="#a700e603af523859efb90ed4b52b41c84">&#9670;&nbsp;</a></span>asymm_rescale16()</h2>
2325
Anthony Barbier06ea0482018-02-22 15:45:35 +00002326<div class="memitem">
2327<div class="memproto">
2328<table class="mlabels">
2329 <tr>
2330 <td class="mlabels-left">
2331 <table class="memname">
2332 <tr>
2333 <td class="memname">int16 asymm_rescale16 </td>
2334 <td>(</td>
2335 <td class="paramtype">int16&#160;</td>
2336 <td class="paramname"><em>value</em>, </td>
2337 </tr>
2338 <tr>
2339 <td class="paramkey"></td>
2340 <td></td>
2341 <td class="paramtype">int&#160;</td>
2342 <td class="paramname"><em>src_integer_bits</em>, </td>
2343 </tr>
2344 <tr>
2345 <td class="paramkey"></td>
2346 <td></td>
2347 <td class="paramtype">int&#160;</td>
2348 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2349 </tr>
2350 <tr>
2351 <td></td>
2352 <td>)</td>
2353 <td></td><td></td>
2354 </tr>
2355 </table>
2356 </td>
2357 <td class="mlabels-right">
2358<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2359 </tr>
2360</table>
2361</div><div class="memdoc">
2362
Jenkins0e205f72019-11-28 16:53:35 +00002363<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00453">453</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002364
2365</div>
2366</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002367<a id="a49b94bfc99276975c6fed32c693cbac5"></a>
2368<h2 class="memtitle"><span class="permalink"><a href="#a49b94bfc99276975c6fed32c693cbac5">&#9670;&nbsp;</a></span>asymm_rescale2()</h2>
2369
Anthony Barbier06ea0482018-02-22 15:45:35 +00002370<div class="memitem">
2371<div class="memproto">
2372<table class="mlabels">
2373 <tr>
2374 <td class="mlabels-left">
2375 <table class="memname">
2376 <tr>
2377 <td class="memname">int2 asymm_rescale2 </td>
2378 <td>(</td>
2379 <td class="paramtype">int2&#160;</td>
2380 <td class="paramname"><em>value</em>, </td>
2381 </tr>
2382 <tr>
2383 <td class="paramkey"></td>
2384 <td></td>
2385 <td class="paramtype">int&#160;</td>
2386 <td class="paramname"><em>src_integer_bits</em>, </td>
2387 </tr>
2388 <tr>
2389 <td class="paramkey"></td>
2390 <td></td>
2391 <td class="paramtype">int&#160;</td>
2392 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2393 </tr>
2394 <tr>
2395 <td></td>
2396 <td>)</td>
2397 <td></td><td></td>
2398 </tr>
2399 </table>
2400 </td>
2401 <td class="mlabels-right">
2402<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2403 </tr>
2404</table>
2405</div><div class="memdoc">
2406
Jenkins0e205f72019-11-28 16:53:35 +00002407<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00450">450</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002408
2409</div>
2410</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002411<a id="a8f9d043040f28f051c7145281de94681"></a>
2412<h2 class="memtitle"><span class="permalink"><a href="#a8f9d043040f28f051c7145281de94681">&#9670;&nbsp;</a></span>asymm_rescale4()</h2>
2413
Anthony Barbier06ea0482018-02-22 15:45:35 +00002414<div class="memitem">
2415<div class="memproto">
2416<table class="mlabels">
2417 <tr>
2418 <td class="mlabels-left">
2419 <table class="memname">
2420 <tr>
2421 <td class="memname">int4 asymm_rescale4 </td>
2422 <td>(</td>
2423 <td class="paramtype">int4&#160;</td>
2424 <td class="paramname"><em>value</em>, </td>
2425 </tr>
2426 <tr>
2427 <td class="paramkey"></td>
2428 <td></td>
2429 <td class="paramtype">int&#160;</td>
2430 <td class="paramname"><em>src_integer_bits</em>, </td>
2431 </tr>
2432 <tr>
2433 <td class="paramkey"></td>
2434 <td></td>
2435 <td class="paramtype">int&#160;</td>
2436 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2437 </tr>
2438 <tr>
2439 <td></td>
2440 <td>)</td>
2441 <td></td><td></td>
2442 </tr>
2443 </table>
2444 </td>
2445 <td class="mlabels-right">
2446<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2447 </tr>
2448</table>
2449</div><div class="memdoc">
2450
Jenkins0e205f72019-11-28 16:53:35 +00002451<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00451">451</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002452
2453</div>
2454</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002455<a id="a478b69bea5edb6ad939d8e7edd9e7e3f"></a>
2456<h2 class="memtitle"><span class="permalink"><a href="#a478b69bea5edb6ad939d8e7edd9e7e3f">&#9670;&nbsp;</a></span>asymm_rescale8()</h2>
2457
Anthony Barbier06ea0482018-02-22 15:45:35 +00002458<div class="memitem">
2459<div class="memproto">
2460<table class="mlabels">
2461 <tr>
2462 <td class="mlabels-left">
2463 <table class="memname">
2464 <tr>
2465 <td class="memname">int8 asymm_rescale8 </td>
2466 <td>(</td>
2467 <td class="paramtype">int8&#160;</td>
2468 <td class="paramname"><em>value</em>, </td>
2469 </tr>
2470 <tr>
2471 <td class="paramkey"></td>
2472 <td></td>
2473 <td class="paramtype">int&#160;</td>
2474 <td class="paramname"><em>src_integer_bits</em>, </td>
2475 </tr>
2476 <tr>
2477 <td class="paramkey"></td>
2478 <td></td>
2479 <td class="paramtype">int&#160;</td>
2480 <td class="paramname"><em>dst_integer_bits</em>&#160;</td>
2481 </tr>
2482 <tr>
2483 <td></td>
2484 <td>)</td>
2485 <td></td><td></td>
2486 </tr>
2487 </table>
2488 </td>
2489 <td class="mlabels-right">
2490<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2491 </tr>
2492</table>
2493</div><div class="memdoc">
2494
Jenkins0e205f72019-11-28 16:53:35 +00002495<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00452">452</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002496
2497</div>
2498</div>
Jenkins0e205f72019-11-28 16:53:35 +00002499<a id="aaf71dc45cca316d4fbde2665cb49919c"></a>
2500<h2 class="memtitle"><span class="permalink"><a href="#aaf71dc45cca316d4fbde2665cb49919c">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_1()</h2>
2501
2502<div class="memitem">
2503<div class="memproto">
2504<table class="mlabels">
2505 <tr>
2506 <td class="mlabels-left">
2507 <table class="memname">
2508 <tr>
2509 <td class="memname">int asymm_rounding_divide_by_POW2_1 </td>
2510 <td>(</td>
2511 <td class="paramtype">int&#160;</td>
2512 <td class="paramname"><em>x</em>, </td>
2513 </tr>
2514 <tr>
2515 <td class="paramkey"></td>
2516 <td></td>
2517 <td class="paramtype">int&#160;</td>
2518 <td class="paramname"><em>exponent</em>&#160;</td>
2519 </tr>
2520 <tr>
2521 <td></td>
2522 <td>)</td>
2523 <td></td><td></td>
2524 </tr>
2525 </table>
2526 </td>
2527 <td class="mlabels-right">
2528<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2529 </tr>
2530</table>
2531</div><div class="memdoc">
2532
2533<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00393">393</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
2534
2535</div>
2536</div>
2537<a id="a74839afd2405644eaf64450a121d0871"></a>
2538<h2 class="memtitle"><span class="permalink"><a href="#a74839afd2405644eaf64450a121d0871">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_16()</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00002539
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002540<div class="memitem">
2541<div class="memproto">
2542<table class="mlabels">
2543 <tr>
2544 <td class="mlabels-left">
2545 <table class="memname">
2546 <tr>
2547 <td class="memname">int16 asymm_rounding_divide_by_POW2_16 </td>
2548 <td>(</td>
2549 <td class="paramtype">int16&#160;</td>
2550 <td class="paramname"><em>x</em>, </td>
2551 </tr>
2552 <tr>
2553 <td class="paramkey"></td>
2554 <td></td>
Jenkins0e205f72019-11-28 16:53:35 +00002555 <td class="paramtype">int16&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002556 <td class="paramname"><em>exponent</em>&#160;</td>
2557 </tr>
2558 <tr>
2559 <td></td>
2560 <td>)</td>
2561 <td></td><td></td>
2562 </tr>
2563 </table>
2564 </td>
2565 <td class="mlabels-right">
2566<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2567 </tr>
2568</table>
2569</div><div class="memdoc">
2570
Jenkins0e205f72019-11-28 16:53:35 +00002571<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00397">397</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002572
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002573</div>
2574</div>
Jenkins0e205f72019-11-28 16:53:35 +00002575<a id="ae1ed2d7eea67b60ff64ed119fe273e2b"></a>
2576<h2 class="memtitle"><span class="permalink"><a href="#ae1ed2d7eea67b60ff64ed119fe273e2b">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_2()</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00002577
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002578<div class="memitem">
2579<div class="memproto">
2580<table class="mlabels">
2581 <tr>
2582 <td class="mlabels-left">
2583 <table class="memname">
2584 <tr>
2585 <td class="memname">int2 asymm_rounding_divide_by_POW2_2 </td>
2586 <td>(</td>
2587 <td class="paramtype">int2&#160;</td>
2588 <td class="paramname"><em>x</em>, </td>
2589 </tr>
2590 <tr>
2591 <td class="paramkey"></td>
2592 <td></td>
Jenkins0e205f72019-11-28 16:53:35 +00002593 <td class="paramtype">int2&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002594 <td class="paramname"><em>exponent</em>&#160;</td>
2595 </tr>
2596 <tr>
2597 <td></td>
2598 <td>)</td>
2599 <td></td><td></td>
2600 </tr>
2601 </table>
2602 </td>
2603 <td class="mlabels-right">
2604<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2605 </tr>
2606</table>
2607</div><div class="memdoc">
2608
Jenkins0e205f72019-11-28 16:53:35 +00002609<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00394">394</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002610
2611</div>
2612</div>
Jenkins0e205f72019-11-28 16:53:35 +00002613<a id="ae6b082ae2ce96c4abf74b2d3ee323a6d"></a>
2614<h2 class="memtitle"><span class="permalink"><a href="#ae6b082ae2ce96c4abf74b2d3ee323a6d">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_4()</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00002615
Anthony Barbier06ea0482018-02-22 15:45:35 +00002616<div class="memitem">
2617<div class="memproto">
2618<table class="mlabels">
2619 <tr>
2620 <td class="mlabels-left">
2621 <table class="memname">
2622 <tr>
2623 <td class="memname">int4 asymm_rounding_divide_by_POW2_4 </td>
2624 <td>(</td>
2625 <td class="paramtype">int4&#160;</td>
2626 <td class="paramname"><em>x</em>, </td>
2627 </tr>
2628 <tr>
2629 <td class="paramkey"></td>
2630 <td></td>
Jenkins0e205f72019-11-28 16:53:35 +00002631 <td class="paramtype">int4&#160;</td>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002632 <td class="paramname"><em>exponent</em>&#160;</td>
2633 </tr>
2634 <tr>
2635 <td></td>
2636 <td>)</td>
2637 <td></td><td></td>
2638 </tr>
2639 </table>
2640 </td>
2641 <td class="mlabels-right">
2642<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2643 </tr>
2644</table>
2645</div><div class="memdoc">
2646
Jenkins0e205f72019-11-28 16:53:35 +00002647<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00395">395</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002648
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002649</div>
2650</div>
Jenkins0e205f72019-11-28 16:53:35 +00002651<a id="aa32a080a129749481581ed0243d4facf"></a>
2652<h2 class="memtitle"><span class="permalink"><a href="#aa32a080a129749481581ed0243d4facf">&#9670;&nbsp;</a></span>asymm_rounding_divide_by_POW2_8()</h2>
Jenkinsb9abeae2018-11-22 11:58:08 +00002653
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002654<div class="memitem">
2655<div class="memproto">
2656<table class="mlabels">
2657 <tr>
2658 <td class="mlabels-left">
2659 <table class="memname">
2660 <tr>
2661 <td class="memname">int8 asymm_rounding_divide_by_POW2_8 </td>
2662 <td>(</td>
2663 <td class="paramtype">int8&#160;</td>
2664 <td class="paramname"><em>x</em>, </td>
2665 </tr>
2666 <tr>
2667 <td class="paramkey"></td>
2668 <td></td>
Jenkins0e205f72019-11-28 16:53:35 +00002669 <td class="paramtype">int8&#160;</td>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00002670 <td class="paramname"><em>exponent</em>&#160;</td>
2671 </tr>
2672 <tr>
2673 <td></td>
2674 <td>)</td>
2675 <td></td><td></td>
2676 </tr>
2677 </table>
2678 </td>
2679 <td class="mlabels-right">
2680<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2681 </tr>
2682</table>
2683</div><div class="memdoc">
2684
Jenkins0e205f72019-11-28 16:53:35 +00002685<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00396">396</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002686
2687</div>
2688</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002689<a id="ab13b1910b09c0cf268f6a8af0e2013e2"></a>
2690<h2 class="memtitle"><span class="permalink"><a href="#ab13b1910b09c0cf268f6a8af0e2013e2">&#9670;&nbsp;</a></span>asymm_rounding_half_sum16()</h2>
2691
Anthony Barbier06ea0482018-02-22 15:45:35 +00002692<div class="memitem">
2693<div class="memproto">
2694<table class="mlabels">
2695 <tr>
2696 <td class="mlabels-left">
2697 <table class="memname">
2698 <tr>
2699 <td class="memname">int16 asymm_rounding_half_sum16 </td>
2700 <td>(</td>
2701 <td class="paramtype">int16&#160;</td>
2702 <td class="paramname"><em>a</em>, </td>
2703 </tr>
2704 <tr>
2705 <td class="paramkey"></td>
2706 <td></td>
2707 <td class="paramtype">int16&#160;</td>
2708 <td class="paramname"><em>b</em>&#160;</td>
2709 </tr>
2710 <tr>
2711 <td></td>
2712 <td>)</td>
2713 <td></td><td></td>
2714 </tr>
2715 </table>
2716 </td>
2717 <td class="mlabels-right">
2718<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2719 </tr>
2720</table>
2721</div><div class="memdoc">
2722
Jenkins0e205f72019-11-28 16:53:35 +00002723<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00443">443</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002724
2725</div>
2726</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002727<a id="acd43480a8530400e781603a995adcad0"></a>
2728<h2 class="memtitle"><span class="permalink"><a href="#acd43480a8530400e781603a995adcad0">&#9670;&nbsp;</a></span>asymm_rounding_half_sum2()</h2>
2729
Anthony Barbier06ea0482018-02-22 15:45:35 +00002730<div class="memitem">
2731<div class="memproto">
2732<table class="mlabels">
2733 <tr>
2734 <td class="mlabels-left">
2735 <table class="memname">
2736 <tr>
2737 <td class="memname">int2 asymm_rounding_half_sum2 </td>
2738 <td>(</td>
2739 <td class="paramtype">int2&#160;</td>
2740 <td class="paramname"><em>a</em>, </td>
2741 </tr>
2742 <tr>
2743 <td class="paramkey"></td>
2744 <td></td>
2745 <td class="paramtype">int2&#160;</td>
2746 <td class="paramname"><em>b</em>&#160;</td>
2747 </tr>
2748 <tr>
2749 <td></td>
2750 <td>)</td>
2751 <td></td><td></td>
2752 </tr>
2753 </table>
2754 </td>
2755 <td class="mlabels-right">
2756<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2757 </tr>
2758</table>
2759</div><div class="memdoc">
2760
Jenkins0e205f72019-11-28 16:53:35 +00002761<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00440">440</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002762
2763</div>
2764</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002765<a id="a7dda5bba50450367760a7ad1148881be"></a>
2766<h2 class="memtitle"><span class="permalink"><a href="#a7dda5bba50450367760a7ad1148881be">&#9670;&nbsp;</a></span>asymm_rounding_half_sum4()</h2>
2767
Anthony Barbier06ea0482018-02-22 15:45:35 +00002768<div class="memitem">
2769<div class="memproto">
2770<table class="mlabels">
2771 <tr>
2772 <td class="mlabels-left">
2773 <table class="memname">
2774 <tr>
2775 <td class="memname">int4 asymm_rounding_half_sum4 </td>
2776 <td>(</td>
2777 <td class="paramtype">int4&#160;</td>
2778 <td class="paramname"><em>a</em>, </td>
2779 </tr>
2780 <tr>
2781 <td class="paramkey"></td>
2782 <td></td>
2783 <td class="paramtype">int4&#160;</td>
2784 <td class="paramname"><em>b</em>&#160;</td>
2785 </tr>
2786 <tr>
2787 <td></td>
2788 <td>)</td>
2789 <td></td><td></td>
2790 </tr>
2791 </table>
2792 </td>
2793 <td class="mlabels-right">
2794<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2795 </tr>
2796</table>
2797</div><div class="memdoc">
2798
Jenkins0e205f72019-11-28 16:53:35 +00002799<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00441">441</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002800
2801</div>
2802</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002803<a id="acba55fb1a4dfa6ab5080cc276550d5fd"></a>
2804<h2 class="memtitle"><span class="permalink"><a href="#acba55fb1a4dfa6ab5080cc276550d5fd">&#9670;&nbsp;</a></span>asymm_rounding_half_sum8()</h2>
2805
Anthony Barbier06ea0482018-02-22 15:45:35 +00002806<div class="memitem">
2807<div class="memproto">
2808<table class="mlabels">
2809 <tr>
2810 <td class="mlabels-left">
2811 <table class="memname">
2812 <tr>
2813 <td class="memname">int8 asymm_rounding_half_sum8 </td>
2814 <td>(</td>
2815 <td class="paramtype">int8&#160;</td>
2816 <td class="paramname"><em>a</em>, </td>
2817 </tr>
2818 <tr>
2819 <td class="paramkey"></td>
2820 <td></td>
2821 <td class="paramtype">int8&#160;</td>
2822 <td class="paramname"><em>b</em>&#160;</td>
2823 </tr>
2824 <tr>
2825 <td></td>
2826 <td>)</td>
2827 <td></td><td></td>
2828 </tr>
2829 </table>
2830 </td>
2831 <td class="mlabels-right">
2832<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2833 </tr>
2834</table>
2835</div><div class="memdoc">
2836
Jenkins0e205f72019-11-28 16:53:35 +00002837<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00442">442</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002838
2839</div>
2840</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002841<a id="a88b3d0aae3bcf134f9eb4b5637a4b73c"></a>
2842<h2 class="memtitle"><span class="permalink"><a href="#a88b3d0aae3bcf134f9eb4b5637a4b73c">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow216()</h2>
2843
Anthony Barbier06ea0482018-02-22 15:45:35 +00002844<div class="memitem">
2845<div class="memproto">
2846<table class="mlabels">
2847 <tr>
2848 <td class="mlabels-left">
2849 <table class="memname">
2850 <tr>
2851 <td class="memname">int16 asymm_saturating_rounding_mult_by_pow216 </td>
2852 <td>(</td>
2853 <td class="paramtype">int16&#160;</td>
2854 <td class="paramname"><em>x</em>, </td>
2855 </tr>
2856 <tr>
2857 <td class="paramkey"></td>
2858 <td></td>
2859 <td class="paramtype">int&#160;</td>
2860 <td class="paramname"><em>exponent</em>&#160;</td>
2861 </tr>
2862 <tr>
2863 <td></td>
2864 <td>)</td>
2865 <td></td><td></td>
2866 </tr>
2867 </table>
2868 </td>
2869 <td class="mlabels-right">
2870<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2871 </tr>
2872</table>
2873</div><div class="memdoc">
2874
Jenkins0e205f72019-11-28 16:53:35 +00002875<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00438">438</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002876
2877</div>
2878</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002879<a id="ac5d336b40941ee7c63a750b3dc92b030"></a>
2880<h2 class="memtitle"><span class="permalink"><a href="#ac5d336b40941ee7c63a750b3dc92b030">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow22()</h2>
2881
Anthony Barbier06ea0482018-02-22 15:45:35 +00002882<div class="memitem">
2883<div class="memproto">
2884<table class="mlabels">
2885 <tr>
2886 <td class="mlabels-left">
2887 <table class="memname">
2888 <tr>
2889 <td class="memname">int2 asymm_saturating_rounding_mult_by_pow22 </td>
2890 <td>(</td>
2891 <td class="paramtype">int2&#160;</td>
2892 <td class="paramname"><em>x</em>, </td>
2893 </tr>
2894 <tr>
2895 <td class="paramkey"></td>
2896 <td></td>
2897 <td class="paramtype">int&#160;</td>
2898 <td class="paramname"><em>exponent</em>&#160;</td>
2899 </tr>
2900 <tr>
2901 <td></td>
2902 <td>)</td>
2903 <td></td><td></td>
2904 </tr>
2905 </table>
2906 </td>
2907 <td class="mlabels-right">
2908<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2909 </tr>
2910</table>
2911</div><div class="memdoc">
2912
Jenkins0e205f72019-11-28 16:53:35 +00002913<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00435">435</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002914
2915</div>
2916</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002917<a id="af06991bb67792a6fec9c426923f39745"></a>
2918<h2 class="memtitle"><span class="permalink"><a href="#af06991bb67792a6fec9c426923f39745">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow24()</h2>
2919
Anthony Barbier06ea0482018-02-22 15:45:35 +00002920<div class="memitem">
2921<div class="memproto">
2922<table class="mlabels">
2923 <tr>
2924 <td class="mlabels-left">
2925 <table class="memname">
2926 <tr>
2927 <td class="memname">int4 asymm_saturating_rounding_mult_by_pow24 </td>
2928 <td>(</td>
2929 <td class="paramtype">int4&#160;</td>
2930 <td class="paramname"><em>x</em>, </td>
2931 </tr>
2932 <tr>
2933 <td class="paramkey"></td>
2934 <td></td>
2935 <td class="paramtype">int&#160;</td>
2936 <td class="paramname"><em>exponent</em>&#160;</td>
2937 </tr>
2938 <tr>
2939 <td></td>
2940 <td>)</td>
2941 <td></td><td></td>
2942 </tr>
2943 </table>
2944 </td>
2945 <td class="mlabels-right">
2946<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2947 </tr>
2948</table>
2949</div><div class="memdoc">
2950
Jenkins0e205f72019-11-28 16:53:35 +00002951<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00436">436</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002952
2953</div>
2954</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002955<a id="a1bfbcc866bf09921d6bf4fc39cd38d89"></a>
2956<h2 class="memtitle"><span class="permalink"><a href="#a1bfbcc866bf09921d6bf4fc39cd38d89">&#9670;&nbsp;</a></span>asymm_saturating_rounding_mult_by_pow28()</h2>
2957
Anthony Barbier06ea0482018-02-22 15:45:35 +00002958<div class="memitem">
2959<div class="memproto">
2960<table class="mlabels">
2961 <tr>
2962 <td class="mlabels-left">
2963 <table class="memname">
2964 <tr>
2965 <td class="memname">int8 asymm_saturating_rounding_mult_by_pow28 </td>
2966 <td>(</td>
2967 <td class="paramtype">int8&#160;</td>
2968 <td class="paramname"><em>x</em>, </td>
2969 </tr>
2970 <tr>
2971 <td class="paramkey"></td>
2972 <td></td>
2973 <td class="paramtype">int&#160;</td>
2974 <td class="paramname"><em>exponent</em>&#160;</td>
2975 </tr>
2976 <tr>
2977 <td></td>
2978 <td>)</td>
2979 <td></td><td></td>
2980 </tr>
2981 </table>
2982 </td>
2983 <td class="mlabels-right">
2984<span class="mlabels"><span class="mlabel">inline</span></span> </td>
2985 </tr>
2986</table>
2987</div><div class="memdoc">
2988
Jenkins0e205f72019-11-28 16:53:35 +00002989<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00437">437</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00002990
2991</div>
2992</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00002993<a id="a7effd9e7de9fefa9d4ae4eb2cfc06090"></a>
2994<h2 class="memtitle"><span class="permalink"><a href="#a7effd9e7de9fefa9d4ae4eb2cfc06090">&#9670;&nbsp;</a></span>asymm_select_using_mask16()</h2>
2995
Anthony Barbier06ea0482018-02-22 15:45:35 +00002996<div class="memitem">
2997<div class="memproto">
2998<table class="mlabels">
2999 <tr>
3000 <td class="mlabels-left">
3001 <table class="memname">
3002 <tr>
3003 <td class="memname">int16 asymm_select_using_mask16 </td>
3004 <td>(</td>
3005 <td class="paramtype">int16&#160;</td>
3006 <td class="paramname"><em>if_mask</em>, </td>
3007 </tr>
3008 <tr>
3009 <td class="paramkey"></td>
3010 <td></td>
3011 <td class="paramtype">int16&#160;</td>
3012 <td class="paramname"><em>then_val</em>, </td>
3013 </tr>
3014 <tr>
3015 <td class="paramkey"></td>
3016 <td></td>
3017 <td class="paramtype">int16&#160;</td>
3018 <td class="paramname"><em>else_val</em>&#160;</td>
3019 </tr>
3020 <tr>
3021 <td></td>
3022 <td>)</td>
3023 <td></td><td></td>
3024 </tr>
3025 </table>
3026 </td>
3027 <td class="mlabels-right">
3028<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3029 </tr>
3030</table>
3031</div><div class="memdoc">
3032
Jenkins0e205f72019-11-28 16:53:35 +00003033<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00413">413</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003034
3035</div>
3036</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003037<a id="a0dade5bb9ed9aae49b6bb2875e273d89"></a>
3038<h2 class="memtitle"><span class="permalink"><a href="#a0dade5bb9ed9aae49b6bb2875e273d89">&#9670;&nbsp;</a></span>asymm_select_using_mask2()</h2>
3039
Anthony Barbier06ea0482018-02-22 15:45:35 +00003040<div class="memitem">
3041<div class="memproto">
3042<table class="mlabels">
3043 <tr>
3044 <td class="mlabels-left">
3045 <table class="memname">
3046 <tr>
3047 <td class="memname">int2 asymm_select_using_mask2 </td>
3048 <td>(</td>
3049 <td class="paramtype">int2&#160;</td>
3050 <td class="paramname"><em>if_mask</em>, </td>
3051 </tr>
3052 <tr>
3053 <td class="paramkey"></td>
3054 <td></td>
3055 <td class="paramtype">int2&#160;</td>
3056 <td class="paramname"><em>then_val</em>, </td>
3057 </tr>
3058 <tr>
3059 <td class="paramkey"></td>
3060 <td></td>
3061 <td class="paramtype">int2&#160;</td>
3062 <td class="paramname"><em>else_val</em>&#160;</td>
3063 </tr>
3064 <tr>
3065 <td></td>
3066 <td>)</td>
3067 <td></td><td></td>
3068 </tr>
3069 </table>
3070 </td>
3071 <td class="mlabels-right">
3072<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3073 </tr>
3074</table>
3075</div><div class="memdoc">
3076
Jenkins0e205f72019-11-28 16:53:35 +00003077<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00410">410</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003078
3079</div>
3080</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003081<a id="a44e4d74ed42006c4153a9cb6c97285de"></a>
3082<h2 class="memtitle"><span class="permalink"><a href="#a44e4d74ed42006c4153a9cb6c97285de">&#9670;&nbsp;</a></span>asymm_select_using_mask4()</h2>
3083
Anthony Barbier06ea0482018-02-22 15:45:35 +00003084<div class="memitem">
3085<div class="memproto">
3086<table class="mlabels">
3087 <tr>
3088 <td class="mlabels-left">
3089 <table class="memname">
3090 <tr>
3091 <td class="memname">int4 asymm_select_using_mask4 </td>
3092 <td>(</td>
3093 <td class="paramtype">int4&#160;</td>
3094 <td class="paramname"><em>if_mask</em>, </td>
3095 </tr>
3096 <tr>
3097 <td class="paramkey"></td>
3098 <td></td>
3099 <td class="paramtype">int4&#160;</td>
3100 <td class="paramname"><em>then_val</em>, </td>
3101 </tr>
3102 <tr>
3103 <td class="paramkey"></td>
3104 <td></td>
3105 <td class="paramtype">int4&#160;</td>
3106 <td class="paramname"><em>else_val</em>&#160;</td>
3107 </tr>
3108 <tr>
3109 <td></td>
3110 <td>)</td>
3111 <td></td><td></td>
3112 </tr>
3113 </table>
3114 </td>
3115 <td class="mlabels-right">
3116<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3117 </tr>
3118</table>
3119</div><div class="memdoc">
3120
Jenkins0e205f72019-11-28 16:53:35 +00003121<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00411">411</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003122
3123</div>
3124</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003125<a id="a64682bc22716ad771d012ce4c7398652"></a>
3126<h2 class="memtitle"><span class="permalink"><a href="#a64682bc22716ad771d012ce4c7398652">&#9670;&nbsp;</a></span>asymm_select_using_mask8()</h2>
3127
Anthony Barbier06ea0482018-02-22 15:45:35 +00003128<div class="memitem">
3129<div class="memproto">
3130<table class="mlabels">
3131 <tr>
3132 <td class="mlabels-left">
3133 <table class="memname">
3134 <tr>
3135 <td class="memname">int8 asymm_select_using_mask8 </td>
3136 <td>(</td>
3137 <td class="paramtype">int8&#160;</td>
3138 <td class="paramname"><em>if_mask</em>, </td>
3139 </tr>
3140 <tr>
3141 <td class="paramkey"></td>
3142 <td></td>
3143 <td class="paramtype">int8&#160;</td>
3144 <td class="paramname"><em>then_val</em>, </td>
3145 </tr>
3146 <tr>
3147 <td class="paramkey"></td>
3148 <td></td>
3149 <td class="paramtype">int8&#160;</td>
3150 <td class="paramname"><em>else_val</em>&#160;</td>
3151 </tr>
3152 <tr>
3153 <td></td>
3154 <td>)</td>
3155 <td></td><td></td>
3156 </tr>
3157 </table>
3158 </td>
3159 <td class="mlabels-right">
3160<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3161 </tr>
3162</table>
3163</div><div class="memdoc">
3164
Jenkins0e205f72019-11-28 16:53:35 +00003165<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00412">412</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3166
3167</div>
3168</div>
3169<a id="afbec2094d42590b94e7eead93710411d"></a>
3170<h2 class="memtitle"><span class="permalink"><a href="#afbec2094d42590b94e7eead93710411d">&#9670;&nbsp;</a></span>dequantize_qasymm8()</h2>
3171
3172<div class="memitem">
3173<div class="memproto">
3174<table class="mlabels">
3175 <tr>
3176 <td class="mlabels-left">
3177 <table class="memname">
3178 <tr>
3179 <td class="memname">float dequantize_qasymm8 </td>
3180 <td>(</td>
3181 <td class="paramtype">uchar&#160;</td>
3182 <td class="paramname"><em>input</em>, </td>
3183 </tr>
3184 <tr>
3185 <td class="paramkey"></td>
3186 <td></td>
3187 <td class="paramtype">float&#160;</td>
3188 <td class="paramname"><em>offset</em>, </td>
3189 </tr>
3190 <tr>
3191 <td class="paramkey"></td>
3192 <td></td>
3193 <td class="paramtype">float&#160;</td>
3194 <td class="paramname"><em>scale</em>&#160;</td>
3195 </tr>
3196 <tr>
3197 <td></td>
3198 <td>)</td>
3199 <td></td><td></td>
3200 </tr>
3201 </table>
3202 </td>
3203 <td class="mlabels-right">
3204<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3205 </tr>
3206</table>
3207</div><div class="memdoc">
3208
3209<p>Dequantize a scalar value from 8-bit asymmetric to floating-point. </p>
3210<dl class="params"><dt>Parameters</dt><dd>
3211 <table class="params">
3212 <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Input value to quantize </td></tr>
3213 <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Quantization offset </td></tr>
3214 <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>Quantization scale</td></tr>
3215 </table>
3216 </dd>
3217</dl>
3218<dl class="section return"><dt>Returns</dt><dd>quantized value </dd></dl>
3219
3220<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00062">62</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3221<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">float</span>)<a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> - <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>) * <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">helpers.h:510</a></div></div>
3222<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
3223<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">PixelWiseMultiplication.cpp:317</a></div></div>
3224</div><!-- fragment -->
3225<p class="reference">References <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">offset()</a>, and <a class="el" href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">arm_compute::test::validation::scale</a>.</p>
3226
3227</div>
3228</div>
3229<a id="a2b106b11a5f1e2e5b6a70e0afe1d9e5a"></a>
3230<h2 class="memtitle"><span class="permalink"><a href="#a2b106b11a5f1e2e5b6a70e0afe1d9e5a">&#9670;&nbsp;</a></span>dequantize_short4()</h2>
3231
3232<div class="memitem">
3233<div class="memproto">
3234<table class="mlabels">
3235 <tr>
3236 <td class="mlabels-left">
3237 <table class="memname">
3238 <tr>
3239 <td class="memname">float4 dequantize_short4 </td>
3240 <td>(</td>
3241 <td class="paramtype">short4&#160;</td>
3242 <td class="paramname"><em>input</em>, </td>
3243 </tr>
3244 <tr>
3245 <td class="paramkey"></td>
3246 <td></td>
3247 <td class="paramtype">float&#160;</td>
3248 <td class="paramname"><em>offset</em>, </td>
3249 </tr>
3250 <tr>
3251 <td class="paramkey"></td>
3252 <td></td>
3253 <td class="paramtype">float&#160;</td>
3254 <td class="paramname"><em>scale</em>&#160;</td>
3255 </tr>
3256 <tr>
3257 <td></td>
3258 <td>)</td>
3259 <td></td><td></td>
3260 </tr>
3261 </table>
3262 </td>
3263 <td class="mlabels-right">
3264<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3265 </tr>
3266</table>
3267</div><div class="memdoc">
3268
3269<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00391">391</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3270
3271</div>
3272</div>
3273<a id="a951a47a7d1115404d183490f2aa11e40"></a>
3274<h2 class="memtitle"><span class="permalink"><a href="#a951a47a7d1115404d183490f2aa11e40">&#9670;&nbsp;</a></span>dequantize_uchar4()</h2>
3275
3276<div class="memitem">
3277<div class="memproto">
3278<table class="mlabels">
3279 <tr>
3280 <td class="mlabels-left">
3281 <table class="memname">
3282 <tr>
3283 <td class="memname">float4 dequantize_uchar4 </td>
3284 <td>(</td>
3285 <td class="paramtype">uchar4&#160;</td>
3286 <td class="paramname"><em>input</em>, </td>
3287 </tr>
3288 <tr>
3289 <td class="paramkey"></td>
3290 <td></td>
3291 <td class="paramtype">float&#160;</td>
3292 <td class="paramname"><em>offset</em>, </td>
3293 </tr>
3294 <tr>
3295 <td class="paramkey"></td>
3296 <td></td>
3297 <td class="paramtype">float&#160;</td>
3298 <td class="paramname"><em>scale</em>&#160;</td>
3299 </tr>
3300 <tr>
3301 <td></td>
3302 <td>)</td>
3303 <td></td><td></td>
3304 </tr>
3305 </table>
3306 </td>
3307 <td class="mlabels-right">
3308<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3309 </tr>
3310</table>
3311</div><div class="memdoc">
3312
3313<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00389">389</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3314
3315</div>
3316</div>
3317<a id="a5cdb515b62ef19a88f83d779240a02f4"></a>
3318<h2 class="memtitle"><span class="permalink"><a href="#a5cdb515b62ef19a88f83d779240a02f4">&#9670;&nbsp;</a></span>dequantize_ushort4()</h2>
3319
3320<div class="memitem">
3321<div class="memproto">
3322<table class="mlabels">
3323 <tr>
3324 <td class="mlabels-left">
3325 <table class="memname">
3326 <tr>
3327 <td class="memname">float4 dequantize_ushort4 </td>
3328 <td>(</td>
3329 <td class="paramtype">ushort4&#160;</td>
3330 <td class="paramname"><em>input</em>, </td>
3331 </tr>
3332 <tr>
3333 <td class="paramkey"></td>
3334 <td></td>
3335 <td class="paramtype">float&#160;</td>
3336 <td class="paramname"><em>offset</em>, </td>
3337 </tr>
3338 <tr>
3339 <td class="paramkey"></td>
3340 <td></td>
3341 <td class="paramtype">float&#160;</td>
3342 <td class="paramname"><em>scale</em>&#160;</td>
3343 </tr>
3344 <tr>
3345 <td></td>
3346 <td>)</td>
3347 <td></td><td></td>
3348 </tr>
3349 </table>
3350 </td>
3351 <td class="mlabels-right">
3352<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3353 </tr>
3354</table>
3355</div><div class="memdoc">
3356
3357<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00390">390</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003358
3359</div>
3360</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003361<a id="a4bde4cd395697b5d37af5116773f16ed"></a>
3362<h2 class="memtitle"><span class="permalink"><a href="#a4bde4cd395697b5d37af5116773f16ed">&#9670;&nbsp;</a></span>exp_barrel_shifter16()</h2>
3363
Anthony Barbier06ea0482018-02-22 15:45:35 +00003364<div class="memitem">
3365<div class="memproto">
3366<table class="mlabels">
3367 <tr>
3368 <td class="mlabels-left">
3369 <table class="memname">
3370 <tr>
3371 <td class="memname">int16 exp_barrel_shifter16 </td>
3372 <td>(</td>
3373 <td class="paramtype">int16&#160;</td>
3374 <td class="paramname"><em>result</em>, </td>
3375 </tr>
3376 <tr>
3377 <td class="paramkey"></td>
3378 <td></td>
3379 <td class="paramtype">int&#160;</td>
3380 <td class="paramname"><em>exponent</em>, </td>
3381 </tr>
3382 <tr>
3383 <td class="paramkey"></td>
3384 <td></td>
3385 <td class="paramtype">int&#160;</td>
3386 <td class="paramname"><em>fp_multiplier</em>, </td>
3387 </tr>
3388 <tr>
3389 <td class="paramkey"></td>
3390 <td></td>
3391 <td class="paramtype">int&#160;</td>
3392 <td class="paramname"><em>k_integer_bits</em>, </td>
3393 </tr>
3394 <tr>
3395 <td class="paramkey"></td>
3396 <td></td>
3397 <td class="paramtype">int&#160;</td>
3398 <td class="paramname"><em>k_fractional_bits</em>, </td>
3399 </tr>
3400 <tr>
3401 <td class="paramkey"></td>
3402 <td></td>
3403 <td class="paramtype">int16&#160;</td>
3404 <td class="paramname"><em>remainder</em>&#160;</td>
3405 </tr>
3406 <tr>
3407 <td></td>
3408 <td>)</td>
3409 <td></td><td></td>
3410 </tr>
3411 </table>
3412 </td>
3413 <td class="mlabels-right">
3414<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3415 </tr>
3416</table>
3417</div><div class="memdoc">
3418
Jenkins0e205f72019-11-28 16:53:35 +00003419<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00428">428</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003420
3421</div>
3422</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003423<a id="ad12110cc5f3099fa90b631e7b05772a0"></a>
3424<h2 class="memtitle"><span class="permalink"><a href="#ad12110cc5f3099fa90b631e7b05772a0">&#9670;&nbsp;</a></span>exp_barrel_shifter2()</h2>
3425
Anthony Barbier06ea0482018-02-22 15:45:35 +00003426<div class="memitem">
3427<div class="memproto">
3428<table class="mlabels">
3429 <tr>
3430 <td class="mlabels-left">
3431 <table class="memname">
3432 <tr>
3433 <td class="memname">int2 exp_barrel_shifter2 </td>
3434 <td>(</td>
3435 <td class="paramtype">int2&#160;</td>
3436 <td class="paramname"><em>result</em>, </td>
3437 </tr>
3438 <tr>
3439 <td class="paramkey"></td>
3440 <td></td>
3441 <td class="paramtype">int&#160;</td>
3442 <td class="paramname"><em>exponent</em>, </td>
3443 </tr>
3444 <tr>
3445 <td class="paramkey"></td>
3446 <td></td>
3447 <td class="paramtype">int&#160;</td>
3448 <td class="paramname"><em>fp_multiplier</em>, </td>
3449 </tr>
3450 <tr>
3451 <td class="paramkey"></td>
3452 <td></td>
3453 <td class="paramtype">int&#160;</td>
3454 <td class="paramname"><em>k_integer_bits</em>, </td>
3455 </tr>
3456 <tr>
3457 <td class="paramkey"></td>
3458 <td></td>
3459 <td class="paramtype">int&#160;</td>
3460 <td class="paramname"><em>k_fractional_bits</em>, </td>
3461 </tr>
3462 <tr>
3463 <td class="paramkey"></td>
3464 <td></td>
3465 <td class="paramtype">int2&#160;</td>
3466 <td class="paramname"><em>remainder</em>&#160;</td>
3467 </tr>
3468 <tr>
3469 <td></td>
3470 <td>)</td>
3471 <td></td><td></td>
3472 </tr>
3473 </table>
3474 </td>
3475 <td class="mlabels-right">
3476<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3477 </tr>
3478</table>
3479</div><div class="memdoc">
3480
Jenkins0e205f72019-11-28 16:53:35 +00003481<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00425">425</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003482
3483</div>
3484</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003485<a id="a521e3ded9b6ca69692e9415ef9b4cee1"></a>
3486<h2 class="memtitle"><span class="permalink"><a href="#a521e3ded9b6ca69692e9415ef9b4cee1">&#9670;&nbsp;</a></span>exp_barrel_shifter4()</h2>
3487
Anthony Barbier06ea0482018-02-22 15:45:35 +00003488<div class="memitem">
3489<div class="memproto">
3490<table class="mlabels">
3491 <tr>
3492 <td class="mlabels-left">
3493 <table class="memname">
3494 <tr>
3495 <td class="memname">int4 exp_barrel_shifter4 </td>
3496 <td>(</td>
3497 <td class="paramtype">int4&#160;</td>
3498 <td class="paramname"><em>result</em>, </td>
3499 </tr>
3500 <tr>
3501 <td class="paramkey"></td>
3502 <td></td>
3503 <td class="paramtype">int&#160;</td>
3504 <td class="paramname"><em>exponent</em>, </td>
3505 </tr>
3506 <tr>
3507 <td class="paramkey"></td>
3508 <td></td>
3509 <td class="paramtype">int&#160;</td>
3510 <td class="paramname"><em>fp_multiplier</em>, </td>
3511 </tr>
3512 <tr>
3513 <td class="paramkey"></td>
3514 <td></td>
3515 <td class="paramtype">int&#160;</td>
3516 <td class="paramname"><em>k_integer_bits</em>, </td>
3517 </tr>
3518 <tr>
3519 <td class="paramkey"></td>
3520 <td></td>
3521 <td class="paramtype">int&#160;</td>
3522 <td class="paramname"><em>k_fractional_bits</em>, </td>
3523 </tr>
3524 <tr>
3525 <td class="paramkey"></td>
3526 <td></td>
3527 <td class="paramtype">int4&#160;</td>
3528 <td class="paramname"><em>remainder</em>&#160;</td>
3529 </tr>
3530 <tr>
3531 <td></td>
3532 <td>)</td>
3533 <td></td><td></td>
3534 </tr>
3535 </table>
3536 </td>
3537 <td class="mlabels-right">
3538<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3539 </tr>
3540</table>
3541</div><div class="memdoc">
3542
Jenkins0e205f72019-11-28 16:53:35 +00003543<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00426">426</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003544
3545</div>
3546</div>
Jenkinsb9abeae2018-11-22 11:58:08 +00003547<a id="a936aed524c644efcf20b28877e3a0f3f"></a>
3548<h2 class="memtitle"><span class="permalink"><a href="#a936aed524c644efcf20b28877e3a0f3f">&#9670;&nbsp;</a></span>exp_barrel_shifter8()</h2>
3549
Anthony Barbier06ea0482018-02-22 15:45:35 +00003550<div class="memitem">
3551<div class="memproto">
3552<table class="mlabels">
3553 <tr>
3554 <td class="mlabels-left">
3555 <table class="memname">
3556 <tr>
3557 <td class="memname">int8 exp_barrel_shifter8 </td>
3558 <td>(</td>
3559 <td class="paramtype">int8&#160;</td>
3560 <td class="paramname"><em>result</em>, </td>
3561 </tr>
3562 <tr>
3563 <td class="paramkey"></td>
3564 <td></td>
3565 <td class="paramtype">int&#160;</td>
3566 <td class="paramname"><em>exponent</em>, </td>
3567 </tr>
3568 <tr>
3569 <td class="paramkey"></td>
3570 <td></td>
3571 <td class="paramtype">int&#160;</td>
3572 <td class="paramname"><em>fp_multiplier</em>, </td>
3573 </tr>
3574 <tr>
3575 <td class="paramkey"></td>
3576 <td></td>
3577 <td class="paramtype">int&#160;</td>
3578 <td class="paramname"><em>k_integer_bits</em>, </td>
3579 </tr>
3580 <tr>
3581 <td class="paramkey"></td>
3582 <td></td>
3583 <td class="paramtype">int&#160;</td>
3584 <td class="paramname"><em>k_fractional_bits</em>, </td>
3585 </tr>
3586 <tr>
3587 <td class="paramkey"></td>
3588 <td></td>
3589 <td class="paramtype">int8&#160;</td>
3590 <td class="paramname"><em>remainder</em>&#160;</td>
3591 </tr>
3592 <tr>
3593 <td></td>
3594 <td>)</td>
3595 <td></td><td></td>
3596 </tr>
3597 </table>
3598 </td>
3599 <td class="mlabels-right">
3600<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3601 </tr>
3602</table>
3603</div><div class="memdoc">
3604
Jenkins0e205f72019-11-28 16:53:35 +00003605<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00427">427</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3606
3607</div>
3608</div>
3609<a id="a63aa8eb6ac2ac3782ffad43a96345f0a"></a>
3610<h2 class="memtitle"><span class="permalink"><a href="#a63aa8eb6ac2ac3782ffad43a96345f0a">&#9670;&nbsp;</a></span>quantize_qasymm8()</h2>
3611
3612<div class="memitem">
3613<div class="memproto">
3614<table class="mlabels">
3615 <tr>
3616 <td class="mlabels-left">
3617 <table class="memname">
3618 <tr>
3619 <td class="memname">uchar quantize_qasymm8 </td>
3620 <td>(</td>
3621 <td class="paramtype">float&#160;</td>
3622 <td class="paramname"><em>input</em>, </td>
3623 </tr>
3624 <tr>
3625 <td class="paramkey"></td>
3626 <td></td>
3627 <td class="paramtype">float&#160;</td>
3628 <td class="paramname"><em>offset</em>, </td>
3629 </tr>
3630 <tr>
3631 <td class="paramkey"></td>
3632 <td></td>
3633 <td class="paramtype">float&#160;</td>
3634 <td class="paramname"><em>scale</em>&#160;</td>
3635 </tr>
3636 <tr>
3637 <td></td>
3638 <td>)</td>
3639 <td></td><td></td>
3640 </tr>
3641 </table>
3642 </td>
3643 <td class="mlabels-right">
3644<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3645 </tr>
3646</table>
3647</div><div class="memdoc">
3648
3649<p>Quantize a floating-point scalar value to 8-bit asymmetric. </p>
3650<dl class="params"><dt>Parameters</dt><dd>
3651 <table class="params">
3652 <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>Input value to quantize </td></tr>
3653 <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Quantization offset </td></tr>
3654 <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>Quantization scale</td></tr>
3655 </table>
3656 </dd>
3657</dl>
3658<dl class="section return"><dt>Returns</dt><dd>quantized value </dd></dl>
3659
3660<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00047">47</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3661<div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">float</span> out_f32 = <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">input</a> / <a class="code" href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">scale</a> + <a class="code" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uchar res_u8 = <a class="code" href="direct__convolution1x1_8cl.xhtml#a1f15728672380ade7a238f5e783d54d2">CONVERT_SAT</a>(<a class="code" href="helpers__asymm_8h.xhtml#ae41349ddba7d47794bba4d2fcf659872">CONVERT_DOWN_RTE</a>(out_f32, <span class="keywordtype">int</span>), uchar);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> res_u8;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="ttc" id="src_2core_2_c_l_2cl__kernels_2_helpers_8h_xhtml_a009469e4d9b8fce3b6d5e97d2077827d"><div class="ttname"><a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h.xhtml#a009469e4d9b8fce3b6d5e97d2077827d">offset</a></div><div class="ttdeci">__global uchar * offset(const Image *img, int x, int y)</div><div class="ttdoc">Get the pointer position of a Image.</div><div class="ttdef"><b>Definition:</b> <a href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">helpers.h:510</a></div></div>
3662<div class="ttc" id="direct__convolution1x1_8cl_xhtml_a1f15728672380ade7a238f5e783d54d2"><div class="ttname"><a href="direct__convolution1x1_8cl.xhtml#a1f15728672380ade7a238f5e783d54d2">CONVERT_SAT</a></div><div class="ttdeci">#define CONVERT_SAT(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="direct__convolution1x1_8cl_source.xhtml#l00030">direct_convolution1x1.cl:30</a></div></div>
3663<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_a8fcf2ddd9a1d58b1b280f5c0aed71845"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#a8fcf2ddd9a1d58b1b280f5c0aed71845">arm_compute::test::validation::input</a></div><div class="ttdeci">auto input</div><div class="ttdef"><b>Definition:</b> <a href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">LSTMLayerQuantized.cpp:487</a></div></div>
3664<div class="ttc" id="helpers__asymm_8h_xhtml_ae41349ddba7d47794bba4d2fcf659872"><div class="ttname"><a href="helpers__asymm_8h.xhtml#ae41349ddba7d47794bba4d2fcf659872">CONVERT_DOWN_RTE</a></div><div class="ttdeci">#define CONVERT_DOWN_RTE(x, type)</div><div class="ttdef"><b>Definition:</b> <a href="helpers__asymm_8h_source.xhtml#l00037">helpers_asymm.h:37</a></div></div>
3665<div class="ttc" id="namespacearm__compute_1_1test_1_1validation_xhtml_acec6d8ad52a28972fa74e071c1a63b6a"><div class="ttname"><a href="namespacearm__compute_1_1test_1_1validation.xhtml#acec6d8ad52a28972fa74e071c1a63b6a">arm_compute::test::validation::scale</a></div><div class="ttdeci">scale</div><div class="ttdef"><b>Definition:</b> <a href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">PixelWiseMultiplication.cpp:317</a></div></div>
3666</div><!-- fragment -->
3667<p class="reference">References <a class="el" href="helpers__asymm_8h_source.xhtml#l00037">CONVERT_DOWN_RTE</a>, <a class="el" href="direct__convolution1x1_8cl_source.xhtml#l00030">CONVERT_SAT</a>, <a class="el" href="_c_l_2_l_s_t_m_layer_quantized_8cpp_source.xhtml#l00487">arm_compute::test::validation::input</a>, <a class="el" href="src_2core_2_c_l_2cl__kernels_2_helpers_8h_source.xhtml#l00510">offset()</a>, and <a class="el" href="_n_e_o_n_2_pixel_wise_multiplication_8cpp_source.xhtml#l00317">arm_compute::test::validation::scale</a>.</p>
3668
3669</div>
3670</div>
3671<a id="af3c37581d89f0873428d938792254e30"></a>
3672<h2 class="memtitle"><span class="permalink"><a href="#af3c37581d89f0873428d938792254e30">&#9670;&nbsp;</a></span>quantize_short4()</h2>
3673
3674<div class="memitem">
3675<div class="memproto">
3676<table class="mlabels">
3677 <tr>
3678 <td class="mlabels-left">
3679 <table class="memname">
3680 <tr>
3681 <td class="memname">short4 quantize_short4 </td>
3682 <td>(</td>
3683 <td class="paramtype">float4&#160;</td>
3684 <td class="paramname"><em>input</em>, </td>
3685 </tr>
3686 <tr>
3687 <td class="paramkey"></td>
3688 <td></td>
3689 <td class="paramtype">float&#160;</td>
3690 <td class="paramname"><em>offset</em>, </td>
3691 </tr>
3692 <tr>
3693 <td class="paramkey"></td>
3694 <td></td>
3695 <td class="paramtype">float&#160;</td>
3696 <td class="paramname"><em>scale</em>&#160;</td>
3697 </tr>
3698 <tr>
3699 <td></td>
3700 <td>)</td>
3701 <td></td><td></td>
3702 </tr>
3703 </table>
3704 </td>
3705 <td class="mlabels-right">
3706<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3707 </tr>
3708</table>
3709</div><div class="memdoc">
3710
3711<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00387">387</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3712
3713</div>
3714</div>
3715<a id="ada9b2f95d7b2bb6add361832cc0251df"></a>
3716<h2 class="memtitle"><span class="permalink"><a href="#ada9b2f95d7b2bb6add361832cc0251df">&#9670;&nbsp;</a></span>quantize_uchar4()</h2>
3717
3718<div class="memitem">
3719<div class="memproto">
3720<table class="mlabels">
3721 <tr>
3722 <td class="mlabels-left">
3723 <table class="memname">
3724 <tr>
3725 <td class="memname">uchar4 quantize_uchar4 </td>
3726 <td>(</td>
3727 <td class="paramtype">float4&#160;</td>
3728 <td class="paramname"><em>input</em>, </td>
3729 </tr>
3730 <tr>
3731 <td class="paramkey"></td>
3732 <td></td>
3733 <td class="paramtype">float&#160;</td>
3734 <td class="paramname"><em>offset</em>, </td>
3735 </tr>
3736 <tr>
3737 <td class="paramkey"></td>
3738 <td></td>
3739 <td class="paramtype">float&#160;</td>
3740 <td class="paramname"><em>scale</em>&#160;</td>
3741 </tr>
3742 <tr>
3743 <td></td>
3744 <td>)</td>
3745 <td></td><td></td>
3746 </tr>
3747 </table>
3748 </td>
3749 <td class="mlabels-right">
3750<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3751 </tr>
3752</table>
3753</div><div class="memdoc">
3754
3755<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00385">385</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
3756
3757</div>
3758</div>
3759<a id="a933a58d69e18da275156602365d37fc9"></a>
3760<h2 class="memtitle"><span class="permalink"><a href="#a933a58d69e18da275156602365d37fc9">&#9670;&nbsp;</a></span>quantize_ushort4()</h2>
3761
3762<div class="memitem">
3763<div class="memproto">
3764<table class="mlabels">
3765 <tr>
3766 <td class="mlabels-left">
3767 <table class="memname">
3768 <tr>
3769 <td class="memname">ushort4 quantize_ushort4 </td>
3770 <td>(</td>
3771 <td class="paramtype">float4&#160;</td>
3772 <td class="paramname"><em>input</em>, </td>
3773 </tr>
3774 <tr>
3775 <td class="paramkey"></td>
3776 <td></td>
3777 <td class="paramtype">float&#160;</td>
3778 <td class="paramname"><em>offset</em>, </td>
3779 </tr>
3780 <tr>
3781 <td class="paramkey"></td>
3782 <td></td>
3783 <td class="paramtype">float&#160;</td>
3784 <td class="paramname"><em>scale</em>&#160;</td>
3785 </tr>
3786 <tr>
3787 <td></td>
3788 <td>)</td>
3789 <td></td><td></td>
3790 </tr>
3791 </table>
3792 </td>
3793 <td class="mlabels-right">
3794<span class="mlabels"><span class="mlabel">inline</span></span> </td>
3795 </tr>
3796</table>
3797</div><div class="memdoc">
3798
3799<p class="definition">Definition at line <a class="el" href="helpers__asymm_8h_source.xhtml#l00386">386</a> of file <a class="el" href="helpers__asymm_8h_source.xhtml">helpers_asymm.h</a>.</p>
Anthony Barbier06ea0482018-02-22 15:45:35 +00003800
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003801</div>
3802</div>
3803</div><!-- contents -->
3804</div><!-- doc-content -->
3805<!-- start footer part -->
3806<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
3807 <ul>
3808 <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>
Jenkins7f09cf72020-01-22 18:08:16 +00003809 <li class="footer">Generated on Wed Jan 22 2020 18:07:48 for Compute Library by
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003810 <a href="http://www.doxygen.org/index.html">
Jenkins514be652019-02-28 12:25:18 +00003811 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
Anthony Barbier8140e1e2017-12-14 23:48:46 +00003812 </ul>
3813</div>
3814</body>
3815</html>