]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ti-machine-learning/ti-machine-learning.git/blob - doc/html/group__util.html
Remove the compiled binary files
[ti-machine-learning/ti-machine-learning.git] / doc / html / group__util.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.6"/>
7 <title>TIML: util</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="search/search.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="search/search.js"></script>
13 <script type="text/javascript">
14   $(document).ready(function() { searchBox.OnSelectItem(0); });
15 </script>
16 <link href="doxygen.css" rel="stylesheet" type="text/css" />
17 </head>
18 <body>
19 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20 <div id="titlearea">
21 <table cellspacing="0" cellpadding="0">
22  <tbody>
23  <tr style="height: 56px;">
24   <td style="padding-left: 0.5em;">
25    <div id="projectname">TIML
26    </div>
27   </td>
28  </tr>
29  </tbody>
30 </table>
31 </div>
32 <!-- end header part -->
33 <!-- Generated by Doxygen 1.8.6 -->
34 <script type="text/javascript">
35 var searchBox = new SearchBox("searchBox", "search",false,'Search');
36 </script>
37   <div id="navrow1" class="tabs">
38     <ul class="tablist">
39       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
40       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
41       <li><a href="modules.html"><span>Modules</span></a></li>
42       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
43       <li><a href="files.html"><span>Files</span></a></li>
44       <li>
45         <div id="MSearchBox" class="MSearchBoxInactive">
46         <span class="left">
47           <img id="MSearchSelect" src="search/mag_sel.png"
48                onmouseover="return searchBox.OnSearchSelectShow()"
49                onmouseout="return searchBox.OnSearchSelectHide()"
50                alt=""/>
51           <input type="text" id="MSearchField" value="Search" accesskey="S"
52                onfocus="searchBox.OnSearchFieldFocus(true)" 
53                onblur="searchBox.OnSearchFieldFocus(false)" 
54                onkeyup="searchBox.OnSearchFieldChange(event)"/>
55           </span><span class="right">
56             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57           </span>
58         </div>
59       </li>
60     </ul>
61   </div>
62 </div><!-- top -->
63 <!-- window showing the filter options -->
64 <div id="MSearchSelectWindow"
65      onmouseover="return searchBox.OnSearchSelectShow()"
66      onmouseout="return searchBox.OnSearchSelectHide()"
67      onkeydown="return searchBox.OnSearchSelectKey(event)">
68 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
70 <!-- iframe showing the search results (closed by default) -->
71 <div id="MSearchResultsWindow">
72 <iframe src="javascript:void(0)" frameborder="0" 
73         name="MSearchResults" id="MSearchResults">
74 </iframe>
75 </div>
77 <div class="header">
78   <div class="summary">
79 <a href="#nested-classes">Data Structures</a> &#124;
80 <a href="#define-members">Macros</a> &#124;
81 <a href="#enum-members">Enumerations</a> &#124;
82 <a href="#func-members">Functions</a>  </div>
83   <div class="headertitle">
84 <div class="title">util</div>  </div>
85 </div><!--header-->
86 <div class="contents">
88 <p>utility module  
89 <a href="#details">More...</a></p>
90 <table class="memberdecls">
91 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
92 Data Structures</h2></td></tr>
93 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtimlUtilImage.html">timlUtilImage</a></td></tr>
94 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
95 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtimlUtilInitializer.html">timlUtilInitializer</a></td></tr>
96 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a></td></tr>
98 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
99 </table><table class="memberdecls">
100 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
101 Macros</h2></td></tr>
102 <tr class="memitem:gaa800319c343d51dcc2ba62246ad298af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa800319c343d51dcc2ba62246ad298af"></a>
103 #define&#160;</td><td class="memItemRight" valign="bottom"><b>TIML_UTIL_MAX_STR</b>&#160;&#160;&#160;100</td></tr>
104 <tr class="separator:gaa800319c343d51dcc2ba62246ad298af"><td class="memSeparator" colspan="2">&#160;</td></tr>
105 <tr class="memitem:ga775af8da42e4c88c8c19afb00b273654"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga775af8da42e4c88c8c19afb00b273654"></a>
106 #define&#160;</td><td class="memItemRight" valign="bottom"><b>TIML_UTIL_PI</b>&#160;&#160;&#160;3.14159265358979323846</td></tr>
107 <tr class="separator:ga775af8da42e4c88c8c19afb00b273654"><td class="memSeparator" colspan="2">&#160;</td></tr>
108 <tr class="memitem:ga070b6e6e97816b6fcfd3dee857484693"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga070b6e6e97816b6fcfd3dee857484693"></a>
109 #define&#160;</td><td class="memItemRight" valign="bottom"><b>ERROR_UTIL_OFFSET</b>&#160;&#160;&#160;3000</td></tr>
110 <tr class="separator:ga070b6e6e97816b6fcfd3dee857484693"><td class="memSeparator" colspan="2">&#160;</td></tr>
111 </table><table class="memberdecls">
112 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
113 Enumerations</h2></td></tr>
114 <tr class="memitem:gad571717cf97615bd28081e15b4561fb5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilError</b> { <br/>
115 &#160;&#160;<b>ERROR_UTIL_NULL_PTR</b> = ERROR_UTIL_OFFSET, 
116 <b>ERROR_UTIL_MNIST_TRAINING_DATA_READING</b>, 
117 <b>ERROR_UTIL_MNIST_TRAINING_DATA_ALLOCATION</b>, 
118 <b>ERROR_UTIL_MNIST_TRAINING_LABEL_READING</b>, 
119 <br/>
120 &#160;&#160;<b>ERROR_UTIL_MNIST_TRAINING_LABEL_ALLOCATION</b>, 
121 <b>ERROR_UTIL_MNIST_TESTING_DATA_READING</b>, 
122 <b>ERROR_UTIL_MNIST_TESTING_DATA_ALLOCATION</b>, 
123 <b>ERROR_UTIL_MNIST_TESTING_LABEL_READING</b>, 
124 <br/>
125 &#160;&#160;<b>ERROR_UTIL_MNIST_TESTING_LABEL_ALLOCATION</b>, 
126 <b>ERROR_UTIL_CIFAR10_TRAINING_READING</b>, 
127 <b>ERROR_UTIL_CIFAR10_TRAINING_ALLOCATION</b>, 
128 <b>ERROR_UTIL_CIFAR10_TESTING_READING</b>, 
129 <br/>
130 &#160;&#160;<b>ERROR_UTIL_CIFAR10_TESTING_ALLOCATION</b>, 
131 <b>ERROR_UTIL_CIFAR100_TRAINING_READING</b>, 
132 <b>ERROR_UTIL_CIFAR100_TRAINING_ALLOCATION</b>, 
133 <b>ERROR_UTIL_CIFAR100_TESTING_READING</b>, 
134 <br/>
135 &#160;&#160;<b>ERROR_UTIL_CIFAR100_TESTING_ALLOCATION</b>, 
136 <b>ERROR_UTIL_READ_FLOAT_MATRIX</b>, 
137 <b>ERROR_UTIL_READ_INT_MATRIX</b>, 
138 <b>ERROR_UTIL_READ_FLOAT_VECTOR</b>, 
139 <br/>
140 &#160;&#160;<b>ERROR_UTIL_READ_INT_VECTOR</b>, 
141 <b>ERROR_UTIL_WRITE_FLOAT_MATRIX</b>, 
142 <b>ERROR_UTIL_WRITE_INT_MATRIX</b>, 
143 <b>ERROR_UTIL_WRITE_FLOAT_VECTOR</b>, 
144 <br/>
145 &#160;&#160;<b>ERROR_UTIL_WRITE_INT_VECTOR</b>, 
146 <b>ERROR_UTIL_MALLOC</b>, 
147 <b>ERROR_UTIL_JPEG_READING</b>
148 <br/>
149  }</td></tr>
150 <tr class="separator:gad571717cf97615bd28081e15b4561fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 <tr class="memitem:gad605701ea044242abd13eac42194bb29"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilActivationType</b> { <br/>
152 &#160;&#160;<b>Util_Sigmoid</b>, 
153 <b>Util_Softmax</b>, 
154 <b>Util_Softplus</b>, 
155 <b>Util_Relu</b>, 
156 <br/>
157 &#160;&#160;<b>Util_Nrelu</b>, 
158 <b>Util_Tanh</b>, 
159 <b>Util_Linear</b>
160 <br/>
161  }</td></tr>
162 <tr class="separator:gad605701ea044242abd13eac42194bb29"><td class="memSeparator" colspan="2">&#160;</td></tr>
163 <tr class="memitem:ga3bfdd4453df8afd1addfe23489d86f09"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilCostFunctionType</b> { <b>Util_CrossEntropy</b>, 
164 <b>Util_MSE</b>
165  }</td></tr>
166 <tr class="separator:ga3bfdd4453df8afd1addfe23489d86f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
167 <tr class="memitem:ga4f914372aedf08ba56b8158727b558d8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilConvType</b> { <b>Util_Conv2D</b>, 
168 <b>Util_Corr2D</b>
169  }</td></tr>
170 <tr class="separator:ga4f914372aedf08ba56b8158727b558d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:ga8e44b2a87636024736da04ae5a53c1c9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga8e44b2a87636024736da04ae5a53c1c9">timlUtilParamsLevel</a> { <a class="el" href="group__util.html#gga8e44b2a87636024736da04ae5a53c1c9a7a706ba3c48e3e4f1302c8fc5af3bb50">Util_ParamsLevel1</a>, 
172 <a class="el" href="group__util.html#gga8e44b2a87636024736da04ae5a53c1c9a2cddbb23ea76ecaee590b53dab026432">Util_ParamsLevel2</a>, 
173 <a class="el" href="group__util.html#gga8e44b2a87636024736da04ae5a53c1c9adfa1c162a9ac296e6e94e6a03b5ccef5">Util_ParamsLevel3</a>
174  }</td></tr>
175 <tr class="separator:ga8e44b2a87636024736da04ae5a53c1c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
176 <tr class="memitem:ga62247c3acaa170e3a75f9887ec21106f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga62247c3acaa170e3a75f9887ec21106f">timlUtilAllocatorLevel</a> { <a class="el" href="group__util.html#gga62247c3acaa170e3a75f9887ec21106fabaf43a2a2db7a39b88ca28b3fbdb9f8d">Util_AllocatorLevel1</a>, 
177 <a class="el" href="group__util.html#gga62247c3acaa170e3a75f9887ec21106fa852397275a536af52c736403647721c3">Util_AllocatorLevel2</a>, 
178 <a class="el" href="group__util.html#gga62247c3acaa170e3a75f9887ec21106faaa6f2cd7843572787572085b7bef172b">Util_AllocatorLevel3</a>
179  }</td></tr>
180 <tr class="separator:ga62247c3acaa170e3a75f9887ec21106f"><td class="memSeparator" colspan="2">&#160;</td></tr>
181 <tr class="memitem:ga898df2504b88d834c373082f2aa9f537"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga898df2504b88d834c373082f2aa9f537">timlUtilCropType</a> { <a class="el" href="group__util.html#gga898df2504b88d834c373082f2aa9f537ae92f4e5d3672f4d40cb213ac3a2210b3">Util_CenterCrop</a>, 
182 <a class="el" href="group__util.html#gga898df2504b88d834c373082f2aa9f537ac82205e1f2c21d90dbcccd0e8a7d0dc8">Util_RandomCrop</a>
183  }</td></tr>
184 <tr class="separator:ga898df2504b88d834c373082f2aa9f537"><td class="memSeparator" colspan="2">&#160;</td></tr>
185 <tr class="memitem:ga5405b012e02035f4d864e0e38d516764"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga5405b012e02035f4d864e0e38d516764">timlUtilMirrorType</a> { <a class="el" href="group__util.html#gga5405b012e02035f4d864e0e38d516764abfa2a07e6c5c6e74add533dfc9b548dd">Util_Mirror</a>, 
186 <a class="el" href="group__util.html#gga5405b012e02035f4d864e0e38d516764aa4b22e60f0d512a27496c274c01adab6">Util_NoMirror</a>, 
187 <a class="el" href="group__util.html#gga5405b012e02035f4d864e0e38d516764a8ece193f7f7681a69b4b286983583cfc">Util_RandomMirror</a>
188  }</td></tr>
189 <tr class="separator:ga5405b012e02035f4d864e0e38d516764"><td class="memSeparator" colspan="2">&#160;</td></tr>
190 <tr class="memitem:ga24b8d631aa6d95132123f8ca8897b7dd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilInitializerType</b> { <b>Util_Constant</b>, 
191 <b>Util_Gaussian</b>, 
192 <b>Util_Uniform</b>, 
193 <b>Util_Xavier</b>
194  }</td></tr>
195 <tr class="separator:ga24b8d631aa6d95132123f8ca8897b7dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
196 <tr class="memitem:gacf64b66c7adbbbf408401e419d44c9f7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>timlUtilPhase</b> { <b>Util_Train</b>, 
197 <b>Util_Test</b>, 
198 <b>Util_Debug</b>
199  }</td></tr>
200 <tr class="separator:gacf64b66c7adbbbf408401e419d44c9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
201 </table><table class="memberdecls">
202 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
203 Functions</h2></td></tr>
204 <tr class="memitem:ga218c4e1b952545e65e70b46fc087c0fa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga218c4e1b952545e65e70b46fc087c0fa">timlUtilReadMNIST</a> (const char *path, <a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *training, <a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *testing)</td></tr>
205 <tr class="memdesc:ga218c4e1b952545e65e70b46fc087c0fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read MNIST database from binary files.  <a href="#ga218c4e1b952545e65e70b46fc087c0fa">More...</a><br/></td></tr>
206 <tr class="separator:ga218c4e1b952545e65e70b46fc087c0fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
207 <tr class="memitem:ga518889e2bee0ffe2a0bab1a2a509afeb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga518889e2bee0ffe2a0bab1a2a509afeb">timlUtilReadCIFAR10</a> (const char *path, <a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *training, <a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *testing)</td></tr>
208 <tr class="memdesc:ga518889e2bee0ffe2a0bab1a2a509afeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read CIFA10 database from binary files.  <a href="#ga518889e2bee0ffe2a0bab1a2a509afeb">More...</a><br/></td></tr>
209 <tr class="separator:ga518889e2bee0ffe2a0bab1a2a509afeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
210 <tr class="memitem:gad332b3fc9cca905cb073bb950c27d9a3"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gad332b3fc9cca905cb073bb950c27d9a3">timlUtilDiffTime</a> (struct timespec start, struct timespec end)</td></tr>
211 <tr class="memdesc:gad332b3fc9cca905cb073bb950c27d9a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time difference in micro second.  <a href="#gad332b3fc9cca905cb073bb950c27d9a3">More...</a><br/></td></tr>
212 <tr class="separator:gad332b3fc9cca905cb073bb950c27d9a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
213 <tr class="memitem:ga7b7056163efcce74e844159113ad7670"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga7b7056163efcce74e844159113ad7670">timlUtilRandDiscreteUniformRNG</a> (int a, int b)</td></tr>
214 <tr class="memdesc:ga7b7056163efcce74e844159113ad7670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Discrete uniform random number generator in [a, b].  <a href="#ga7b7056163efcce74e844159113ad7670">More...</a><br/></td></tr>
215 <tr class="separator:ga7b7056163efcce74e844159113ad7670"><td class="memSeparator" colspan="2">&#160;</td></tr>
216 <tr class="memitem:ga33ca8bcccfd95381c34a7822dd3d5e03"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga33ca8bcccfd95381c34a7822dd3d5e03">timlUtilRandContinuousUniformRNG</a> (float *x, int dim, float a, float b)</td></tr>
217 <tr class="memdesc:ga33ca8bcccfd95381c34a7822dd3d5e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a discrete uniform random vector between (a, b)  <a href="#ga33ca8bcccfd95381c34a7822dd3d5e03">More...</a><br/></td></tr>
218 <tr class="separator:ga33ca8bcccfd95381c34a7822dd3d5e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 <tr class="memitem:gab0d103f2a7348ee3f7be2468cb06a374"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gab0d103f2a7348ee3f7be2468cb06a374">timlUtilRandNormalRNG</a> (float *x, int dim, float mean, float std)</td></tr>
220 <tr class="memdesc:gab0d103f2a7348ee3f7be2468cb06a374"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a Gaussian random number.  <a href="#gab0d103f2a7348ee3f7be2468cb06a374">More...</a><br/></td></tr>
221 <tr class="separator:gab0d103f2a7348ee3f7be2468cb06a374"><td class="memSeparator" colspan="2">&#160;</td></tr>
222 <tr class="memitem:ga33f6226602545ae82fb9eb9dc4e2d0f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga33f6226602545ae82fb9eb9dc4e2d0f4">timlUtilRandPerm</a> (int *array, int n)</td></tr>
223 <tr class="memdesc:ga33f6226602545ae82fb9eb9dc4e2d0f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Random permute an array.  <a href="#ga33f6226602545ae82fb9eb9dc4e2d0f4">More...</a><br/></td></tr>
224 <tr class="separator:ga33f6226602545ae82fb9eb9dc4e2d0f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
225 <tr class="memitem:ga032c2a840544aee29ac1b36494bdfc6b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga032c2a840544aee29ac1b36494bdfc6b">timlUtilFread</a> (void *ptr, size_t size, size_t nmemb, FILE *fp)</td></tr>
226 <tr class="memdesc:ga032c2a840544aee29ac1b36494bdfc6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read binary file.  <a href="#ga032c2a840544aee29ac1b36494bdfc6b">More...</a><br/></td></tr>
227 <tr class="separator:ga032c2a840544aee29ac1b36494bdfc6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
228 <tr class="memitem:gad27678810eff89cf1f813631d762b298"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gad27678810eff89cf1f813631d762b298">timlUtilFwrite</a> (const void *ptr, size_t size, size_t nmemb, FILE *fp)</td></tr>
229 <tr class="memdesc:gad27678810eff89cf1f813631d762b298"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to a binar file.  <a href="#gad27678810eff89cf1f813631d762b298">More...</a><br/></td></tr>
230 <tr class="separator:gad27678810eff89cf1f813631d762b298"><td class="memSeparator" colspan="2">&#160;</td></tr>
231 <tr class="memitem:gafdc65cff28dd8132ee12d7e4fff6b344"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gafdc65cff28dd8132ee12d7e4fff6b344">timlUtilConv2Valid</a> (float *a, float *b, float *c, int aRow, int aCol, int bRow, int bCol)</td></tr>
232 <tr class="memdesc:gafdc65cff28dd8132ee12d7e4fff6b344"><td class="mdescLeft">&#160;</td><td class="mdescRight">conv2(a, b, 'valid')  <a href="#gafdc65cff28dd8132ee12d7e4fff6b344">More...</a><br/></td></tr>
233 <tr class="separator:gafdc65cff28dd8132ee12d7e4fff6b344"><td class="memSeparator" colspan="2">&#160;</td></tr>
234 <tr class="memitem:ga825fca95dc612cb50cca8d3b42fce451"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga825fca95dc612cb50cca8d3b42fce451">timlUtilConv2Full</a> (float *a, float *b, float *c, int aRow, int aCol, int bRow, int bCol)</td></tr>
235 <tr class="memdesc:ga825fca95dc612cb50cca8d3b42fce451"><td class="mdescLeft">&#160;</td><td class="mdescRight">conv2(a, b, 'full')  <a href="#ga825fca95dc612cb50cca8d3b42fce451">More...</a><br/></td></tr>
236 <tr class="separator:ga825fca95dc612cb50cca8d3b42fce451"><td class="memSeparator" colspan="2">&#160;</td></tr>
237 <tr class="memitem:ga76c854493ff6e686e70caf0e0f330694"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga76c854493ff6e686e70caf0e0f330694">timlUtilCorr2Full</a> (float *a, float *b, float *c, int aRow, int aCol, int bRow, int bCol)</td></tr>
238 <tr class="memdesc:ga76c854493ff6e686e70caf0e0f330694"><td class="mdescLeft">&#160;</td><td class="mdescRight">conv2(a, rot90(b,2), 'valid')  <a href="#ga76c854493ff6e686e70caf0e0f330694">More...</a><br/></td></tr>
239 <tr class="separator:ga76c854493ff6e686e70caf0e0f330694"><td class="memSeparator" colspan="2">&#160;</td></tr>
240 <tr class="memitem:ga823c056e72e3c9738ba07232a759dd93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga823c056e72e3c9738ba07232a759dd93">timlUtilConv2ImageReshapeBack</a> (float *x, float *xReshape, int *index, int channel, int xDim, int indexDim, int deviceId, int threadId)</td></tr>
241 <tr class="memdesc:ga823c056e72e3c9738ba07232a759dd93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reshape the convolution matrix back to feature maps.  <a href="#ga823c056e72e3c9738ba07232a759dd93">More...</a><br/></td></tr>
242 <tr class="separator:ga823c056e72e3c9738ba07232a759dd93"><td class="memSeparator" colspan="2">&#160;</td></tr>
243 <tr class="memitem:ga5bed0ba528735cfa363c12de22b30fae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga5bed0ba528735cfa363c12de22b30fae">timlUtilConv2ImageReshapeIndex</a> (int *index, int aRow, int aCol, int bRow, int bCol, int padUp, int padDown, int padLeft, int padRight, int strideX, int strideY, timlUtilConvType type)</td></tr>
244 <tr class="memdesc:ga5bed0ba528735cfa363c12de22b30fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a reshaping index matrix.  <a href="#ga5bed0ba528735cfa363c12de22b30fae">More...</a><br/></td></tr>
245 <tr class="separator:ga5bed0ba528735cfa363c12de22b30fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
246 <tr class="memitem:ga1a6a5d975df7c8d4ef7ca184cbb98293"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga1a6a5d975df7c8d4ef7ca184cbb98293">timlUtilConv2ImageReshape</a> (float *xReshape, float *x, int *index, int channel, int xDim, int indexDim, int deviceId, int threadId)</td></tr>
247 <tr class="memdesc:ga1a6a5d975df7c8d4ef7ca184cbb98293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reshape feature maps to a format that turns 2d convolution to GEMM operation.  <a href="#ga1a6a5d975df7c8d4ef7ca184cbb98293">More...</a><br/></td></tr>
248 <tr class="separator:ga1a6a5d975df7c8d4ef7ca184cbb98293"><td class="memSeparator" colspan="2">&#160;</td></tr>
249 <tr class="memitem:ga6e186bf4e96a71fd1bc88aa79a7fd7f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtimlUtilImage.html">timlUtilImage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga6e186bf4e96a71fd1bc88aa79a7fd7f9">timlUtilReadJPEG</a> (const char *name)</td></tr>
250 <tr class="memdesc:ga6e186bf4e96a71fd1bc88aa79a7fd7f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">read a jpg image  <a href="#ga6e186bf4e96a71fd1bc88aa79a7fd7f9">More...</a><br/></td></tr>
251 <tr class="separator:ga6e186bf4e96a71fd1bc88aa79a7fd7f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
252 <tr class="memitem:ga4e3a2beb9a301e6c71f5c1df09d6099e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga4e3a2beb9a301e6c71f5c1df09d6099e">timlUtilReadFixedSizeJPEG</a> (const char *name, float *data, int row, int col, int channel)</td></tr>
253 <tr class="memdesc:ga4e3a2beb9a301e6c71f5c1df09d6099e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a jpg image with known size information to avoid frequent allocation and deallocation of data.  <a href="#ga4e3a2beb9a301e6c71f5c1df09d6099e">More...</a><br/></td></tr>
254 <tr class="separator:ga4e3a2beb9a301e6c71f5c1df09d6099e"><td class="memSeparator" colspan="2">&#160;</td></tr>
255 <tr class="memitem:ga3cb2f6d77b727af3d819f75c6918c327"><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga3cb2f6d77b727af3d819f75c6918c327">timlUtilScanJPEG</a> (const char *dirName, int *imageNum)</td></tr>
256 <tr class="memdesc:ga3cb2f6d77b727af3d819f75c6918c327"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an array of jpg image names in the directory.  <a href="#ga3cb2f6d77b727af3d819f75c6918c327">More...</a><br/></td></tr>
257 <tr class="separator:ga3cb2f6d77b727af3d819f75c6918c327"><td class="memSeparator" colspan="2">&#160;</td></tr>
258 <tr class="memitem:ga365f20b5c810059087f2d24964ec7fdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga365f20b5c810059087f2d24964ec7fdd"></a>
259 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga365f20b5c810059087f2d24964ec7fdd">timlUtilBLASdgemm</a> (const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const double alpha, const double *A, const double *B, const double beta, double *C, int deviceId, int threadId)</td></tr>
260 <tr class="memdesc:ga365f20b5c810059087f2d24964ec7fdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double general matrix matrix multiplication C = alpha * op(A) * op(B) + beta * C op(A) : M*K op(B) : K*N. <br/></td></tr>
261 <tr class="separator:ga365f20b5c810059087f2d24964ec7fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
262 <tr class="memitem:ga3cd3b5eb20373a30eb06e1db3f27e105"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3cd3b5eb20373a30eb06e1db3f27e105"></a>
263 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga3cd3b5eb20373a30eb06e1db3f27e105">timlUtilBLASsgemm</a> (const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K, const float alpha, const float *A, const float *B, const float beta, float *C, int deviceId, int threadId)</td></tr>
264 <tr class="memdesc:ga3cd3b5eb20373a30eb06e1db3f27e105"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float general matrix matrix multiplication C = alpha * op(A) * op(B) + beta * C op(A) : M*K op(B) : K*N. <br/></td></tr>
265 <tr class="separator:ga3cd3b5eb20373a30eb06e1db3f27e105"><td class="memSeparator" colspan="2">&#160;</td></tr>
266 <tr class="memitem:ga7f200e1630837f410457f12228a3f8e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f200e1630837f410457f12228a3f8e3"></a>
267 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga7f200e1630837f410457f12228a3f8e3">timlUtilBLASdgemv</a> (const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha, const double *A, const double *x, const double beta, double *y, int deviceId, int threadId)</td></tr>
268 <tr class="memdesc:ga7f200e1630837f410457f12228a3f8e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double general matrix vector multiplication y = alpha * op(A) * x + beta * y op(A): M*N. <br/></td></tr>
269 <tr class="separator:ga7f200e1630837f410457f12228a3f8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
270 <tr class="memitem:ga916c002835a135384e25aa4eabe8fece"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga916c002835a135384e25aa4eabe8fece"></a>
271 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga916c002835a135384e25aa4eabe8fece">timlUtilBLASsgemv</a> (const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const float alpha, const float *A, const float *x, const float beta, float *y, int deviceId, int threadId)</td></tr>
272 <tr class="memdesc:ga916c002835a135384e25aa4eabe8fece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float general matrix vector multiplication y = alpha * op(A) * x + beta * y op(A): M*N. <br/></td></tr>
273 <tr class="separator:ga916c002835a135384e25aa4eabe8fece"><td class="memSeparator" colspan="2">&#160;</td></tr>
274 <tr class="memitem:gace6d95139cce2b66d468b65916d92103"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace6d95139cce2b66d468b65916d92103"></a>
275 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gace6d95139cce2b66d468b65916d92103">timlUtilBLASsaxpy</a> (const int N, const float alpha, const float *X, float *Y, int deviceId, int threadId)</td></tr>
276 <tr class="memdesc:gace6d95139cce2b66d468b65916d92103"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float vector addition Y = alpha * X + Y. <br/></td></tr>
277 <tr class="separator:gace6d95139cce2b66d468b65916d92103"><td class="memSeparator" colspan="2">&#160;</td></tr>
278 <tr class="memitem:ga67a8b8821e100476544c39ebe3f7d88a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga67a8b8821e100476544c39ebe3f7d88a"></a>
279 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga67a8b8821e100476544c39ebe3f7d88a">timlUtilBLASdaxpy</a> (const int N, const double alpha, const double *X, double *Y, int deviceId, int threadId)</td></tr>
280 <tr class="memdesc:ga67a8b8821e100476544c39ebe3f7d88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double vector addition Y = alpha * X + Y. <br/></td></tr>
281 <tr class="separator:ga67a8b8821e100476544c39ebe3f7d88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
282 <tr class="memitem:gae2c99812143fb0697fad81b04c62545d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2c99812143fb0697fad81b04c62545d"></a>
283 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gae2c99812143fb0697fad81b04c62545d">timlUtilBLASscopy</a> (const int N, const float *X, float *Y, int deviceId, int threadId)</td></tr>
284 <tr class="memdesc:gae2c99812143fb0697fad81b04c62545d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float vector copy Y = X. <br/></td></tr>
285 <tr class="separator:gae2c99812143fb0697fad81b04c62545d"><td class="memSeparator" colspan="2">&#160;</td></tr>
286 <tr class="memitem:ga242d2f4bb422b71fa05aec4b8568bdc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga242d2f4bb422b71fa05aec4b8568bdc4"></a>
287 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga242d2f4bb422b71fa05aec4b8568bdc4">timlUtilBLASdcopy</a> (const int N, const double *X, double *Y, int deviceId, int threadId)</td></tr>
288 <tr class="memdesc:ga242d2f4bb422b71fa05aec4b8568bdc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double vector copy Y = X. <br/></td></tr>
289 <tr class="separator:ga242d2f4bb422b71fa05aec4b8568bdc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
290 <tr class="memitem:gacdd02957d16d4ba4951f35c0e7fc5b30"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacdd02957d16d4ba4951f35c0e7fc5b30"></a>
291 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gacdd02957d16d4ba4951f35c0e7fc5b30">timlUtilBLASsger</a> (const int M, const int N, const float alpha, float *x, float *y, float *A, int deviceId, int threadId)</td></tr>
292 <tr class="memdesc:gacdd02957d16d4ba4951f35c0e7fc5b30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float vector outer product A = alpha*x*y' + A; x: M y: N. <br/></td></tr>
293 <tr class="separator:gacdd02957d16d4ba4951f35c0e7fc5b30"><td class="memSeparator" colspan="2">&#160;</td></tr>
294 <tr class="memitem:ga22f1d9ebb3a5745c3583860b42c8590a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga22f1d9ebb3a5745c3583860b42c8590a"></a>
295 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga22f1d9ebb3a5745c3583860b42c8590a">timlUtilBLASdger</a> (const int M, const int N, const double alpha, double *x, double *y, double *A, int deviceId, int threadId)</td></tr>
296 <tr class="memdesc:ga22f1d9ebb3a5745c3583860b42c8590a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double vector outer product A = alpha*x*y' + A; x: M y: N. <br/></td></tr>
297 <tr class="separator:ga22f1d9ebb3a5745c3583860b42c8590a"><td class="memSeparator" colspan="2">&#160;</td></tr>
298 <tr class="memitem:ga336682df712eb1342b16a00731b55e2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga336682df712eb1342b16a00731b55e2c"></a>
299 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga336682df712eb1342b16a00731b55e2c">timlUtilBLASdscal</a> (const int N, const double alpha, double *X, int deviceId, int threadId)</td></tr>
300 <tr class="memdesc:ga336682df712eb1342b16a00731b55e2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Double vector scaling x = alpha * x. <br/></td></tr>
301 <tr class="separator:ga336682df712eb1342b16a00731b55e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
302 <tr class="memitem:ga7f2ccf0e4a749d484cd40b64d14a0bdb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f2ccf0e4a749d484cd40b64d14a0bdb"></a>
303 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga7f2ccf0e4a749d484cd40b64d14a0bdb">timlUtilBLASsscal</a> (const int N, const float alpha, float *X, int deviceId, int threadId)</td></tr>
304 <tr class="memdesc:ga7f2ccf0e4a749d484cd40b64d14a0bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Float vector scaling x = alpha * x. <br/></td></tr>
305 <tr class="separator:ga7f2ccf0e4a749d484cd40b64d14a0bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
306 <tr class="memitem:ga4c8737cc28dfcafb340a06869cb06c6d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga4c8737cc28dfcafb340a06869cb06c6d">timlUtilVectorResetFloat</a> (float *a, int m, float val, int deviceId, int threadId)</td></tr>
307 <tr class="memdesc:ga4c8737cc28dfcafb340a06869cb06c6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset a float vector.  <a href="#ga4c8737cc28dfcafb340a06869cb06c6d">More...</a><br/></td></tr>
308 <tr class="separator:ga4c8737cc28dfcafb340a06869cb06c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
309 <tr class="memitem:ga105ed091f1ed14bc4542117639799727"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga105ed091f1ed14bc4542117639799727">timlUtilVectorResetInt</a> (int *a, int m, int val, int deviceId, int threadId)</td></tr>
310 <tr class="memdesc:ga105ed091f1ed14bc4542117639799727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset an int vector.  <a href="#ga105ed091f1ed14bc4542117639799727">More...</a><br/></td></tr>
311 <tr class="separator:ga105ed091f1ed14bc4542117639799727"><td class="memSeparator" colspan="2">&#160;</td></tr>
312 <tr class="memitem:ga50c739176cce0504f24f414d1abe03de"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga50c739176cce0504f24f414d1abe03de">timlUtilVectorSumFloat</a> (float *a, int n)</td></tr>
313 <tr class="memdesc:ga50c739176cce0504f24f414d1abe03de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the sum of a float vector.  <a href="#ga50c739176cce0504f24f414d1abe03de">More...</a><br/></td></tr>
314 <tr class="separator:ga50c739176cce0504f24f414d1abe03de"><td class="memSeparator" colspan="2">&#160;</td></tr>
315 <tr class="memitem:gadbfd41f459cef267ff705fbed1a684de"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gadbfd41f459cef267ff705fbed1a684de">timlUtilVectorSortFloat</a> (float *a, int n)</td></tr>
316 <tr class="memdesc:gadbfd41f459cef267ff705fbed1a684de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort an array in descending order.  <a href="#gadbfd41f459cef267ff705fbed1a684de">More...</a><br/></td></tr>
317 <tr class="separator:gadbfd41f459cef267ff705fbed1a684de"><td class="memSeparator" colspan="2">&#160;</td></tr>
318 <tr class="memitem:ga7adedb39838d1a724329c2f05e70d2bc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga7adedb39838d1a724329c2f05e70d2bc">timlUtilVectorSortIndexFloat</a> (float *a, int *index, int n)</td></tr>
319 <tr class="memdesc:ga7adedb39838d1a724329c2f05e70d2bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort an array in descending order and return the indices of the original elements in the sorted array.  <a href="#ga7adedb39838d1a724329c2f05e70d2bc">More...</a><br/></td></tr>
320 <tr class="separator:ga7adedb39838d1a724329c2f05e70d2bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
321 <tr class="memitem:ga80375ed4d8c895a5373c0ea5bea7c90c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga80375ed4d8c895a5373c0ea5bea7c90c">timlUtilVectorMaxFloat</a> (float *x, int n, int inc)</td></tr>
322 <tr class="memdesc:ga80375ed4d8c895a5373c0ea5bea7c90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max value in the array.  <a href="#ga80375ed4d8c895a5373c0ea5bea7c90c">More...</a><br/></td></tr>
323 <tr class="separator:ga80375ed4d8c895a5373c0ea5bea7c90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
324 <tr class="memitem:ga2e09d42235ce01dc8d951cac92ccce28"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga2e09d42235ce01dc8d951cac92ccce28">timlUtilVectorMaxIndexFloat</a> (float *x, int n, int inc)</td></tr>
325 <tr class="memdesc:ga2e09d42235ce01dc8d951cac92ccce28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the max value index in the array.  <a href="#ga2e09d42235ce01dc8d951cac92ccce28">More...</a><br/></td></tr>
326 <tr class="separator:ga2e09d42235ce01dc8d951cac92ccce28"><td class="memSeparator" colspan="2">&#160;</td></tr>
327 <tr class="memitem:ga4cbc9e168ae6fe4be792e5700078fbfd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga4cbc9e168ae6fe4be792e5700078fbfd">timlUtilElementWiseMultiply</a> (float *a, const float *b, const float *c, int dim, int deviceId, int threadId)</td></tr>
328 <tr class="memdesc:ga4cbc9e168ae6fe4be792e5700078fbfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Element wise multiply c = a.*b.  <a href="#ga4cbc9e168ae6fe4be792e5700078fbfd">More...</a><br/></td></tr>
329 <tr class="separator:ga4cbc9e168ae6fe4be792e5700078fbfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
330 <tr class="memitem:ga158d5bed50c9d1aa04f3437ba4e4746c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga158d5bed50c9d1aa04f3437ba4e4746c">timlUtilSubtract</a> (float *x, float y, int deviceId, int threadId)</td></tr>
331 <tr class="memdesc:ga158d5bed50c9d1aa04f3437ba4e4746c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract operation.  <a href="#ga158d5bed50c9d1aa04f3437ba4e4746c">More...</a><br/></td></tr>
332 <tr class="separator:ga158d5bed50c9d1aa04f3437ba4e4746c"><td class="memSeparator" colspan="2">&#160;</td></tr>
333 <tr class="memitem:ga0e3ab1684d55ae10ec96b1b7a58c2d0f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga0e3ab1684d55ae10ec96b1b7a58c2d0f">timlUtilSigmoid</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
334 <tr class="memdesc:ga0e3ab1684d55ae10ec96b1b7a58c2d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sigmoid.  <a href="#ga0e3ab1684d55ae10ec96b1b7a58c2d0f">More...</a><br/></td></tr>
335 <tr class="separator:ga0e3ab1684d55ae10ec96b1b7a58c2d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
336 <tr class="memitem:gac4ce5d2a827d4d0bddb092604dc22555"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gac4ce5d2a827d4d0bddb092604dc22555">timlUtilSigmoidDerivative</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
337 <tr class="memdesc:gac4ce5d2a827d4d0bddb092604dc22555"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sigmoid derivative.  <a href="#gac4ce5d2a827d4d0bddb092604dc22555">More...</a><br/></td></tr>
338 <tr class="separator:gac4ce5d2a827d4d0bddb092604dc22555"><td class="memSeparator" colspan="2">&#160;</td></tr>
339 <tr class="memitem:gaf61206d55b45c89e3382ed9684ef2c79"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gaf61206d55b45c89e3382ed9684ef2c79">timlUtilRelu</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
340 <tr class="memdesc:gaf61206d55b45c89e3382ed9684ef2c79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectified linear unit.  <a href="#gaf61206d55b45c89e3382ed9684ef2c79">More...</a><br/></td></tr>
341 <tr class="separator:gaf61206d55b45c89e3382ed9684ef2c79"><td class="memSeparator" colspan="2">&#160;</td></tr>
342 <tr class="memitem:gadcb6e562a1ddebb9589dc326c6e85db3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gadcb6e562a1ddebb9589dc326c6e85db3">timlUtilReluDerivative</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
343 <tr class="memdesc:gadcb6e562a1ddebb9589dc326c6e85db3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectified linear unit derivative.  <a href="#gadcb6e562a1ddebb9589dc326c6e85db3">More...</a><br/></td></tr>
344 <tr class="separator:gadcb6e562a1ddebb9589dc326c6e85db3"><td class="memSeparator" colspan="2">&#160;</td></tr>
345 <tr class="memitem:ga680fe5b84f1ce4712c74fc9c01b5dc82"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga680fe5b84f1ce4712c74fc9c01b5dc82">timlUtilTanhDerivative</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
346 <tr class="memdesc:ga680fe5b84f1ce4712c74fc9c01b5dc82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tanh derivative.  <a href="#ga680fe5b84f1ce4712c74fc9c01b5dc82">More...</a><br/></td></tr>
347 <tr class="separator:ga680fe5b84f1ce4712c74fc9c01b5dc82"><td class="memSeparator" colspan="2">&#160;</td></tr>
348 <tr class="memitem:gac8848759ff2638e9b54beef8f82748ae"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gac8848759ff2638e9b54beef8f82748ae">timlUtilMultinomialCrossEntropy</a> (float *x, int label, int n)</td></tr>
349 <tr class="memdesc:gac8848759ff2638e9b54beef8f82748ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the mutlinomial cross entropy between x and label.  <a href="#gac8848759ff2638e9b54beef8f82748ae">More...</a><br/></td></tr>
350 <tr class="separator:gac8848759ff2638e9b54beef8f82748ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
351 <tr class="memitem:ga8e17bdb2dd7b9e8f25d1a93c8d470a97"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga8e17bdb2dd7b9e8f25d1a93c8d470a97">timlUtilMeanSqaureError</a> (float *x, int label, int n)</td></tr>
352 <tr class="memdesc:ga8e17bdb2dd7b9e8f25d1a93c8d470a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the mean square error between x and label.  <a href="#ga8e17bdb2dd7b9e8f25d1a93c8d470a97">More...</a><br/></td></tr>
353 <tr class="separator:ga8e17bdb2dd7b9e8f25d1a93c8d470a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
354 <tr class="memitem:ga223537dde56b8c21a9455ff8a635f71f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga223537dde56b8c21a9455ff8a635f71f">timlUtilSoftmax</a> (float *x, float *y, int row, int col, int channel, int deviceId, int threadId)</td></tr>
355 <tr class="memdesc:ga223537dde56b8c21a9455ff8a635f71f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Softmax function.  <a href="#ga223537dde56b8c21a9455ff8a635f71f">More...</a><br/></td></tr>
356 <tr class="separator:ga223537dde56b8c21a9455ff8a635f71f"><td class="memSeparator" colspan="2">&#160;</td></tr>
357 <tr class="memitem:ga64e5197e9d131870e97cd510b3f499ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga64e5197e9d131870e97cd510b3f499ac">timlUtilClassifyAccuracy</a> (int *label, int topN, int num, int *trueLabel)</td></tr>
358 <tr class="memdesc:ga64e5197e9d131870e97cd510b3f499ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the classification accuracy.  <a href="#ga64e5197e9d131870e97cd510b3f499ac">More...</a><br/></td></tr>
359 <tr class="separator:ga64e5197e9d131870e97cd510b3f499ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
360 <tr class="memitem:ga6bc3609f73f6674134821cc002d7081f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga6bc3609f73f6674134821cc002d7081f">timlUtilTransform</a> (float *dataOut, float *dataIn, float *dataHost, int channel, int row, int col, int rowOffset, int colOffset, int rowIn, int colIn, float scale, float *mean, <a class="el" href="group__util.html#ga5405b012e02035f4d864e0e38d516764">timlUtilMirrorType</a> mirrorType, int deviceId, int threadId)</td></tr>
361 <tr class="memdesc:ga6bc3609f73f6674134821cc002d7081f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform the raw input data with preprocessing.  <a href="#ga6bc3609f73f6674134821cc002d7081f">More...</a><br/></td></tr>
362 <tr class="separator:ga6bc3609f73f6674134821cc002d7081f"><td class="memSeparator" colspan="2">&#160;</td></tr>
363 <tr class="memitem:gac9523e1013f8e3853568eb2e67b54a58"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gac9523e1013f8e3853568eb2e67b54a58">timlUtilMaxPooling</a> (float *outputMap, int *maxIndex, float *inputMap, int row, int col, int channel, int prevRow, int prevCol, int scaleRow, int scaleCol, int padUp, int padLeft, int strideX, int strideY, timlUtilPhase phase, int deviceId, int threadId)</td></tr>
364 <tr class="memdesc:gac9523e1013f8e3853568eb2e67b54a58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max pooling.  <a href="#gac9523e1013f8e3853568eb2e67b54a58">More...</a><br/></td></tr>
365 <tr class="separator:gac9523e1013f8e3853568eb2e67b54a58"><td class="memSeparator" colspan="2">&#160;</td></tr>
366 <tr class="memitem:gae073107f6b111717bac95417ff80c85c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gae073107f6b111717bac95417ff80c85c">timlUtilUndoMaxPooling</a> (float *prevDelta, int *maxIndex, float *delta, int dim, int deviceId, int threadId)</td></tr>
367 <tr class="memdesc:gae073107f6b111717bac95417ff80c85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Undo max pooling.  <a href="#gae073107f6b111717bac95417ff80c85c">More...</a><br/></td></tr>
368 <tr class="separator:gae073107f6b111717bac95417ff80c85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
369 <tr class="memitem:ga8d4338ebfb64ecb3ec88094aebd65e40"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga8d4338ebfb64ecb3ec88094aebd65e40">timlUtilMeanPooling</a> (float *outputMap, float *inputMap, int row, int col, int channel, int prevRow, int prevCol, int scaleRow, int scaleCol, int padUp, int padLeft, int strideX, int strideY, int deviceId, int threadId)</td></tr>
370 <tr class="memdesc:ga8d4338ebfb64ecb3ec88094aebd65e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mean pooling.  <a href="#ga8d4338ebfb64ecb3ec88094aebd65e40">More...</a><br/></td></tr>
371 <tr class="separator:ga8d4338ebfb64ecb3ec88094aebd65e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
372 <tr class="memitem:ga47ba59c5e11f31931e3fae5717b93450"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga47ba59c5e11f31931e3fae5717b93450">timlUtilUndoMeanPooling</a> (float *prevDelta, float *delta, int row, int col, int channel, int prevRow, int prevCol, int scaleRow, int scaleCol, int padUp, int padLeft, int strideX, int strideY, int deviceId, int threadId)</td></tr>
373 <tr class="memdesc:ga47ba59c5e11f31931e3fae5717b93450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Undo mean pooling.  <a href="#ga47ba59c5e11f31931e3fae5717b93450">More...</a><br/></td></tr>
374 <tr class="separator:ga47ba59c5e11f31931e3fae5717b93450"><td class="memSeparator" colspan="2">&#160;</td></tr>
375 <tr class="memitem:ga1d68b304f7ad43899cf5a2762a0a49fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga1d68b304f7ad43899cf5a2762a0a49fc">timlUtilLocalContrastNormalize</a> (float *inputMap, float *outputMap, float *denom, int row, int col, int channel, int N, float alpha, float beta, int deviceId, int threadId)</td></tr>
376 <tr class="memdesc:ga1d68b304f7ad43899cf5a2762a0a49fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Local contrast normalization.  <a href="#ga1d68b304f7ad43899cf5a2762a0a49fc">More...</a><br/></td></tr>
377 <tr class="separator:ga1d68b304f7ad43899cf5a2762a0a49fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
378 <tr class="memitem:ga684bafa4cb678d451ec1aa5127007470"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga684bafa4cb678d451ec1aa5127007470">timlUtilLocalContrastUnnormalize</a> (float *prevDelta, float *prevFeatureMap, float *delta, float *featureMap, float *denom, int row, int col, int channel, int N, float alpha, float beta, int deviceId, int threadId)</td></tr>
379 <tr class="memdesc:ga684bafa4cb678d451ec1aa5127007470"><td class="mdescLeft">&#160;</td><td class="mdescRight">Local contrast unnormalization.  <a href="#ga684bafa4cb678d451ec1aa5127007470">More...</a><br/></td></tr>
380 <tr class="separator:ga684bafa4cb678d451ec1aa5127007470"><td class="memSeparator" colspan="2">&#160;</td></tr>
381 <tr class="memitem:ga4b2ab842a2212e924deb9f60bf1b703e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga4b2ab842a2212e924deb9f60bf1b703e">timlUtilMasking</a> (float *inputMap, float *outputMap, int *mask, unsigned int *randomVector, int dim, float prob, int deviceId, int threadId)</td></tr>
382 <tr class="memdesc:ga4b2ab842a2212e924deb9f60bf1b703e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Masking feature maps.  <a href="#ga4b2ab842a2212e924deb9f60bf1b703e">More...</a><br/></td></tr>
383 <tr class="separator:ga4b2ab842a2212e924deb9f60bf1b703e"><td class="memSeparator" colspan="2">&#160;</td></tr>
384 <tr class="memitem:ga7e53789a132ed94665d66a10dd9ff76c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga7e53789a132ed94665d66a10dd9ff76c">timlUtilUnmasking</a> (float *inputDelta, float *outputDelta, int *mask, int dim, float prob, int deviceId, int threadId)</td></tr>
385 <tr class="memdesc:ga7e53789a132ed94665d66a10dd9ff76c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Masking feature maps.  <a href="#ga7e53789a132ed94665d66a10dd9ff76c">More...</a><br/></td></tr>
386 <tr class="separator:ga7e53789a132ed94665d66a10dd9ff76c"><td class="memSeparator" colspan="2">&#160;</td></tr>
387 <tr class="memitem:ga26bb1805bd3475719324718c12cd5a0f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga26bb1805bd3475719324718c12cd5a0f">timlUtilTanh</a> (float *x, float *y, int n, int deviceId, int threadId)</td></tr>
388 <tr class="memdesc:ga26bb1805bd3475719324718c12cd5a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tanh.  <a href="#ga26bb1805bd3475719324718c12cd5a0f">More...</a><br/></td></tr>
389 <tr class="separator:ga26bb1805bd3475719324718c12cd5a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
390 <tr class="memitem:ga432784c912b542452d7236cf72d184fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga432784c912b542452d7236cf72d184fe">timlUtilMalloc</a> (void **devPtr, size_t size)</td></tr>
391 <tr class="memdesc:ga432784c912b542452d7236cf72d184fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">memory allocation  <a href="#ga432784c912b542452d7236cf72d184fe">More...</a><br/></td></tr>
392 <tr class="separator:ga432784c912b542452d7236cf72d184fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
393 <tr class="memitem:ga234f6573583aca626c49e10b1f5b57d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga234f6573583aca626c49e10b1f5b57d2">timlUtilFree</a> (void *ptr)</td></tr>
394 <tr class="memdesc:ga234f6573583aca626c49e10b1f5b57d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free pointer.  <a href="#ga234f6573583aca626c49e10b1f5b57d2">More...</a><br/></td></tr>
395 <tr class="separator:ga234f6573583aca626c49e10b1f5b57d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
396 <tr class="memitem:ga16f8b9181ff6ce6d4b1f655a5eb4738e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga16f8b9181ff6ce6d4b1f655a5eb4738e">timlUtilReverseEndian32</a> (register uint32_t i)</td></tr>
397 <tr class="memdesc:ga16f8b9181ff6ce6d4b1f655a5eb4738e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse the 32 bit endian pattern.  <a href="#ga16f8b9181ff6ce6d4b1f655a5eb4738e">More...</a><br/></td></tr>
398 <tr class="separator:ga16f8b9181ff6ce6d4b1f655a5eb4738e"><td class="memSeparator" colspan="2">&#160;</td></tr>
399 <tr class="memitem:ga71557afaf0c3d8359920380558dd92fb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ga71557afaf0c3d8359920380558dd92fb">timlUtilElementWiseFunction</a> (float *x, float *y, int n, float(*func)(float))</td></tr>
400 <tr class="memdesc:ga71557afaf0c3d8359920380558dd92fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a function on each element of the array.  <a href="#ga71557afaf0c3d8359920380558dd92fb">More...</a><br/></td></tr>
401 <tr class="separator:ga71557afaf0c3d8359920380558dd92fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
402 </table>
403 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
404 <p>utility module </p>
405 <h2 class="groupheader">Enumeration Type Documentation</h2>
406 <a class="anchor" id="ga62247c3acaa170e3a75f9887ec21106f"></a>
407 <div class="memitem">
408 <div class="memproto">
409       <table class="memname">
410         <tr>
411           <td class="memname">enum <a class="el" href="group__util.html#ga62247c3acaa170e3a75f9887ec21106f">timlUtilAllocatorLevel</a></td>
412         </tr>
413       </table>
414 </div><div class="memdoc">
415 <table class="fieldtable">
416 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga62247c3acaa170e3a75f9887ec21106fabaf43a2a2db7a39b88ca28b3fbdb9f8d"></a>Util_AllocatorLevel1</em>&#160;</td><td class="fielddoc">
417 <p>training mode </p>
418 </td></tr>
419 <tr><td class="fieldname"><em><a class="anchor" id="gga62247c3acaa170e3a75f9887ec21106fa852397275a536af52c736403647721c3"></a>Util_AllocatorLevel2</em>&#160;</td><td class="fielddoc">
420 <p>testing mode </p>
421 </td></tr>
422 <tr><td class="fieldname"><em><a class="anchor" id="gga62247c3acaa170e3a75f9887ec21106faaa6f2cd7843572787572085b7bef172b"></a>Util_AllocatorLevel3</em>&#160;</td><td class="fielddoc">
423 <p>testing mode with memory pool </p>
424 </td></tr>
425 </table>
427 </div>
428 </div>
429 <a class="anchor" id="ga898df2504b88d834c373082f2aa9f537"></a>
430 <div class="memitem">
431 <div class="memproto">
432       <table class="memname">
433         <tr>
434           <td class="memname">enum <a class="el" href="group__util.html#ga898df2504b88d834c373082f2aa9f537">timlUtilCropType</a></td>
435         </tr>
436       </table>
437 </div><div class="memdoc">
438 <table class="fieldtable">
439 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga898df2504b88d834c373082f2aa9f537ae92f4e5d3672f4d40cb213ac3a2210b3"></a>Util_CenterCrop</em>&#160;</td><td class="fielddoc">
440 <p>crop the picture at the center </p>
441 </td></tr>
442 <tr><td class="fieldname"><em><a class="anchor" id="gga898df2504b88d834c373082f2aa9f537ac82205e1f2c21d90dbcccd0e8a7d0dc8"></a>Util_RandomCrop</em>&#160;</td><td class="fielddoc">
443 <p>randomly crop the picture </p>
444 </td></tr>
445 </table>
447 </div>
448 </div>
449 <a class="anchor" id="ga5405b012e02035f4d864e0e38d516764"></a>
450 <div class="memitem">
451 <div class="memproto">
452       <table class="memname">
453         <tr>
454           <td class="memname">enum <a class="el" href="group__util.html#ga5405b012e02035f4d864e0e38d516764">timlUtilMirrorType</a></td>
455         </tr>
456       </table>
457 </div><div class="memdoc">
458 <table class="fieldtable">
459 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga5405b012e02035f4d864e0e38d516764abfa2a07e6c5c6e74add533dfc9b548dd"></a>Util_Mirror</em>&#160;</td><td class="fielddoc">
460 <p>mirror the picture </p>
461 </td></tr>
462 <tr><td class="fieldname"><em><a class="anchor" id="gga5405b012e02035f4d864e0e38d516764aa4b22e60f0d512a27496c274c01adab6"></a>Util_NoMirror</em>&#160;</td><td class="fielddoc">
463 <p>do not mirror the picture </p>
464 </td></tr>
465 <tr><td class="fieldname"><em><a class="anchor" id="gga5405b012e02035f4d864e0e38d516764a8ece193f7f7681a69b4b286983583cfc"></a>Util_RandomMirror</em>&#160;</td><td class="fielddoc">
466 <p>randomly mirror the picture according to Bernoulli(0,1) </p>
467 </td></tr>
468 </table>
470 </div>
471 </div>
472 <a class="anchor" id="ga8e44b2a87636024736da04ae5a53c1c9"></a>
473 <div class="memitem">
474 <div class="memproto">
475       <table class="memname">
476         <tr>
477           <td class="memname">enum <a class="el" href="group__util.html#ga8e44b2a87636024736da04ae5a53c1c9">timlUtilParamsLevel</a></td>
478         </tr>
479       </table>
480 </div><div class="memdoc">
481 <table class="fieldtable">
482 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga8e44b2a87636024736da04ae5a53c1c9a7a706ba3c48e3e4f1302c8fc5af3bb50"></a>Util_ParamsLevel1</em>&#160;</td><td class="fielddoc">
483 <p>structure text file only </p>
484 </td></tr>
485 <tr><td class="fieldname"><em><a class="anchor" id="gga8e44b2a87636024736da04ae5a53c1c9a2cddbb23ea76ecaee590b53dab026432"></a>Util_ParamsLevel2</em>&#160;</td><td class="fielddoc">
486 <p>structure text + parameter binary </p>
487 </td></tr>
488 <tr><td class="fieldname"><em><a class="anchor" id="gga8e44b2a87636024736da04ae5a53c1c9adfa1c162a9ac296e6e94e6a03b5ccef5"></a>Util_ParamsLevel3</em>&#160;</td><td class="fielddoc">
489 <p>structure text + parameter binary + state binary </p>
490 </td></tr>
491 </table>
493 </div>
494 </div>
495 <h2 class="groupheader">Function Documentation</h2>
496 <a class="anchor" id="ga64e5197e9d131870e97cd510b3f499ac"></a>
497 <div class="memitem">
498 <div class="memproto">
499       <table class="memname">
500         <tr>
501           <td class="memname">int timlUtilClassifyAccuracy </td>
502           <td>(</td>
503           <td class="paramtype">int *&#160;</td>
504           <td class="paramname"><em>label</em>, </td>
505         </tr>
506         <tr>
507           <td class="paramkey"></td>
508           <td></td>
509           <td class="paramtype">int&#160;</td>
510           <td class="paramname"><em>topN</em>, </td>
511         </tr>
512         <tr>
513           <td class="paramkey"></td>
514           <td></td>
515           <td class="paramtype">int&#160;</td>
516           <td class="paramname"><em>num</em>, </td>
517         </tr>
518         <tr>
519           <td class="paramkey"></td>
520           <td></td>
521           <td class="paramtype">int *&#160;</td>
522           <td class="paramname"><em>trueLabel</em>&#160;</td>
523         </tr>
524         <tr>
525           <td></td>
526           <td>)</td>
527           <td></td><td></td>
528         </tr>
529       </table>
530 </div><div class="memdoc">
532 <p>Calculate the classification accuracy. </p>
533 <dl class="params"><dt>Parameters</dt><dd>
534   <table class="params">
535     <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>Label matrix, size = num*topN </td></tr>
536     <tr><td class="paramdir">[in]</td><td class="paramname">topN</td><td>Top N labels </td></tr>
537     <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>Number of samples </td></tr>
538     <tr><td class="paramdir">[in]</td><td class="paramname">trueLabel</td><td>True label array, size = num </td></tr>
539   </table>
540   </dd>
541 </dl>
542 <dl class="section return"><dt>Returns</dt><dd>Total number of correct labels </dd></dl>
544 </div>
545 </div>
546 <a class="anchor" id="ga825fca95dc612cb50cca8d3b42fce451"></a>
547 <div class="memitem">
548 <div class="memproto">
549       <table class="memname">
550         <tr>
551           <td class="memname">int timlUtilConv2Full </td>
552           <td>(</td>
553           <td class="paramtype">float *&#160;</td>
554           <td class="paramname"><em>a</em>, </td>
555         </tr>
556         <tr>
557           <td class="paramkey"></td>
558           <td></td>
559           <td class="paramtype">float *&#160;</td>
560           <td class="paramname"><em>b</em>, </td>
561         </tr>
562         <tr>
563           <td class="paramkey"></td>
564           <td></td>
565           <td class="paramtype">float *&#160;</td>
566           <td class="paramname"><em>c</em>, </td>
567         </tr>
568         <tr>
569           <td class="paramkey"></td>
570           <td></td>
571           <td class="paramtype">int&#160;</td>
572           <td class="paramname"><em>aRow</em>, </td>
573         </tr>
574         <tr>
575           <td class="paramkey"></td>
576           <td></td>
577           <td class="paramtype">int&#160;</td>
578           <td class="paramname"><em>aCol</em>, </td>
579         </tr>
580         <tr>
581           <td class="paramkey"></td>
582           <td></td>
583           <td class="paramtype">int&#160;</td>
584           <td class="paramname"><em>bRow</em>, </td>
585         </tr>
586         <tr>
587           <td class="paramkey"></td>
588           <td></td>
589           <td class="paramtype">int&#160;</td>
590           <td class="paramname"><em>bCol</em>&#160;</td>
591         </tr>
592         <tr>
593           <td></td>
594           <td>)</td>
595           <td></td><td></td>
596         </tr>
597       </table>
598 </div><div class="memdoc">
600 <p>conv2(a, b, 'full') </p>
601 <dl class="params"><dt>Parameters</dt><dd>
602   <table class="params">
603     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td></td></tr>
604     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td></td></tr>
605     <tr><td class="paramdir">[out]</td><td class="paramname">c</td><td>c = conv2(a, b, 'full') </td></tr>
606     <tr><td class="paramdir">[in]</td><td class="paramname">aRow</td><td>a row size </td></tr>
607     <tr><td class="paramdir">[in]</td><td class="paramname">aCol</td><td>c col size </td></tr>
608     <tr><td class="paramdir">[in]</td><td class="paramname">bRow</td><td>b row size </td></tr>
609     <tr><td class="paramdir">[in]</td><td class="paramname">bCol</td><td>b col size </td></tr>
610   </table>
611   </dd>
612 </dl>
613 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
615 </div>
616 </div>
617 <a class="anchor" id="ga1a6a5d975df7c8d4ef7ca184cbb98293"></a>
618 <div class="memitem">
619 <div class="memproto">
620       <table class="memname">
621         <tr>
622           <td class="memname">int timlUtilConv2ImageReshape </td>
623           <td>(</td>
624           <td class="paramtype">float *&#160;</td>
625           <td class="paramname"><em>xReshape</em>, </td>
626         </tr>
627         <tr>
628           <td class="paramkey"></td>
629           <td></td>
630           <td class="paramtype">float *&#160;</td>
631           <td class="paramname"><em>x</em>, </td>
632         </tr>
633         <tr>
634           <td class="paramkey"></td>
635           <td></td>
636           <td class="paramtype">int *&#160;</td>
637           <td class="paramname"><em>index</em>, </td>
638         </tr>
639         <tr>
640           <td class="paramkey"></td>
641           <td></td>
642           <td class="paramtype">int&#160;</td>
643           <td class="paramname"><em>channel</em>, </td>
644         </tr>
645         <tr>
646           <td class="paramkey"></td>
647           <td></td>
648           <td class="paramtype">int&#160;</td>
649           <td class="paramname"><em>xDim</em>, </td>
650         </tr>
651         <tr>
652           <td class="paramkey"></td>
653           <td></td>
654           <td class="paramtype">int&#160;</td>
655           <td class="paramname"><em>indexDim</em>, </td>
656         </tr>
657         <tr>
658           <td class="paramkey"></td>
659           <td></td>
660           <td class="paramtype">int&#160;</td>
661           <td class="paramname"><em>deviceId</em>, </td>
662         </tr>
663         <tr>
664           <td class="paramkey"></td>
665           <td></td>
666           <td class="paramtype">int&#160;</td>
667           <td class="paramname"><em>threadId</em>&#160;</td>
668         </tr>
669         <tr>
670           <td></td>
671           <td>)</td>
672           <td></td><td></td>
673         </tr>
674       </table>
675 </div><div class="memdoc">
677 <p>Reshape feature maps to a format that turns 2d convolution to GEMM operation. </p>
678 <dl class="params"><dt>Parameters</dt><dd>
679   <table class="params">
680     <tr><td class="paramdir">[out]</td><td class="paramname">xReshape</td><td>Reshaped feature map </td></tr>
681     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Feature map </td></tr>
682     <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Reshaping index matrix </td></tr>
683     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>The number of channels in the feature maps </td></tr>
684     <tr><td class="paramdir">[in]</td><td class="paramname">xDim</td><td>Dimension of the feature map (row*col) </td></tr>
685     <tr><td class="paramdir">[in]</td><td class="paramname">indexDim</td><td>Dimension of the index matrix </td></tr>
686     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
687     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
688   </table>
689   </dd>
690 </dl>
691 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
693 </div>
694 </div>
695 <a class="anchor" id="ga823c056e72e3c9738ba07232a759dd93"></a>
696 <div class="memitem">
697 <div class="memproto">
698       <table class="memname">
699         <tr>
700           <td class="memname">int timlUtilConv2ImageReshapeBack </td>
701           <td>(</td>
702           <td class="paramtype">float *&#160;</td>
703           <td class="paramname"><em>x</em>, </td>
704         </tr>
705         <tr>
706           <td class="paramkey"></td>
707           <td></td>
708           <td class="paramtype">float *&#160;</td>
709           <td class="paramname"><em>xReshape</em>, </td>
710         </tr>
711         <tr>
712           <td class="paramkey"></td>
713           <td></td>
714           <td class="paramtype">int *&#160;</td>
715           <td class="paramname"><em>index</em>, </td>
716         </tr>
717         <tr>
718           <td class="paramkey"></td>
719           <td></td>
720           <td class="paramtype">int&#160;</td>
721           <td class="paramname"><em>channel</em>, </td>
722         </tr>
723         <tr>
724           <td class="paramkey"></td>
725           <td></td>
726           <td class="paramtype">int&#160;</td>
727           <td class="paramname"><em>xDim</em>, </td>
728         </tr>
729         <tr>
730           <td class="paramkey"></td>
731           <td></td>
732           <td class="paramtype">int&#160;</td>
733           <td class="paramname"><em>indexDim</em>, </td>
734         </tr>
735         <tr>
736           <td class="paramkey"></td>
737           <td></td>
738           <td class="paramtype">int&#160;</td>
739           <td class="paramname"><em>deviceId</em>, </td>
740         </tr>
741         <tr>
742           <td class="paramkey"></td>
743           <td></td>
744           <td class="paramtype">int&#160;</td>
745           <td class="paramname"><em>threadId</em>&#160;</td>
746         </tr>
747         <tr>
748           <td></td>
749           <td>)</td>
750           <td></td><td></td>
751         </tr>
752       </table>
753 </div><div class="memdoc">
755 <p>Reshape the convolution matrix back to feature maps. </p>
756 <dl class="params"><dt>Parameters</dt><dd>
757   <table class="params">
758     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>feature map </td></tr>
759     <tr><td class="paramdir">[out]</td><td class="paramname">xReshape</td><td>Reshaped feature map </td></tr>
760     <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Reshaping index matrix </td></tr>
761     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>The number of channels in the feature map </td></tr>
762     <tr><td class="paramdir">[in]</td><td class="paramname">xDim</td><td>Dimension of the feature map (row*col) </td></tr>
763     <tr><td class="paramdir">[in]</td><td class="paramname">indexDim</td><td>Dimension of the index matrix </td></tr>
764     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
765     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
766   </table>
767   </dd>
768 </dl>
769 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
771 </div>
772 </div>
773 <a class="anchor" id="ga5bed0ba528735cfa363c12de22b30fae"></a>
774 <div class="memitem">
775 <div class="memproto">
776       <table class="memname">
777         <tr>
778           <td class="memname">int timlUtilConv2ImageReshapeIndex </td>
779           <td>(</td>
780           <td class="paramtype">int *&#160;</td>
781           <td class="paramname"><em>index</em>, </td>
782         </tr>
783         <tr>
784           <td class="paramkey"></td>
785           <td></td>
786           <td class="paramtype">int&#160;</td>
787           <td class="paramname"><em>aRow</em>, </td>
788         </tr>
789         <tr>
790           <td class="paramkey"></td>
791           <td></td>
792           <td class="paramtype">int&#160;</td>
793           <td class="paramname"><em>aCol</em>, </td>
794         </tr>
795         <tr>
796           <td class="paramkey"></td>
797           <td></td>
798           <td class="paramtype">int&#160;</td>
799           <td class="paramname"><em>bRow</em>, </td>
800         </tr>
801         <tr>
802           <td class="paramkey"></td>
803           <td></td>
804           <td class="paramtype">int&#160;</td>
805           <td class="paramname"><em>bCol</em>, </td>
806         </tr>
807         <tr>
808           <td class="paramkey"></td>
809           <td></td>
810           <td class="paramtype">int&#160;</td>
811           <td class="paramname"><em>padUp</em>, </td>
812         </tr>
813         <tr>
814           <td class="paramkey"></td>
815           <td></td>
816           <td class="paramtype">int&#160;</td>
817           <td class="paramname"><em>padDown</em>, </td>
818         </tr>
819         <tr>
820           <td class="paramkey"></td>
821           <td></td>
822           <td class="paramtype">int&#160;</td>
823           <td class="paramname"><em>padLeft</em>, </td>
824         </tr>
825         <tr>
826           <td class="paramkey"></td>
827           <td></td>
828           <td class="paramtype">int&#160;</td>
829           <td class="paramname"><em>padRight</em>, </td>
830         </tr>
831         <tr>
832           <td class="paramkey"></td>
833           <td></td>
834           <td class="paramtype">int&#160;</td>
835           <td class="paramname"><em>strideX</em>, </td>
836         </tr>
837         <tr>
838           <td class="paramkey"></td>
839           <td></td>
840           <td class="paramtype">int&#160;</td>
841           <td class="paramname"><em>strideY</em>, </td>
842         </tr>
843         <tr>
844           <td class="paramkey"></td>
845           <td></td>
846           <td class="paramtype">timlUtilConvType&#160;</td>
847           <td class="paramname"><em>type</em>&#160;</td>
848         </tr>
849         <tr>
850           <td></td>
851           <td>)</td>
852           <td></td><td></td>
853         </tr>
854       </table>
855 </div><div class="memdoc">
857 <p>Create a reshaping index matrix. </p>
858 <p>Feature maps need to be reshaped so that a 2d convolution can be converted to a GEMM operation. The reshaping index matrix records the index mapping between the original feature maps and the reshaped feature maps </p>
859 <dl class="params"><dt>Parameters</dt><dd>
860   <table class="params">
861     <tr><td class="paramdir">[out]</td><td class="paramname">index</td><td>Reshaping index matrix </td></tr>
862     <tr><td class="paramdir">[in]</td><td class="paramname">aRow</td><td>Feature map row </td></tr>
863     <tr><td class="paramdir">[in]</td><td class="paramname">aCol</td><td>Feature map col </td></tr>
864     <tr><td class="paramdir">[in]</td><td class="paramname">bRow</td><td>Kernel row </td></tr>
865     <tr><td class="paramdir">[in]</td><td class="paramname">bCol</td><td>Kernel col </td></tr>
866     <tr><td class="paramdir">[in]</td><td class="paramname">padUp</td><td>Padding for the up border of the image </td></tr>
867     <tr><td class="paramdir">[in]</td><td class="paramname">padDown</td><td>Padding for the down border of the image </td></tr>
868     <tr><td class="paramdir">[in]</td><td class="paramname">padLeft</td><td>Padding for the left border of the image </td></tr>
869     <tr><td class="paramdir">[in]</td><td class="paramname">padRight</td><td>Padding for the right border of the image </td></tr>
870     <tr><td class="paramdir">[in]</td><td class="paramname">strideX</td><td>Horizontal stride for the kernel </td></tr>
871     <tr><td class="paramdir">[in]</td><td class="paramname">strideY</td><td>Vertical stride for the kernel </td></tr>
872     <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Convolution or correlation </td></tr>
873   </table>
874   </dd>
875 </dl>
876 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
878 </div>
879 </div>
880 <a class="anchor" id="gafdc65cff28dd8132ee12d7e4fff6b344"></a>
881 <div class="memitem">
882 <div class="memproto">
883       <table class="memname">
884         <tr>
885           <td class="memname">int timlUtilConv2Valid </td>
886           <td>(</td>
887           <td class="paramtype">float *&#160;</td>
888           <td class="paramname"><em>a</em>, </td>
889         </tr>
890         <tr>
891           <td class="paramkey"></td>
892           <td></td>
893           <td class="paramtype">float *&#160;</td>
894           <td class="paramname"><em>b</em>, </td>
895         </tr>
896         <tr>
897           <td class="paramkey"></td>
898           <td></td>
899           <td class="paramtype">float *&#160;</td>
900           <td class="paramname"><em>c</em>, </td>
901         </tr>
902         <tr>
903           <td class="paramkey"></td>
904           <td></td>
905           <td class="paramtype">int&#160;</td>
906           <td class="paramname"><em>aRow</em>, </td>
907         </tr>
908         <tr>
909           <td class="paramkey"></td>
910           <td></td>
911           <td class="paramtype">int&#160;</td>
912           <td class="paramname"><em>aCol</em>, </td>
913         </tr>
914         <tr>
915           <td class="paramkey"></td>
916           <td></td>
917           <td class="paramtype">int&#160;</td>
918           <td class="paramname"><em>bRow</em>, </td>
919         </tr>
920         <tr>
921           <td class="paramkey"></td>
922           <td></td>
923           <td class="paramtype">int&#160;</td>
924           <td class="paramname"><em>bCol</em>&#160;</td>
925         </tr>
926         <tr>
927           <td></td>
928           <td>)</td>
929           <td></td><td></td>
930         </tr>
931       </table>
932 </div><div class="memdoc">
934 <p>conv2(a, b, 'valid') </p>
935 <dl class="params"><dt>Parameters</dt><dd>
936   <table class="params">
937     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>a matrix </td></tr>
938     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>b matrix </td></tr>
939     <tr><td class="paramdir">[out]</td><td class="paramname">c</td><td>c = conv2(a, b, 'valid') </td></tr>
940     <tr><td class="paramdir">[in]</td><td class="paramname">aRow</td><td>a row size </td></tr>
941     <tr><td class="paramdir">[in]</td><td class="paramname">aCol</td><td>a col size </td></tr>
942     <tr><td class="paramdir">[in]</td><td class="paramname">bRow</td><td>b row size </td></tr>
943     <tr><td class="paramdir">[in]</td><td class="paramname">bCol</td><td>b col size </td></tr>
944   </table>
945   </dd>
946 </dl>
947 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
949 </div>
950 </div>
951 <a class="anchor" id="ga76c854493ff6e686e70caf0e0f330694"></a>
952 <div class="memitem">
953 <div class="memproto">
954       <table class="memname">
955         <tr>
956           <td class="memname">int timlUtilCorr2Full </td>
957           <td>(</td>
958           <td class="paramtype">float *&#160;</td>
959           <td class="paramname"><em>a</em>, </td>
960         </tr>
961         <tr>
962           <td class="paramkey"></td>
963           <td></td>
964           <td class="paramtype">float *&#160;</td>
965           <td class="paramname"><em>b</em>, </td>
966         </tr>
967         <tr>
968           <td class="paramkey"></td>
969           <td></td>
970           <td class="paramtype">float *&#160;</td>
971           <td class="paramname"><em>c</em>, </td>
972         </tr>
973         <tr>
974           <td class="paramkey"></td>
975           <td></td>
976           <td class="paramtype">int&#160;</td>
977           <td class="paramname"><em>aRow</em>, </td>
978         </tr>
979         <tr>
980           <td class="paramkey"></td>
981           <td></td>
982           <td class="paramtype">int&#160;</td>
983           <td class="paramname"><em>aCol</em>, </td>
984         </tr>
985         <tr>
986           <td class="paramkey"></td>
987           <td></td>
988           <td class="paramtype">int&#160;</td>
989           <td class="paramname"><em>bRow</em>, </td>
990         </tr>
991         <tr>
992           <td class="paramkey"></td>
993           <td></td>
994           <td class="paramtype">int&#160;</td>
995           <td class="paramname"><em>bCol</em>&#160;</td>
996         </tr>
997         <tr>
998           <td></td>
999           <td>)</td>
1000           <td></td><td></td>
1001         </tr>
1002       </table>
1003 </div><div class="memdoc">
1005 <p>conv2(a, rot90(b,2), 'valid') </p>
1006 <dl class="params"><dt>Parameters</dt><dd>
1007   <table class="params">
1008     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>a matrix </td></tr>
1009     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>b matrix </td></tr>
1010     <tr><td class="paramdir">[out]</td><td class="paramname">c</td><td>c = conv2(a, rot90(b,2), 'valid') </td></tr>
1011     <tr><td class="paramdir">[in]</td><td class="paramname">aRow</td><td>a row size </td></tr>
1012     <tr><td class="paramdir">[in]</td><td class="paramname">aCol</td><td>a col size </td></tr>
1013     <tr><td class="paramdir">[in]</td><td class="paramname">bRow</td><td>b row size </td></tr>
1014     <tr><td class="paramdir">[in]</td><td class="paramname">bCol</td><td>b col size </td></tr>
1015   </table>
1016   </dd>
1017 </dl>
1018 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1020 </div>
1021 </div>
1022 <a class="anchor" id="gad332b3fc9cca905cb073bb950c27d9a3"></a>
1023 <div class="memitem">
1024 <div class="memproto">
1025       <table class="memname">
1026         <tr>
1027           <td class="memname">long timlUtilDiffTime </td>
1028           <td>(</td>
1029           <td class="paramtype">struct timespec&#160;</td>
1030           <td class="paramname"><em>start</em>, </td>
1031         </tr>
1032         <tr>
1033           <td class="paramkey"></td>
1034           <td></td>
1035           <td class="paramtype">struct timespec&#160;</td>
1036           <td class="paramname"><em>end</em>&#160;</td>
1037         </tr>
1038         <tr>
1039           <td></td>
1040           <td>)</td>
1041           <td></td><td></td>
1042         </tr>
1043       </table>
1044 </div><div class="memdoc">
1046 <p>Return the time difference in micro second. </p>
1047 <dl class="params"><dt>Parameters</dt><dd>
1048   <table class="params">
1049     <tr><td class="paramdir">[in]</td><td class="paramname">start</td><td>Start time </td></tr>
1050     <tr><td class="paramdir">[in]</td><td class="paramname">end</td><td>End time return Time difference </td></tr>
1051   </table>
1052   </dd>
1053 </dl>
1055 </div>
1056 </div>
1057 <a class="anchor" id="ga71557afaf0c3d8359920380558dd92fb"></a>
1058 <div class="memitem">
1059 <div class="memproto">
1060       <table class="memname">
1061         <tr>
1062           <td class="memname">int timlUtilElementWiseFunction </td>
1063           <td>(</td>
1064           <td class="paramtype">float *&#160;</td>
1065           <td class="paramname"><em>x</em>, </td>
1066         </tr>
1067         <tr>
1068           <td class="paramkey"></td>
1069           <td></td>
1070           <td class="paramtype">float *&#160;</td>
1071           <td class="paramname"><em>y</em>, </td>
1072         </tr>
1073         <tr>
1074           <td class="paramkey"></td>
1075           <td></td>
1076           <td class="paramtype">int&#160;</td>
1077           <td class="paramname"><em>n</em>, </td>
1078         </tr>
1079         <tr>
1080           <td class="paramkey"></td>
1081           <td></td>
1082           <td class="paramtype">float(*)(float)&#160;</td>
1083           <td class="paramname"><em>func</em>&#160;</td>
1084         </tr>
1085         <tr>
1086           <td></td>
1087           <td>)</td>
1088           <td></td><td></td>
1089         </tr>
1090       </table>
1091 </div><div class="memdoc">
1093 <p>Apply a function on each element of the array. </p>
1094 <dl class="params"><dt>Parameters</dt><dd>
1095   <table class="params">
1096     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input array </td></tr>
1097     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Output array </td></tr>
1098     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
1099     <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Function pointer </td></tr>
1100   </table>
1101   </dd>
1102 </dl>
1103 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1105 </div>
1106 </div>
1107 <a class="anchor" id="ga4cbc9e168ae6fe4be792e5700078fbfd"></a>
1108 <div class="memitem">
1109 <div class="memproto">
1110       <table class="memname">
1111         <tr>
1112           <td class="memname">int timlUtilElementWiseMultiply </td>
1113           <td>(</td>
1114           <td class="paramtype">float *&#160;</td>
1115           <td class="paramname"><em>a</em>, </td>
1116         </tr>
1117         <tr>
1118           <td class="paramkey"></td>
1119           <td></td>
1120           <td class="paramtype">const float *&#160;</td>
1121           <td class="paramname"><em>b</em>, </td>
1122         </tr>
1123         <tr>
1124           <td class="paramkey"></td>
1125           <td></td>
1126           <td class="paramtype">const float *&#160;</td>
1127           <td class="paramname"><em>c</em>, </td>
1128         </tr>
1129         <tr>
1130           <td class="paramkey"></td>
1131           <td></td>
1132           <td class="paramtype">int&#160;</td>
1133           <td class="paramname"><em>dim</em>, </td>
1134         </tr>
1135         <tr>
1136           <td class="paramkey"></td>
1137           <td></td>
1138           <td class="paramtype">int&#160;</td>
1139           <td class="paramname"><em>deviceId</em>, </td>
1140         </tr>
1141         <tr>
1142           <td class="paramkey"></td>
1143           <td></td>
1144           <td class="paramtype">int&#160;</td>
1145           <td class="paramname"><em>threadId</em>&#160;</td>
1146         </tr>
1147         <tr>
1148           <td></td>
1149           <td>)</td>
1150           <td></td><td></td>
1151         </tr>
1152       </table>
1153 </div><div class="memdoc">
1155 <p>Element wise multiply c = a.*b. </p>
1156 <dl class="params"><dt>Parameters</dt><dd>
1157   <table class="params">
1158     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>a vector </td></tr>
1159     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>b vector </td></tr>
1160     <tr><td class="paramdir">[out]</td><td class="paramname">c</td><td>c = a.*b </td></tr>
1161     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension of a,b,c </td></tr>
1162     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1163     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1164   </table>
1165   </dd>
1166 </dl>
1167 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1169 </div>
1170 </div>
1171 <a class="anchor" id="ga032c2a840544aee29ac1b36494bdfc6b"></a>
1172 <div class="memitem">
1173 <div class="memproto">
1174       <table class="memname">
1175         <tr>
1176           <td class="memname">int timlUtilFread </td>
1177           <td>(</td>
1178           <td class="paramtype">void *&#160;</td>
1179           <td class="paramname"><em>ptr</em>, </td>
1180         </tr>
1181         <tr>
1182           <td class="paramkey"></td>
1183           <td></td>
1184           <td class="paramtype">size_t&#160;</td>
1185           <td class="paramname"><em>size</em>, </td>
1186         </tr>
1187         <tr>
1188           <td class="paramkey"></td>
1189           <td></td>
1190           <td class="paramtype">size_t&#160;</td>
1191           <td class="paramname"><em>nmemb</em>, </td>
1192         </tr>
1193         <tr>
1194           <td class="paramkey"></td>
1195           <td></td>
1196           <td class="paramtype">FILE *&#160;</td>
1197           <td class="paramname"><em>fp</em>&#160;</td>
1198         </tr>
1199         <tr>
1200           <td></td>
1201           <td>)</td>
1202           <td></td><td></td>
1203         </tr>
1204       </table>
1205 </div><div class="memdoc">
1207 <p>Read binary file. </p>
1208 <dl class="params"><dt>Parameters</dt><dd>
1209   <table class="params">
1210     <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>Pointer </td></tr>
1211     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of array </td></tr>
1212     <tr><td class="paramdir">[in]</td><td class="paramname">nmemb</td><td>Array element size </td></tr>
1213     <tr><td class="paramdir">[in]</td><td class="paramname">fp</td><td>File pointer </td></tr>
1214   </table>
1215   </dd>
1216 </dl>
1217 <dl class="section return"><dt>Returns</dt><dd>The number of successfully read elements </dd></dl>
1219 </div>
1220 </div>
1221 <a class="anchor" id="ga234f6573583aca626c49e10b1f5b57d2"></a>
1222 <div class="memitem">
1223 <div class="memproto">
1224       <table class="memname">
1225         <tr>
1226           <td class="memname">void timlUtilFree </td>
1227           <td>(</td>
1228           <td class="paramtype">void *&#160;</td>
1229           <td class="paramname"><em>ptr</em></td><td>)</td>
1230           <td></td>
1231         </tr>
1232       </table>
1233 </div><div class="memdoc">
1235 <p>Free pointer. </p>
1236 <dl class="params"><dt>Parameters</dt><dd>
1237   <table class="params">
1238     <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>Memory pointer </td></tr>
1239   </table>
1240   </dd>
1241 </dl>
1243 </div>
1244 </div>
1245 <a class="anchor" id="gad27678810eff89cf1f813631d762b298"></a>
1246 <div class="memitem">
1247 <div class="memproto">
1248       <table class="memname">
1249         <tr>
1250           <td class="memname">int timlUtilFwrite </td>
1251           <td>(</td>
1252           <td class="paramtype">const void *&#160;</td>
1253           <td class="paramname"><em>ptr</em>, </td>
1254         </tr>
1255         <tr>
1256           <td class="paramkey"></td>
1257           <td></td>
1258           <td class="paramtype">size_t&#160;</td>
1259           <td class="paramname"><em>size</em>, </td>
1260         </tr>
1261         <tr>
1262           <td class="paramkey"></td>
1263           <td></td>
1264           <td class="paramtype">size_t&#160;</td>
1265           <td class="paramname"><em>nmemb</em>, </td>
1266         </tr>
1267         <tr>
1268           <td class="paramkey"></td>
1269           <td></td>
1270           <td class="paramtype">FILE *&#160;</td>
1271           <td class="paramname"><em>fp</em>&#160;</td>
1272         </tr>
1273         <tr>
1274           <td></td>
1275           <td>)</td>
1276           <td></td><td></td>
1277         </tr>
1278       </table>
1279 </div><div class="memdoc">
1281 <p>Write to a binar file. </p>
1282 <dl class="params"><dt>Parameters</dt><dd>
1283   <table class="params">
1284     <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>Memory pointer </td></tr>
1285     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Array size </td></tr>
1286     <tr><td class="paramdir">[in]</td><td class="paramname">nmemb</td><td>Array element size </td></tr>
1287     <tr><td class="paramdir">[in]</td><td class="paramname">fp</td><td>File pointer </td></tr>
1288   </table>
1289   </dd>
1290 </dl>
1291 <dl class="section return"><dt>Returns</dt><dd>Number of successfully written elements </dd></dl>
1293 </div>
1294 </div>
1295 <a class="anchor" id="ga1d68b304f7ad43899cf5a2762a0a49fc"></a>
1296 <div class="memitem">
1297 <div class="memproto">
1298       <table class="memname">
1299         <tr>
1300           <td class="memname">int timlUtilLocalContrastNormalize </td>
1301           <td>(</td>
1302           <td class="paramtype">float *&#160;</td>
1303           <td class="paramname"><em>inputMap</em>, </td>
1304         </tr>
1305         <tr>
1306           <td class="paramkey"></td>
1307           <td></td>
1308           <td class="paramtype">float *&#160;</td>
1309           <td class="paramname"><em>outputMap</em>, </td>
1310         </tr>
1311         <tr>
1312           <td class="paramkey"></td>
1313           <td></td>
1314           <td class="paramtype">float *&#160;</td>
1315           <td class="paramname"><em>denom</em>, </td>
1316         </tr>
1317         <tr>
1318           <td class="paramkey"></td>
1319           <td></td>
1320           <td class="paramtype">int&#160;</td>
1321           <td class="paramname"><em>row</em>, </td>
1322         </tr>
1323         <tr>
1324           <td class="paramkey"></td>
1325           <td></td>
1326           <td class="paramtype">int&#160;</td>
1327           <td class="paramname"><em>col</em>, </td>
1328         </tr>
1329         <tr>
1330           <td class="paramkey"></td>
1331           <td></td>
1332           <td class="paramtype">int&#160;</td>
1333           <td class="paramname"><em>channel</em>, </td>
1334         </tr>
1335         <tr>
1336           <td class="paramkey"></td>
1337           <td></td>
1338           <td class="paramtype">int&#160;</td>
1339           <td class="paramname"><em>N</em>, </td>
1340         </tr>
1341         <tr>
1342           <td class="paramkey"></td>
1343           <td></td>
1344           <td class="paramtype">float&#160;</td>
1345           <td class="paramname"><em>alpha</em>, </td>
1346         </tr>
1347         <tr>
1348           <td class="paramkey"></td>
1349           <td></td>
1350           <td class="paramtype">float&#160;</td>
1351           <td class="paramname"><em>beta</em>, </td>
1352         </tr>
1353         <tr>
1354           <td class="paramkey"></td>
1355           <td></td>
1356           <td class="paramtype">int&#160;</td>
1357           <td class="paramname"><em>deviceId</em>, </td>
1358         </tr>
1359         <tr>
1360           <td class="paramkey"></td>
1361           <td></td>
1362           <td class="paramtype">int&#160;</td>
1363           <td class="paramname"><em>threadId</em>&#160;</td>
1364         </tr>
1365         <tr>
1366           <td></td>
1367           <td>)</td>
1368           <td></td><td></td>
1369         </tr>
1370       </table>
1371 </div><div class="memdoc">
1373 <p>Local contrast normalization. </p>
1374 <dl class="params"><dt>Parameters</dt><dd>
1375   <table class="params">
1376     <tr><td class="paramdir">[in]</td><td class="paramname">inputMap</td><td>Input feature map </td></tr>
1377     <tr><td class="paramdir">[out]</td><td class="paramname">outputMap</td><td>Output feature map </td></tr>
1378     <tr><td class="paramdir">[out]</td><td class="paramname">denom</td><td>Feature map denom </td></tr>
1379     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Input feature map row </td></tr>
1380     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Input feature map col </td></tr>
1381     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Input feature map channel </td></tr>
1382     <tr><td class="paramdir">[in]</td><td class="paramname">N</td><td>Channel span </td></tr>
1383     <tr><td class="paramdir">[in]</td><td class="paramname">alpha</td><td>Alpha </td></tr>
1384     <tr><td class="paramdir">[in]</td><td class="paramname">beta</td><td>Beta </td></tr>
1385     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1386     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1387   </table>
1388   </dd>
1389 </dl>
1390 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1392 </div>
1393 </div>
1394 <a class="anchor" id="ga684bafa4cb678d451ec1aa5127007470"></a>
1395 <div class="memitem">
1396 <div class="memproto">
1397       <table class="memname">
1398         <tr>
1399           <td class="memname">int timlUtilLocalContrastUnnormalize </td>
1400           <td>(</td>
1401           <td class="paramtype">float *&#160;</td>
1402           <td class="paramname"><em>prevDelta</em>, </td>
1403         </tr>
1404         <tr>
1405           <td class="paramkey"></td>
1406           <td></td>
1407           <td class="paramtype">float *&#160;</td>
1408           <td class="paramname"><em>prevFeatureMap</em>, </td>
1409         </tr>
1410         <tr>
1411           <td class="paramkey"></td>
1412           <td></td>
1413           <td class="paramtype">float *&#160;</td>
1414           <td class="paramname"><em>delta</em>, </td>
1415         </tr>
1416         <tr>
1417           <td class="paramkey"></td>
1418           <td></td>
1419           <td class="paramtype">float *&#160;</td>
1420           <td class="paramname"><em>featureMap</em>, </td>
1421         </tr>
1422         <tr>
1423           <td class="paramkey"></td>
1424           <td></td>
1425           <td class="paramtype">float *&#160;</td>
1426           <td class="paramname"><em>denom</em>, </td>
1427         </tr>
1428         <tr>
1429           <td class="paramkey"></td>
1430           <td></td>
1431           <td class="paramtype">int&#160;</td>
1432           <td class="paramname"><em>row</em>, </td>
1433         </tr>
1434         <tr>
1435           <td class="paramkey"></td>
1436           <td></td>
1437           <td class="paramtype">int&#160;</td>
1438           <td class="paramname"><em>col</em>, </td>
1439         </tr>
1440         <tr>
1441           <td class="paramkey"></td>
1442           <td></td>
1443           <td class="paramtype">int&#160;</td>
1444           <td class="paramname"><em>channel</em>, </td>
1445         </tr>
1446         <tr>
1447           <td class="paramkey"></td>
1448           <td></td>
1449           <td class="paramtype">int&#160;</td>
1450           <td class="paramname"><em>N</em>, </td>
1451         </tr>
1452         <tr>
1453           <td class="paramkey"></td>
1454           <td></td>
1455           <td class="paramtype">float&#160;</td>
1456           <td class="paramname"><em>alpha</em>, </td>
1457         </tr>
1458         <tr>
1459           <td class="paramkey"></td>
1460           <td></td>
1461           <td class="paramtype">float&#160;</td>
1462           <td class="paramname"><em>beta</em>, </td>
1463         </tr>
1464         <tr>
1465           <td class="paramkey"></td>
1466           <td></td>
1467           <td class="paramtype">int&#160;</td>
1468           <td class="paramname"><em>deviceId</em>, </td>
1469         </tr>
1470         <tr>
1471           <td class="paramkey"></td>
1472           <td></td>
1473           <td class="paramtype">int&#160;</td>
1474           <td class="paramname"><em>threadId</em>&#160;</td>
1475         </tr>
1476         <tr>
1477           <td></td>
1478           <td>)</td>
1479           <td></td><td></td>
1480         </tr>
1481       </table>
1482 </div><div class="memdoc">
1484 <p>Local contrast unnormalization. </p>
1485 <dl class="params"><dt>Parameters</dt><dd>
1486   <table class="params">
1487     <tr><td class="paramdir">[out]</td><td class="paramname">prevDelta</td><td>Previous delta </td></tr>
1488     <tr><td class="paramdir">[in]</td><td class="paramname">prevFeatureMap</td><td>Previous feature map </td></tr>
1489     <tr><td class="paramdir">[in]</td><td class="paramname">delta</td><td>Delta </td></tr>
1490     <tr><td class="paramdir">[in]</td><td class="paramname">featureMap</td><td>Feature map </td></tr>
1491     <tr><td class="paramdir">[in]</td><td class="paramname">denom</td><td>Feature map denom </td></tr>
1492     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Feature map row </td></tr>
1493     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Feature map col </td></tr>
1494     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Feature map channel </td></tr>
1495     <tr><td class="paramdir">[in]</td><td class="paramname">N</td><td>Channel span </td></tr>
1496     <tr><td class="paramdir">[in]</td><td class="paramname">alpha</td><td>Alpha </td></tr>
1497     <tr><td class="paramdir">[in]</td><td class="paramname">beta</td><td>Beta </td></tr>
1498     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1499     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1500   </table>
1501   </dd>
1502 </dl>
1503 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1505 </div>
1506 </div>
1507 <a class="anchor" id="ga432784c912b542452d7236cf72d184fe"></a>
1508 <div class="memitem">
1509 <div class="memproto">
1510       <table class="memname">
1511         <tr>
1512           <td class="memname">int timlUtilMalloc </td>
1513           <td>(</td>
1514           <td class="paramtype">void **&#160;</td>
1515           <td class="paramname"><em>devPtr</em>, </td>
1516         </tr>
1517         <tr>
1518           <td class="paramkey"></td>
1519           <td></td>
1520           <td class="paramtype">size_t&#160;</td>
1521           <td class="paramname"><em>size</em>&#160;</td>
1522         </tr>
1523         <tr>
1524           <td></td>
1525           <td>)</td>
1526           <td></td><td></td>
1527         </tr>
1528       </table>
1529 </div><div class="memdoc">
1531 <p>memory allocation </p>
1532 <dl class="params"><dt>Parameters</dt><dd>
1533   <table class="params">
1534     <tr><td class="paramdir">[in,out]</td><td class="paramname">devPtr</td><td>device ptr </td></tr>
1535     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>allocation size in byte </td></tr>
1536   </table>
1537   </dd>
1538 </dl>
1539 <dl class="section return"><dt>Returns</dt><dd>error code </dd></dl>
1541 </div>
1542 </div>
1543 <a class="anchor" id="ga4b2ab842a2212e924deb9f60bf1b703e"></a>
1544 <div class="memitem">
1545 <div class="memproto">
1546       <table class="memname">
1547         <tr>
1548           <td class="memname">int timlUtilMasking </td>
1549           <td>(</td>
1550           <td class="paramtype">float *&#160;</td>
1551           <td class="paramname"><em>inputMap</em>, </td>
1552         </tr>
1553         <tr>
1554           <td class="paramkey"></td>
1555           <td></td>
1556           <td class="paramtype">float *&#160;</td>
1557           <td class="paramname"><em>outputMap</em>, </td>
1558         </tr>
1559         <tr>
1560           <td class="paramkey"></td>
1561           <td></td>
1562           <td class="paramtype">int *&#160;</td>
1563           <td class="paramname"><em>mask</em>, </td>
1564         </tr>
1565         <tr>
1566           <td class="paramkey"></td>
1567           <td></td>
1568           <td class="paramtype">unsigned int *&#160;</td>
1569           <td class="paramname"><em>randomVector</em>, </td>
1570         </tr>
1571         <tr>
1572           <td class="paramkey"></td>
1573           <td></td>
1574           <td class="paramtype">int&#160;</td>
1575           <td class="paramname"><em>dim</em>, </td>
1576         </tr>
1577         <tr>
1578           <td class="paramkey"></td>
1579           <td></td>
1580           <td class="paramtype">float&#160;</td>
1581           <td class="paramname"><em>prob</em>, </td>
1582         </tr>
1583         <tr>
1584           <td class="paramkey"></td>
1585           <td></td>
1586           <td class="paramtype">int&#160;</td>
1587           <td class="paramname"><em>deviceId</em>, </td>
1588         </tr>
1589         <tr>
1590           <td class="paramkey"></td>
1591           <td></td>
1592           <td class="paramtype">int&#160;</td>
1593           <td class="paramname"><em>threadId</em>&#160;</td>
1594         </tr>
1595         <tr>
1596           <td></td>
1597           <td>)</td>
1598           <td></td><td></td>
1599         </tr>
1600       </table>
1601 </div><div class="memdoc">
1603 <p>Masking feature maps. </p>
1604 <dl class="params"><dt>Parameters</dt><dd>
1605   <table class="params">
1606     <tr><td class="paramdir">[in]</td><td class="paramname">inputMap</td><td>Input feature map </td></tr>
1607     <tr><td class="paramdir">[out]</td><td class="paramname">outputMap</td><td>Output feature map </td></tr>
1608     <tr><td class="paramdir">[out]</td><td class="paramname">mask</td><td>Mask vector of values {0,1} </td></tr>
1609     <tr><td class="paramdir">[in]</td><td class="paramname">randomVector</td><td>A uniform random vector in [0,1] </td></tr>
1610     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension of the feature map (row*col*channel) </td></tr>
1611     <tr><td class="paramdir">[in]</td><td class="paramname">prob</td><td>Dropout probability </td></tr>
1612     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1613     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1614   </table>
1615   </dd>
1616 </dl>
1617 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1619 </div>
1620 </div>
1621 <a class="anchor" id="gac9523e1013f8e3853568eb2e67b54a58"></a>
1622 <div class="memitem">
1623 <div class="memproto">
1624       <table class="memname">
1625         <tr>
1626           <td class="memname">int timlUtilMaxPooling </td>
1627           <td>(</td>
1628           <td class="paramtype">float *&#160;</td>
1629           <td class="paramname"><em>outputMap</em>, </td>
1630         </tr>
1631         <tr>
1632           <td class="paramkey"></td>
1633           <td></td>
1634           <td class="paramtype">int *&#160;</td>
1635           <td class="paramname"><em>maxIndex</em>, </td>
1636         </tr>
1637         <tr>
1638           <td class="paramkey"></td>
1639           <td></td>
1640           <td class="paramtype">float *&#160;</td>
1641           <td class="paramname"><em>inputMap</em>, </td>
1642         </tr>
1643         <tr>
1644           <td class="paramkey"></td>
1645           <td></td>
1646           <td class="paramtype">int&#160;</td>
1647           <td class="paramname"><em>row</em>, </td>
1648         </tr>
1649         <tr>
1650           <td class="paramkey"></td>
1651           <td></td>
1652           <td class="paramtype">int&#160;</td>
1653           <td class="paramname"><em>col</em>, </td>
1654         </tr>
1655         <tr>
1656           <td class="paramkey"></td>
1657           <td></td>
1658           <td class="paramtype">int&#160;</td>
1659           <td class="paramname"><em>channel</em>, </td>
1660         </tr>
1661         <tr>
1662           <td class="paramkey"></td>
1663           <td></td>
1664           <td class="paramtype">int&#160;</td>
1665           <td class="paramname"><em>prevRow</em>, </td>
1666         </tr>
1667         <tr>
1668           <td class="paramkey"></td>
1669           <td></td>
1670           <td class="paramtype">int&#160;</td>
1671           <td class="paramname"><em>prevCol</em>, </td>
1672         </tr>
1673         <tr>
1674           <td class="paramkey"></td>
1675           <td></td>
1676           <td class="paramtype">int&#160;</td>
1677           <td class="paramname"><em>scaleRow</em>, </td>
1678         </tr>
1679         <tr>
1680           <td class="paramkey"></td>
1681           <td></td>
1682           <td class="paramtype">int&#160;</td>
1683           <td class="paramname"><em>scaleCol</em>, </td>
1684         </tr>
1685         <tr>
1686           <td class="paramkey"></td>
1687           <td></td>
1688           <td class="paramtype">int&#160;</td>
1689           <td class="paramname"><em>padUp</em>, </td>
1690         </tr>
1691         <tr>
1692           <td class="paramkey"></td>
1693           <td></td>
1694           <td class="paramtype">int&#160;</td>
1695           <td class="paramname"><em>padLeft</em>, </td>
1696         </tr>
1697         <tr>
1698           <td class="paramkey"></td>
1699           <td></td>
1700           <td class="paramtype">int&#160;</td>
1701           <td class="paramname"><em>strideX</em>, </td>
1702         </tr>
1703         <tr>
1704           <td class="paramkey"></td>
1705           <td></td>
1706           <td class="paramtype">int&#160;</td>
1707           <td class="paramname"><em>strideY</em>, </td>
1708         </tr>
1709         <tr>
1710           <td class="paramkey"></td>
1711           <td></td>
1712           <td class="paramtype">timlUtilPhase&#160;</td>
1713           <td class="paramname"><em>phase</em>, </td>
1714         </tr>
1715         <tr>
1716           <td class="paramkey"></td>
1717           <td></td>
1718           <td class="paramtype">int&#160;</td>
1719           <td class="paramname"><em>deviceId</em>, </td>
1720         </tr>
1721         <tr>
1722           <td class="paramkey"></td>
1723           <td></td>
1724           <td class="paramtype">int&#160;</td>
1725           <td class="paramname"><em>threadId</em>&#160;</td>
1726         </tr>
1727         <tr>
1728           <td></td>
1729           <td>)</td>
1730           <td></td><td></td>
1731         </tr>
1732       </table>
1733 </div><div class="memdoc">
1735 <p>Max pooling. </p>
1736 <dl class="params"><dt>Parameters</dt><dd>
1737   <table class="params">
1738     <tr><td class="paramdir">[out]</td><td class="paramname">outputMap</td><td>Output feature map </td></tr>
1739     <tr><td class="paramdir">[in]</td><td class="paramname">maxIndex</td><td>Max value index map </td></tr>
1740     <tr><td class="paramdir">[in]</td><td class="paramname">inputMap</td><td>Input feature map </td></tr>
1741     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Output feature map row </td></tr>
1742     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Output feature map col </td></tr>
1743     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Output feature map channel </td></tr>
1744     <tr><td class="paramdir">[in]</td><td class="paramname">prevRow</td><td>Previous feature map row </td></tr>
1745     <tr><td class="paramdir">[in]</td><td class="paramname">prevCol</td><td>Previous feature map col </td></tr>
1746     <tr><td class="paramdir">[in]</td><td class="paramname">scaleRow</td><td>Scaling window row size </td></tr>
1747     <tr><td class="paramdir">[in]</td><td class="paramname">scaleCol</td><td>Scaling window col size </td></tr>
1748     <tr><td class="paramdir">[in]</td><td class="paramname">padUp</td><td>Upper border padding for the input feature map </td></tr>
1749     <tr><td class="paramdir">[in]</td><td class="paramname">padLeft</td><td>Left border padding for the input feature map </td></tr>
1750     <tr><td class="paramdir">[in]</td><td class="paramname">strideX</td><td>Window stride in x direction </td></tr>
1751     <tr><td class="paramdir">[in]</td><td class="paramname">strideY</td><td>Window stride in y direction </td></tr>
1752     <tr><td class="paramdir">[in]</td><td class="paramname">phase</td><td>CNN phase </td></tr>
1753     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1754     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1755   </table>
1756   </dd>
1757 </dl>
1758 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1760 </div>
1761 </div>
1762 <a class="anchor" id="ga8d4338ebfb64ecb3ec88094aebd65e40"></a>
1763 <div class="memitem">
1764 <div class="memproto">
1765       <table class="memname">
1766         <tr>
1767           <td class="memname">int timlUtilMeanPooling </td>
1768           <td>(</td>
1769           <td class="paramtype">float *&#160;</td>
1770           <td class="paramname"><em>outputMap</em>, </td>
1771         </tr>
1772         <tr>
1773           <td class="paramkey"></td>
1774           <td></td>
1775           <td class="paramtype">float *&#160;</td>
1776           <td class="paramname"><em>inputMap</em>, </td>
1777         </tr>
1778         <tr>
1779           <td class="paramkey"></td>
1780           <td></td>
1781           <td class="paramtype">int&#160;</td>
1782           <td class="paramname"><em>row</em>, </td>
1783         </tr>
1784         <tr>
1785           <td class="paramkey"></td>
1786           <td></td>
1787           <td class="paramtype">int&#160;</td>
1788           <td class="paramname"><em>col</em>, </td>
1789         </tr>
1790         <tr>
1791           <td class="paramkey"></td>
1792           <td></td>
1793           <td class="paramtype">int&#160;</td>
1794           <td class="paramname"><em>channel</em>, </td>
1795         </tr>
1796         <tr>
1797           <td class="paramkey"></td>
1798           <td></td>
1799           <td class="paramtype">int&#160;</td>
1800           <td class="paramname"><em>prevRow</em>, </td>
1801         </tr>
1802         <tr>
1803           <td class="paramkey"></td>
1804           <td></td>
1805           <td class="paramtype">int&#160;</td>
1806           <td class="paramname"><em>prevCol</em>, </td>
1807         </tr>
1808         <tr>
1809           <td class="paramkey"></td>
1810           <td></td>
1811           <td class="paramtype">int&#160;</td>
1812           <td class="paramname"><em>scaleRow</em>, </td>
1813         </tr>
1814         <tr>
1815           <td class="paramkey"></td>
1816           <td></td>
1817           <td class="paramtype">int&#160;</td>
1818           <td class="paramname"><em>scaleCol</em>, </td>
1819         </tr>
1820         <tr>
1821           <td class="paramkey"></td>
1822           <td></td>
1823           <td class="paramtype">int&#160;</td>
1824           <td class="paramname"><em>padUp</em>, </td>
1825         </tr>
1826         <tr>
1827           <td class="paramkey"></td>
1828           <td></td>
1829           <td class="paramtype">int&#160;</td>
1830           <td class="paramname"><em>padLeft</em>, </td>
1831         </tr>
1832         <tr>
1833           <td class="paramkey"></td>
1834           <td></td>
1835           <td class="paramtype">int&#160;</td>
1836           <td class="paramname"><em>strideX</em>, </td>
1837         </tr>
1838         <tr>
1839           <td class="paramkey"></td>
1840           <td></td>
1841           <td class="paramtype">int&#160;</td>
1842           <td class="paramname"><em>strideY</em>, </td>
1843         </tr>
1844         <tr>
1845           <td class="paramkey"></td>
1846           <td></td>
1847           <td class="paramtype">int&#160;</td>
1848           <td class="paramname"><em>deviceId</em>, </td>
1849         </tr>
1850         <tr>
1851           <td class="paramkey"></td>
1852           <td></td>
1853           <td class="paramtype">int&#160;</td>
1854           <td class="paramname"><em>threadId</em>&#160;</td>
1855         </tr>
1856         <tr>
1857           <td></td>
1858           <td>)</td>
1859           <td></td><td></td>
1860         </tr>
1861       </table>
1862 </div><div class="memdoc">
1864 <p>Mean pooling. </p>
1865 <dl class="params"><dt>Parameters</dt><dd>
1866   <table class="params">
1867     <tr><td class="paramdir">[out]</td><td class="paramname">outputMap</td><td>Output feature map </td></tr>
1868     <tr><td class="paramdir">[in]</td><td class="paramname">inputMap</td><td>Input feature map </td></tr>
1869     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Output feature map row </td></tr>
1870     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Output feature map col </td></tr>
1871     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Output feature map channel </td></tr>
1872     <tr><td class="paramdir">[in]</td><td class="paramname">prevRow</td><td>Previous feature map row </td></tr>
1873     <tr><td class="paramdir">[in]</td><td class="paramname">prevCol</td><td>Previous feature map col </td></tr>
1874     <tr><td class="paramdir">[in]</td><td class="paramname">scaleRow</td><td>Scaling window row size </td></tr>
1875     <tr><td class="paramdir">[in]</td><td class="paramname">scaleCol</td><td>Scaling window col size </td></tr>
1876     <tr><td class="paramdir">[in]</td><td class="paramname">padUp</td><td>Upper border padding for the input feature map </td></tr>
1877     <tr><td class="paramdir">[in]</td><td class="paramname">padLeft</td><td>Left border padding for the input feature map </td></tr>
1878     <tr><td class="paramdir">[in]</td><td class="paramname">strideX</td><td>Window stride in x direction </td></tr>
1879     <tr><td class="paramdir">[in]</td><td class="paramname">strideY</td><td>Window stride in y direction </td></tr>
1880     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
1881     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
1882   </table>
1883   </dd>
1884 </dl>
1885 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
1887 </div>
1888 </div>
1889 <a class="anchor" id="ga8e17bdb2dd7b9e8f25d1a93c8d470a97"></a>
1890 <div class="memitem">
1891 <div class="memproto">
1892       <table class="memname">
1893         <tr>
1894           <td class="memname">float timlUtilMeanSqaureError </td>
1895           <td>(</td>
1896           <td class="paramtype">float *&#160;</td>
1897           <td class="paramname"><em>x</em>, </td>
1898         </tr>
1899         <tr>
1900           <td class="paramkey"></td>
1901           <td></td>
1902           <td class="paramtype">int&#160;</td>
1903           <td class="paramname"><em>label</em>, </td>
1904         </tr>
1905         <tr>
1906           <td class="paramkey"></td>
1907           <td></td>
1908           <td class="paramtype">int&#160;</td>
1909           <td class="paramname"><em>n</em>&#160;</td>
1910         </tr>
1911         <tr>
1912           <td></td>
1913           <td>)</td>
1914           <td></td><td></td>
1915         </tr>
1916       </table>
1917 </div><div class="memdoc">
1919 <p>Calculate the mean square error between x and label. </p>
1920 <dl class="params"><dt>Parameters</dt><dd>
1921   <table class="params">
1922     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input data </td></tr>
1923     <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>Label </td></tr>
1924     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Data size </td></tr>
1925   </table>
1926   </dd>
1927 </dl>
1928 <dl class="section return"><dt>Returns</dt><dd>Mean square error </dd></dl>
1930 </div>
1931 </div>
1932 <a class="anchor" id="gac8848759ff2638e9b54beef8f82748ae"></a>
1933 <div class="memitem">
1934 <div class="memproto">
1935       <table class="memname">
1936         <tr>
1937           <td class="memname">float timlUtilMultinomialCrossEntropy </td>
1938           <td>(</td>
1939           <td class="paramtype">float *&#160;</td>
1940           <td class="paramname"><em>x</em>, </td>
1941         </tr>
1942         <tr>
1943           <td class="paramkey"></td>
1944           <td></td>
1945           <td class="paramtype">int&#160;</td>
1946           <td class="paramname"><em>label</em>, </td>
1947         </tr>
1948         <tr>
1949           <td class="paramkey"></td>
1950           <td></td>
1951           <td class="paramtype">int&#160;</td>
1952           <td class="paramname"><em>n</em>&#160;</td>
1953         </tr>
1954         <tr>
1955           <td></td>
1956           <td>)</td>
1957           <td></td><td></td>
1958         </tr>
1959       </table>
1960 </div><div class="memdoc">
1962 <p>Calculate the mutlinomial cross entropy between x and label. </p>
1963 <dl class="params"><dt>Parameters</dt><dd>
1964   <table class="params">
1965     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input data </td></tr>
1966     <tr><td class="paramdir">[in]</td><td class="paramname">label</td><td>Label </td></tr>
1967     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Data size </td></tr>
1968   </table>
1969   </dd>
1970 </dl>
1971 <dl class="section return"><dt>Returns</dt><dd>Cross entropy </dd></dl>
1973 </div>
1974 </div>
1975 <a class="anchor" id="ga33ca8bcccfd95381c34a7822dd3d5e03"></a>
1976 <div class="memitem">
1977 <div class="memproto">
1978       <table class="memname">
1979         <tr>
1980           <td class="memname">int timlUtilRandContinuousUniformRNG </td>
1981           <td>(</td>
1982           <td class="paramtype">float *&#160;</td>
1983           <td class="paramname"><em>x</em>, </td>
1984         </tr>
1985         <tr>
1986           <td class="paramkey"></td>
1987           <td></td>
1988           <td class="paramtype">int&#160;</td>
1989           <td class="paramname"><em>dim</em>, </td>
1990         </tr>
1991         <tr>
1992           <td class="paramkey"></td>
1993           <td></td>
1994           <td class="paramtype">float&#160;</td>
1995           <td class="paramname"><em>a</em>, </td>
1996         </tr>
1997         <tr>
1998           <td class="paramkey"></td>
1999           <td></td>
2000           <td class="paramtype">float&#160;</td>
2001           <td class="paramname"><em>b</em>&#160;</td>
2002         </tr>
2003         <tr>
2004           <td></td>
2005           <td>)</td>
2006           <td></td><td></td>
2007         </tr>
2008       </table>
2009 </div><div class="memdoc">
2011 <p>Generate a discrete uniform random vector between (a, b) </p>
2012 <dl class="params"><dt>Parameters</dt><dd>
2013   <table class="params">
2014     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Generated random vector </td></tr>
2015     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension </td></tr>
2016     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Lower bound </td></tr>
2017     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Upper bound </td></tr>
2018   </table>
2019   </dd>
2020 </dl>
2021 <dl class="section return"><dt>Returns</dt><dd>Random vector </dd></dl>
2023 </div>
2024 </div>
2025 <a class="anchor" id="ga7b7056163efcce74e844159113ad7670"></a>
2026 <div class="memitem">
2027 <div class="memproto">
2028       <table class="memname">
2029         <tr>
2030           <td class="memname">int timlUtilRandDiscreteUniformRNG </td>
2031           <td>(</td>
2032           <td class="paramtype">int&#160;</td>
2033           <td class="paramname"><em>a</em>, </td>
2034         </tr>
2035         <tr>
2036           <td class="paramkey"></td>
2037           <td></td>
2038           <td class="paramtype">int&#160;</td>
2039           <td class="paramname"><em>b</em>&#160;</td>
2040         </tr>
2041         <tr>
2042           <td></td>
2043           <td>)</td>
2044           <td></td><td></td>
2045         </tr>
2046       </table>
2047 </div><div class="memdoc">
2049 <p>Discrete uniform random number generator in [a, b]. </p>
2050 <dl class="params"><dt>Parameters</dt><dd>
2051   <table class="params">
2052     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Lower bound </td></tr>
2053     <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Upper bound </td></tr>
2054   </table>
2055   </dd>
2056 </dl>
2057 <dl class="section return"><dt>Returns</dt><dd>Random integer </dd></dl>
2059 </div>
2060 </div>
2061 <a class="anchor" id="gab0d103f2a7348ee3f7be2468cb06a374"></a>
2062 <div class="memitem">
2063 <div class="memproto">
2064       <table class="memname">
2065         <tr>
2066           <td class="memname">int timlUtilRandNormalRNG </td>
2067           <td>(</td>
2068           <td class="paramtype">float *&#160;</td>
2069           <td class="paramname"><em>x</em>, </td>
2070         </tr>
2071         <tr>
2072           <td class="paramkey"></td>
2073           <td></td>
2074           <td class="paramtype">int&#160;</td>
2075           <td class="paramname"><em>dim</em>, </td>
2076         </tr>
2077         <tr>
2078           <td class="paramkey"></td>
2079           <td></td>
2080           <td class="paramtype">float&#160;</td>
2081           <td class="paramname"><em>mean</em>, </td>
2082         </tr>
2083         <tr>
2084           <td class="paramkey"></td>
2085           <td></td>
2086           <td class="paramtype">float&#160;</td>
2087           <td class="paramname"><em>std</em>&#160;</td>
2088         </tr>
2089         <tr>
2090           <td></td>
2091           <td>)</td>
2092           <td></td><td></td>
2093         </tr>
2094       </table>
2095 </div><div class="memdoc">
2097 <p>Generate a Gaussian random number. </p>
2098 <dl class="params"><dt>Parameters</dt><dd>
2099   <table class="params">
2100     <tr><td class="paramdir">[out]</td><td class="paramname">x</td><td>Guassian random vector </td></tr>
2101     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Vector dimension </td></tr>
2102     <tr><td class="paramdir">[in]</td><td class="paramname">mean</td><td>Mean </td></tr>
2103     <tr><td class="paramdir">[in]</td><td class="paramname">std</td><td>Standard deviation </td></tr>
2104   </table>
2105   </dd>
2106 </dl>
2107 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2109 </div>
2110 </div>
2111 <a class="anchor" id="ga33f6226602545ae82fb9eb9dc4e2d0f4"></a>
2112 <div class="memitem">
2113 <div class="memproto">
2114       <table class="memname">
2115         <tr>
2116           <td class="memname">int timlUtilRandPerm </td>
2117           <td>(</td>
2118           <td class="paramtype">int *&#160;</td>
2119           <td class="paramname"><em>array</em>, </td>
2120         </tr>
2121         <tr>
2122           <td class="paramkey"></td>
2123           <td></td>
2124           <td class="paramtype">int&#160;</td>
2125           <td class="paramname"><em>n</em>&#160;</td>
2126         </tr>
2127         <tr>
2128           <td></td>
2129           <td>)</td>
2130           <td></td><td></td>
2131         </tr>
2132       </table>
2133 </div><div class="memdoc">
2135 <p>Random permute an array. </p>
2136 <dl class="params"><dt>Parameters</dt><dd>
2137   <table class="params">
2138     <tr><td class="paramdir">[in,out]</td><td class="paramname">array</td><td>Array </td></tr>
2139     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
2140   </table>
2141   </dd>
2142 </dl>
2143 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2145 </div>
2146 </div>
2147 <a class="anchor" id="ga518889e2bee0ffe2a0bab1a2a509afeb"></a>
2148 <div class="memitem">
2149 <div class="memproto">
2150       <table class="memname">
2151         <tr>
2152           <td class="memname">int timlUtilReadCIFAR10 </td>
2153           <td>(</td>
2154           <td class="paramtype">const char *&#160;</td>
2155           <td class="paramname"><em>path</em>, </td>
2156         </tr>
2157         <tr>
2158           <td class="paramkey"></td>
2159           <td></td>
2160           <td class="paramtype"><a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *&#160;</td>
2161           <td class="paramname"><em>training</em>, </td>
2162         </tr>
2163         <tr>
2164           <td class="paramkey"></td>
2165           <td></td>
2166           <td class="paramtype"><a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *&#160;</td>
2167           <td class="paramname"><em>testing</em>&#160;</td>
2168         </tr>
2169         <tr>
2170           <td></td>
2171           <td>)</td>
2172           <td></td><td></td>
2173         </tr>
2174       </table>
2175 </div><div class="memdoc">
2177 <p>Read CIFA10 database from binary files. </p>
2178 <dl class="params"><dt>Parameters</dt><dd>
2179   <table class="params">
2180     <tr><td class="paramdir">[out]</td><td class="paramname">training</td><td>Training database </td></tr>
2181     <tr><td class="paramdir">[out]</td><td class="paramname">testing</td><td>Testing database </td></tr>
2182   </table>
2183   </dd>
2184 </dl>
2185 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2187 </div>
2188 </div>
2189 <a class="anchor" id="ga4e3a2beb9a301e6c71f5c1df09d6099e"></a>
2190 <div class="memitem">
2191 <div class="memproto">
2192       <table class="memname">
2193         <tr>
2194           <td class="memname">int timlUtilReadFixedSizeJPEG </td>
2195           <td>(</td>
2196           <td class="paramtype">const char *&#160;</td>
2197           <td class="paramname"><em>name</em>, </td>
2198         </tr>
2199         <tr>
2200           <td class="paramkey"></td>
2201           <td></td>
2202           <td class="paramtype">float *&#160;</td>
2203           <td class="paramname"><em>data</em>, </td>
2204         </tr>
2205         <tr>
2206           <td class="paramkey"></td>
2207           <td></td>
2208           <td class="paramtype">int&#160;</td>
2209           <td class="paramname"><em>row</em>, </td>
2210         </tr>
2211         <tr>
2212           <td class="paramkey"></td>
2213           <td></td>
2214           <td class="paramtype">int&#160;</td>
2215           <td class="paramname"><em>col</em>, </td>
2216         </tr>
2217         <tr>
2218           <td class="paramkey"></td>
2219           <td></td>
2220           <td class="paramtype">int&#160;</td>
2221           <td class="paramname"><em>channel</em>&#160;</td>
2222         </tr>
2223         <tr>
2224           <td></td>
2225           <td>)</td>
2226           <td></td><td></td>
2227         </tr>
2228       </table>
2229 </div><div class="memdoc">
2231 <p>Read a jpg image with known size information to avoid frequent allocation and deallocation of data. </p>
2232 <dl class="params"><dt>Parameters</dt><dd>
2233   <table class="params">
2234     <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Image name </td></tr>
2235     <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>Data </td></tr>
2236     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Row </td></tr>
2237     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Col </td></tr>
2238     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Channel </td></tr>
2239   </table>
2240   </dd>
2241 </dl>
2242 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2244 </div>
2245 </div>
2246 <a class="anchor" id="ga6e186bf4e96a71fd1bc88aa79a7fd7f9"></a>
2247 <div class="memitem">
2248 <div class="memproto">
2249       <table class="memname">
2250         <tr>
2251           <td class="memname"><a class="el" href="structtimlUtilImage.html">timlUtilImage</a> timlUtilReadJPEG </td>
2252           <td>(</td>
2253           <td class="paramtype">const char *&#160;</td>
2254           <td class="paramname"><em>name</em></td><td>)</td>
2255           <td></td>
2256         </tr>
2257       </table>
2258 </div><div class="memdoc">
2260 <p>read a jpg image </p>
2261 <dl class="params"><dt>Parameters</dt><dd>
2262   <table class="params">
2263     <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>image name </td></tr>
2264   </table>
2265   </dd>
2266 </dl>
2267 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="structtimlUtilImage.html">timlUtilImage</a> structure </dd></dl>
2269 </div>
2270 </div>
2271 <a class="anchor" id="ga218c4e1b952545e65e70b46fc087c0fa"></a>
2272 <div class="memitem">
2273 <div class="memproto">
2274       <table class="memname">
2275         <tr>
2276           <td class="memname">int timlUtilReadMNIST </td>
2277           <td>(</td>
2278           <td class="paramtype">const char *&#160;</td>
2279           <td class="paramname"><em>path</em>, </td>
2280         </tr>
2281         <tr>
2282           <td class="paramkey"></td>
2283           <td></td>
2284           <td class="paramtype"><a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *&#160;</td>
2285           <td class="paramname"><em>training</em>, </td>
2286         </tr>
2287         <tr>
2288           <td class="paramkey"></td>
2289           <td></td>
2290           <td class="paramtype"><a class="el" href="structtimlUtilImageSet.html">timlUtilImageSet</a> *&#160;</td>
2291           <td class="paramname"><em>testing</em>&#160;</td>
2292         </tr>
2293         <tr>
2294           <td></td>
2295           <td>)</td>
2296           <td></td><td></td>
2297         </tr>
2298       </table>
2299 </div><div class="memdoc">
2301 <p>Read MNIST database from binary files. </p>
2302 <dl class="params"><dt>Parameters</dt><dd>
2303   <table class="params">
2304     <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Database path </td></tr>
2305     <tr><td class="paramdir">[out]</td><td class="paramname">training</td><td>Training database </td></tr>
2306     <tr><td class="paramdir">[out]</td><td class="paramname">testing</td><td>Testing database </td></tr>
2307   </table>
2308   </dd>
2309 </dl>
2310 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2312 </div>
2313 </div>
2314 <a class="anchor" id="gaf61206d55b45c89e3382ed9684ef2c79"></a>
2315 <div class="memitem">
2316 <div class="memproto">
2317       <table class="memname">
2318         <tr>
2319           <td class="memname">int timlUtilRelu </td>
2320           <td>(</td>
2321           <td class="paramtype">float *&#160;</td>
2322           <td class="paramname"><em>x</em>, </td>
2323         </tr>
2324         <tr>
2325           <td class="paramkey"></td>
2326           <td></td>
2327           <td class="paramtype">float *&#160;</td>
2328           <td class="paramname"><em>y</em>, </td>
2329         </tr>
2330         <tr>
2331           <td class="paramkey"></td>
2332           <td></td>
2333           <td class="paramtype">int&#160;</td>
2334           <td class="paramname"><em>n</em>, </td>
2335         </tr>
2336         <tr>
2337           <td class="paramkey"></td>
2338           <td></td>
2339           <td class="paramtype">int&#160;</td>
2340           <td class="paramname"><em>deviceId</em>, </td>
2341         </tr>
2342         <tr>
2343           <td class="paramkey"></td>
2344           <td></td>
2345           <td class="paramtype">int&#160;</td>
2346           <td class="paramname"><em>threadId</em>&#160;</td>
2347         </tr>
2348         <tr>
2349           <td></td>
2350           <td>)</td>
2351           <td></td><td></td>
2352         </tr>
2353       </table>
2354 </div><div class="memdoc">
2356 <p>Rectified linear unit. </p>
2357 <dl class="params"><dt>Parameters</dt><dd>
2358   <table class="params">
2359     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2360     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Outupt </td></tr>
2361     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2362     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2363     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2364   </table>
2365   </dd>
2366 </dl>
2367 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2369 </div>
2370 </div>
2371 <a class="anchor" id="gadcb6e562a1ddebb9589dc326c6e85db3"></a>
2372 <div class="memitem">
2373 <div class="memproto">
2374       <table class="memname">
2375         <tr>
2376           <td class="memname">int timlUtilReluDerivative </td>
2377           <td>(</td>
2378           <td class="paramtype">float *&#160;</td>
2379           <td class="paramname"><em>x</em>, </td>
2380         </tr>
2381         <tr>
2382           <td class="paramkey"></td>
2383           <td></td>
2384           <td class="paramtype">float *&#160;</td>
2385           <td class="paramname"><em>y</em>, </td>
2386         </tr>
2387         <tr>
2388           <td class="paramkey"></td>
2389           <td></td>
2390           <td class="paramtype">int&#160;</td>
2391           <td class="paramname"><em>n</em>, </td>
2392         </tr>
2393         <tr>
2394           <td class="paramkey"></td>
2395           <td></td>
2396           <td class="paramtype">int&#160;</td>
2397           <td class="paramname"><em>deviceId</em>, </td>
2398         </tr>
2399         <tr>
2400           <td class="paramkey"></td>
2401           <td></td>
2402           <td class="paramtype">int&#160;</td>
2403           <td class="paramname"><em>threadId</em>&#160;</td>
2404         </tr>
2405         <tr>
2406           <td></td>
2407           <td>)</td>
2408           <td></td><td></td>
2409         </tr>
2410       </table>
2411 </div><div class="memdoc">
2413 <p>Rectified linear unit derivative. </p>
2414 <dl class="params"><dt>Parameters</dt><dd>
2415   <table class="params">
2416     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2417     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Derivative of relu(x) </td></tr>
2418     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2419     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2420     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2421   </table>
2422   </dd>
2423 </dl>
2424 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2426 </div>
2427 </div>
2428 <a class="anchor" id="ga16f8b9181ff6ce6d4b1f655a5eb4738e"></a>
2429 <div class="memitem">
2430 <div class="memproto">
2431       <table class="memname">
2432         <tr>
2433           <td class="memname">uint32_t timlUtilReverseEndian32 </td>
2434           <td>(</td>
2435           <td class="paramtype">register uint32_t&#160;</td>
2436           <td class="paramname"><em>i</em></td><td>)</td>
2437           <td></td>
2438         </tr>
2439       </table>
2440 </div><div class="memdoc">
2442 <p>Reverse the 32 bit endian pattern. </p>
2443 <dl class="params"><dt>Parameters</dt><dd>
2444   <table class="params">
2445     <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>Integer input </td></tr>
2446   </table>
2447   </dd>
2448 </dl>
2449 <dl class="section return"><dt>Returns</dt><dd>Integer output </dd></dl>
2451 </div>
2452 </div>
2453 <a class="anchor" id="ga3cb2f6d77b727af3d819f75c6918c327"></a>
2454 <div class="memitem">
2455 <div class="memproto">
2456       <table class="memname">
2457         <tr>
2458           <td class="memname">char ** timlUtilScanJPEG </td>
2459           <td>(</td>
2460           <td class="paramtype">const char *&#160;</td>
2461           <td class="paramname"><em>dirName</em>, </td>
2462         </tr>
2463         <tr>
2464           <td class="paramkey"></td>
2465           <td></td>
2466           <td class="paramtype">int *&#160;</td>
2467           <td class="paramname"><em>imageNum</em>&#160;</td>
2468         </tr>
2469         <tr>
2470           <td></td>
2471           <td>)</td>
2472           <td></td><td></td>
2473         </tr>
2474       </table>
2475 </div><div class="memdoc">
2477 <p>Return an array of jpg image names in the directory. </p>
2478 <dl class="params"><dt>Parameters</dt><dd>
2479   <table class="params">
2480     <tr><td class="paramdir">[in]</td><td class="paramname">dirName</td><td>Directory name </td></tr>
2481     <tr><td class="paramdir">[out]</td><td class="paramname">imageNum</td><td>Image number </td></tr>
2482   </table>
2483   </dd>
2484 </dl>
2485 <dl class="section return"><dt>Returns</dt><dd>Image name array </dd></dl>
2487 </div>
2488 </div>
2489 <a class="anchor" id="ga0e3ab1684d55ae10ec96b1b7a58c2d0f"></a>
2490 <div class="memitem">
2491 <div class="memproto">
2492       <table class="memname">
2493         <tr>
2494           <td class="memname">int timlUtilSigmoid </td>
2495           <td>(</td>
2496           <td class="paramtype">float *&#160;</td>
2497           <td class="paramname"><em>x</em>, </td>
2498         </tr>
2499         <tr>
2500           <td class="paramkey"></td>
2501           <td></td>
2502           <td class="paramtype">float *&#160;</td>
2503           <td class="paramname"><em>y</em>, </td>
2504         </tr>
2505         <tr>
2506           <td class="paramkey"></td>
2507           <td></td>
2508           <td class="paramtype">int&#160;</td>
2509           <td class="paramname"><em>n</em>, </td>
2510         </tr>
2511         <tr>
2512           <td class="paramkey"></td>
2513           <td></td>
2514           <td class="paramtype">int&#160;</td>
2515           <td class="paramname"><em>deviceId</em>, </td>
2516         </tr>
2517         <tr>
2518           <td class="paramkey"></td>
2519           <td></td>
2520           <td class="paramtype">int&#160;</td>
2521           <td class="paramname"><em>threadId</em>&#160;</td>
2522         </tr>
2523         <tr>
2524           <td></td>
2525           <td>)</td>
2526           <td></td><td></td>
2527         </tr>
2528       </table>
2529 </div><div class="memdoc">
2531 <p>Sigmoid. </p>
2532 <dl class="params"><dt>Parameters</dt><dd>
2533   <table class="params">
2534     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2535     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Output y = sigmoid(x) </td></tr>
2536     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2537     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2538     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2539   </table>
2540   </dd>
2541 </dl>
2542 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2544 </div>
2545 </div>
2546 <a class="anchor" id="gac4ce5d2a827d4d0bddb092604dc22555"></a>
2547 <div class="memitem">
2548 <div class="memproto">
2549       <table class="memname">
2550         <tr>
2551           <td class="memname">int timlUtilSigmoidDerivative </td>
2552           <td>(</td>
2553           <td class="paramtype">float *&#160;</td>
2554           <td class="paramname"><em>x</em>, </td>
2555         </tr>
2556         <tr>
2557           <td class="paramkey"></td>
2558           <td></td>
2559           <td class="paramtype">float *&#160;</td>
2560           <td class="paramname"><em>y</em>, </td>
2561         </tr>
2562         <tr>
2563           <td class="paramkey"></td>
2564           <td></td>
2565           <td class="paramtype">int&#160;</td>
2566           <td class="paramname"><em>n</em>, </td>
2567         </tr>
2568         <tr>
2569           <td class="paramkey"></td>
2570           <td></td>
2571           <td class="paramtype">int&#160;</td>
2572           <td class="paramname"><em>deviceId</em>, </td>
2573         </tr>
2574         <tr>
2575           <td class="paramkey"></td>
2576           <td></td>
2577           <td class="paramtype">int&#160;</td>
2578           <td class="paramname"><em>threadId</em>&#160;</td>
2579         </tr>
2580         <tr>
2581           <td></td>
2582           <td>)</td>
2583           <td></td><td></td>
2584         </tr>
2585       </table>
2586 </div><div class="memdoc">
2588 <p>Sigmoid derivative. </p>
2589 <dl class="params"><dt>Parameters</dt><dd>
2590   <table class="params">
2591     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2592     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Outupt y = derivative of sigmoid(x) </td></tr>
2593     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2594     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2595     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2596   </table>
2597   </dd>
2598 </dl>
2599 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2601 </div>
2602 </div>
2603 <a class="anchor" id="ga223537dde56b8c21a9455ff8a635f71f"></a>
2604 <div class="memitem">
2605 <div class="memproto">
2606       <table class="memname">
2607         <tr>
2608           <td class="memname">int timlUtilSoftmax </td>
2609           <td>(</td>
2610           <td class="paramtype">float *&#160;</td>
2611           <td class="paramname"><em>x</em>, </td>
2612         </tr>
2613         <tr>
2614           <td class="paramkey"></td>
2615           <td></td>
2616           <td class="paramtype">float *&#160;</td>
2617           <td class="paramname"><em>y</em>, </td>
2618         </tr>
2619         <tr>
2620           <td class="paramkey"></td>
2621           <td></td>
2622           <td class="paramtype">int&#160;</td>
2623           <td class="paramname"><em>row</em>, </td>
2624         </tr>
2625         <tr>
2626           <td class="paramkey"></td>
2627           <td></td>
2628           <td class="paramtype">int&#160;</td>
2629           <td class="paramname"><em>col</em>, </td>
2630         </tr>
2631         <tr>
2632           <td class="paramkey"></td>
2633           <td></td>
2634           <td class="paramtype">int&#160;</td>
2635           <td class="paramname"><em>channel</em>, </td>
2636         </tr>
2637         <tr>
2638           <td class="paramkey"></td>
2639           <td></td>
2640           <td class="paramtype">int&#160;</td>
2641           <td class="paramname"><em>deviceId</em>, </td>
2642         </tr>
2643         <tr>
2644           <td class="paramkey"></td>
2645           <td></td>
2646           <td class="paramtype">int&#160;</td>
2647           <td class="paramname"><em>threadId</em>&#160;</td>
2648         </tr>
2649         <tr>
2650           <td></td>
2651           <td>)</td>
2652           <td></td><td></td>
2653         </tr>
2654       </table>
2655 </div><div class="memdoc">
2657 <p>Softmax function. </p>
2658 <dl class="params"><dt>Parameters</dt><dd>
2659   <table class="params">
2660     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2661     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Outupt </td></tr>
2662     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>x row size </td></tr>
2663     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>x col size </td></tr>
2664     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>x channel size </td></tr>
2665     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2666     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2667   </table>
2668   </dd>
2669 </dl>
2670 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2672 </div>
2673 </div>
2674 <a class="anchor" id="ga158d5bed50c9d1aa04f3437ba4e4746c"></a>
2675 <div class="memitem">
2676 <div class="memproto">
2677       <table class="memname">
2678         <tr>
2679           <td class="memname">int timlUtilSubtract </td>
2680           <td>(</td>
2681           <td class="paramtype">float *&#160;</td>
2682           <td class="paramname"><em>x</em>, </td>
2683         </tr>
2684         <tr>
2685           <td class="paramkey"></td>
2686           <td></td>
2687           <td class="paramtype">float&#160;</td>
2688           <td class="paramname"><em>y</em>, </td>
2689         </tr>
2690         <tr>
2691           <td class="paramkey"></td>
2692           <td></td>
2693           <td class="paramtype">int&#160;</td>
2694           <td class="paramname"><em>deviceId</em>, </td>
2695         </tr>
2696         <tr>
2697           <td class="paramkey"></td>
2698           <td></td>
2699           <td class="paramtype">int&#160;</td>
2700           <td class="paramname"><em>threadId</em>&#160;</td>
2701         </tr>
2702         <tr>
2703           <td></td>
2704           <td>)</td>
2705           <td></td><td></td>
2706         </tr>
2707       </table>
2708 </div><div class="memdoc">
2710 <p>Subtract operation. </p>
2711 <dl class="params"><dt>Parameters</dt><dd>
2712   <table class="params">
2713     <tr><td class="paramdir">[in,out]</td><td class="paramname">x</td><td>x = x - y </td></tr>
2714     <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>Subtract constant </td></tr>
2715     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2716     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2717   </table>
2718   </dd>
2719 </dl>
2720 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2722 </div>
2723 </div>
2724 <a class="anchor" id="ga26bb1805bd3475719324718c12cd5a0f"></a>
2725 <div class="memitem">
2726 <div class="memproto">
2727       <table class="memname">
2728         <tr>
2729           <td class="memname">int timlUtilTanh </td>
2730           <td>(</td>
2731           <td class="paramtype">float *&#160;</td>
2732           <td class="paramname"><em>x</em>, </td>
2733         </tr>
2734         <tr>
2735           <td class="paramkey"></td>
2736           <td></td>
2737           <td class="paramtype">float *&#160;</td>
2738           <td class="paramname"><em>y</em>, </td>
2739         </tr>
2740         <tr>
2741           <td class="paramkey"></td>
2742           <td></td>
2743           <td class="paramtype">int&#160;</td>
2744           <td class="paramname"><em>n</em>, </td>
2745         </tr>
2746         <tr>
2747           <td class="paramkey"></td>
2748           <td></td>
2749           <td class="paramtype">int&#160;</td>
2750           <td class="paramname"><em>deviceId</em>, </td>
2751         </tr>
2752         <tr>
2753           <td class="paramkey"></td>
2754           <td></td>
2755           <td class="paramtype">int&#160;</td>
2756           <td class="paramname"><em>threadId</em>&#160;</td>
2757         </tr>
2758         <tr>
2759           <td></td>
2760           <td>)</td>
2761           <td></td><td></td>
2762         </tr>
2763       </table>
2764 </div><div class="memdoc">
2766 <p>Tanh. </p>
2767 <dl class="params"><dt>Parameters</dt><dd>
2768   <table class="params">
2769     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2770     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Output = tanh(x) </td></tr>
2771     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2772     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2773     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2774   </table>
2775   </dd>
2776 </dl>
2777 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2779 </div>
2780 </div>
2781 <a class="anchor" id="ga680fe5b84f1ce4712c74fc9c01b5dc82"></a>
2782 <div class="memitem">
2783 <div class="memproto">
2784       <table class="memname">
2785         <tr>
2786           <td class="memname">int timlUtilTanhDerivative </td>
2787           <td>(</td>
2788           <td class="paramtype">float *&#160;</td>
2789           <td class="paramname"><em>x</em>, </td>
2790         </tr>
2791         <tr>
2792           <td class="paramkey"></td>
2793           <td></td>
2794           <td class="paramtype">float *&#160;</td>
2795           <td class="paramname"><em>y</em>, </td>
2796         </tr>
2797         <tr>
2798           <td class="paramkey"></td>
2799           <td></td>
2800           <td class="paramtype">int&#160;</td>
2801           <td class="paramname"><em>n</em>, </td>
2802         </tr>
2803         <tr>
2804           <td class="paramkey"></td>
2805           <td></td>
2806           <td class="paramtype">int&#160;</td>
2807           <td class="paramname"><em>deviceId</em>, </td>
2808         </tr>
2809         <tr>
2810           <td class="paramkey"></td>
2811           <td></td>
2812           <td class="paramtype">int&#160;</td>
2813           <td class="paramname"><em>threadId</em>&#160;</td>
2814         </tr>
2815         <tr>
2816           <td></td>
2817           <td>)</td>
2818           <td></td><td></td>
2819         </tr>
2820       </table>
2821 </div><div class="memdoc">
2823 <p>Tanh derivative. </p>
2824 <dl class="params"><dt>Parameters</dt><dd>
2825   <table class="params">
2826     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input </td></tr>
2827     <tr><td class="paramdir">[out]</td><td class="paramname">y</td><td>Output = derivative of tanh(x) </td></tr>
2828     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Input size </td></tr>
2829     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2830     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2831   </table>
2832   </dd>
2833 </dl>
2834 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2836 </div>
2837 </div>
2838 <a class="anchor" id="ga6bc3609f73f6674134821cc002d7081f"></a>
2839 <div class="memitem">
2840 <div class="memproto">
2841       <table class="memname">
2842         <tr>
2843           <td class="memname">void timlUtilTransform </td>
2844           <td>(</td>
2845           <td class="paramtype">float *&#160;</td>
2846           <td class="paramname"><em>dataOut</em>, </td>
2847         </tr>
2848         <tr>
2849           <td class="paramkey"></td>
2850           <td></td>
2851           <td class="paramtype">float *&#160;</td>
2852           <td class="paramname"><em>dataIn</em>, </td>
2853         </tr>
2854         <tr>
2855           <td class="paramkey"></td>
2856           <td></td>
2857           <td class="paramtype">float *&#160;</td>
2858           <td class="paramname"><em>dataHost</em>, </td>
2859         </tr>
2860         <tr>
2861           <td class="paramkey"></td>
2862           <td></td>
2863           <td class="paramtype">int&#160;</td>
2864           <td class="paramname"><em>channel</em>, </td>
2865         </tr>
2866         <tr>
2867           <td class="paramkey"></td>
2868           <td></td>
2869           <td class="paramtype">int&#160;</td>
2870           <td class="paramname"><em>row</em>, </td>
2871         </tr>
2872         <tr>
2873           <td class="paramkey"></td>
2874           <td></td>
2875           <td class="paramtype">int&#160;</td>
2876           <td class="paramname"><em>col</em>, </td>
2877         </tr>
2878         <tr>
2879           <td class="paramkey"></td>
2880           <td></td>
2881           <td class="paramtype">int&#160;</td>
2882           <td class="paramname"><em>rowOffset</em>, </td>
2883         </tr>
2884         <tr>
2885           <td class="paramkey"></td>
2886           <td></td>
2887           <td class="paramtype">int&#160;</td>
2888           <td class="paramname"><em>colOffset</em>, </td>
2889         </tr>
2890         <tr>
2891           <td class="paramkey"></td>
2892           <td></td>
2893           <td class="paramtype">int&#160;</td>
2894           <td class="paramname"><em>rowIn</em>, </td>
2895         </tr>
2896         <tr>
2897           <td class="paramkey"></td>
2898           <td></td>
2899           <td class="paramtype">int&#160;</td>
2900           <td class="paramname"><em>colIn</em>, </td>
2901         </tr>
2902         <tr>
2903           <td class="paramkey"></td>
2904           <td></td>
2905           <td class="paramtype">float&#160;</td>
2906           <td class="paramname"><em>scale</em>, </td>
2907         </tr>
2908         <tr>
2909           <td class="paramkey"></td>
2910           <td></td>
2911           <td class="paramtype">float *&#160;</td>
2912           <td class="paramname"><em>mean</em>, </td>
2913         </tr>
2914         <tr>
2915           <td class="paramkey"></td>
2916           <td></td>
2917           <td class="paramtype"><a class="el" href="group__util.html#ga5405b012e02035f4d864e0e38d516764">timlUtilMirrorType</a>&#160;</td>
2918           <td class="paramname"><em>mirrorType</em>, </td>
2919         </tr>
2920         <tr>
2921           <td class="paramkey"></td>
2922           <td></td>
2923           <td class="paramtype">int&#160;</td>
2924           <td class="paramname"><em>deviceId</em>, </td>
2925         </tr>
2926         <tr>
2927           <td class="paramkey"></td>
2928           <td></td>
2929           <td class="paramtype">int&#160;</td>
2930           <td class="paramname"><em>threadId</em>&#160;</td>
2931         </tr>
2932         <tr>
2933           <td></td>
2934           <td>)</td>
2935           <td></td><td></td>
2936         </tr>
2937       </table>
2938 </div><div class="memdoc">
2940 <p>Transform the raw input data with preprocessing. </p>
2941 <dl class="params"><dt>Parameters</dt><dd>
2942   <table class="params">
2943     <tr><td class="paramdir">[out]</td><td class="paramname">dataOut</td><td>Output data, i.e. the input feature map </td></tr>
2944     <tr><td class="paramdir">[out]</td><td class="paramname">dataIn</td><td>A copy of the input data </td></tr>
2945     <tr><td class="paramdir">[in]</td><td class="paramname">dataHost</td><td>Input data </td></tr>
2946     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Input feature map channel </td></tr>
2947     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Input feature map row </td></tr>
2948     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Input feature map col </td></tr>
2949     <tr><td class="paramdir">[in]</td><td class="paramname">rowOffset</td><td>Row offset with regard to the raw input data </td></tr>
2950     <tr><td class="paramdir">[in]</td><td class="paramname">colOffset</td><td>Col offset with regard to the raw input data </td></tr>
2951     <tr><td class="paramdir">[in]</td><td class="paramname">rowIn</td><td>Raw input data row </td></tr>
2952     <tr><td class="paramdir">[in]</td><td class="paramname">colIn</td><td>Raw input data col </td></tr>
2953     <tr><td class="paramdir">[in]</td><td class="paramname">scale</td><td>Scaling factor </td></tr>
2954     <tr><td class="paramdir">[in]</td><td class="paramname">mean</td><td>Input data mean </td></tr>
2955     <tr><td class="paramdir">[in]</td><td class="paramname">mirrorType</td><td>Whether to mirror the raw input data </td></tr>
2956     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
2957     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
2958   </table>
2959   </dd>
2960 </dl>
2961 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
2963 </div>
2964 </div>
2965 <a class="anchor" id="gae073107f6b111717bac95417ff80c85c"></a>
2966 <div class="memitem">
2967 <div class="memproto">
2968       <table class="memname">
2969         <tr>
2970           <td class="memname">int timlUtilUndoMaxPooling </td>
2971           <td>(</td>
2972           <td class="paramtype">float *&#160;</td>
2973           <td class="paramname"><em>prevDelta</em>, </td>
2974         </tr>
2975         <tr>
2976           <td class="paramkey"></td>
2977           <td></td>
2978           <td class="paramtype">int *&#160;</td>
2979           <td class="paramname"><em>maxIndex</em>, </td>
2980         </tr>
2981         <tr>
2982           <td class="paramkey"></td>
2983           <td></td>
2984           <td class="paramtype">float *&#160;</td>
2985           <td class="paramname"><em>delta</em>, </td>
2986         </tr>
2987         <tr>
2988           <td class="paramkey"></td>
2989           <td></td>
2990           <td class="paramtype">int&#160;</td>
2991           <td class="paramname"><em>dim</em>, </td>
2992         </tr>
2993         <tr>
2994           <td class="paramkey"></td>
2995           <td></td>
2996           <td class="paramtype">int&#160;</td>
2997           <td class="paramname"><em>deviceId</em>, </td>
2998         </tr>
2999         <tr>
3000           <td class="paramkey"></td>
3001           <td></td>
3002           <td class="paramtype">int&#160;</td>
3003           <td class="paramname"><em>threadId</em>&#160;</td>
3004         </tr>
3005         <tr>
3006           <td></td>
3007           <td>)</td>
3008           <td></td><td></td>
3009         </tr>
3010       </table>
3011 </div><div class="memdoc">
3013 <p>Undo max pooling. </p>
3014 <dl class="params"><dt>Parameters</dt><dd>
3015   <table class="params">
3016     <tr><td class="paramdir">[out]</td><td class="paramname">prevDelta</td><td>Previous layer delta </td></tr>
3017     <tr><td class="paramdir">[in]</td><td class="paramname">maxIndex</td><td>Max feature map value indices of the current layer </td></tr>
3018     <tr><td class="paramdir">[in]</td><td class="paramname">delta</td><td>Current layer delta </td></tr>
3019     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension of the current layer feature map </td></tr>
3020     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
3021     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
3022   </table>
3023   </dd>
3024 </dl>
3025 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3027 </div>
3028 </div>
3029 <a class="anchor" id="ga47ba59c5e11f31931e3fae5717b93450"></a>
3030 <div class="memitem">
3031 <div class="memproto">
3032       <table class="memname">
3033         <tr>
3034           <td class="memname">int timlUtilUndoMeanPooling </td>
3035           <td>(</td>
3036           <td class="paramtype">float *&#160;</td>
3037           <td class="paramname"><em>prevDelta</em>, </td>
3038         </tr>
3039         <tr>
3040           <td class="paramkey"></td>
3041           <td></td>
3042           <td class="paramtype">float *&#160;</td>
3043           <td class="paramname"><em>delta</em>, </td>
3044         </tr>
3045         <tr>
3046           <td class="paramkey"></td>
3047           <td></td>
3048           <td class="paramtype">int&#160;</td>
3049           <td class="paramname"><em>row</em>, </td>
3050         </tr>
3051         <tr>
3052           <td class="paramkey"></td>
3053           <td></td>
3054           <td class="paramtype">int&#160;</td>
3055           <td class="paramname"><em>col</em>, </td>
3056         </tr>
3057         <tr>
3058           <td class="paramkey"></td>
3059           <td></td>
3060           <td class="paramtype">int&#160;</td>
3061           <td class="paramname"><em>channel</em>, </td>
3062         </tr>
3063         <tr>
3064           <td class="paramkey"></td>
3065           <td></td>
3066           <td class="paramtype">int&#160;</td>
3067           <td class="paramname"><em>prevRow</em>, </td>
3068         </tr>
3069         <tr>
3070           <td class="paramkey"></td>
3071           <td></td>
3072           <td class="paramtype">int&#160;</td>
3073           <td class="paramname"><em>prevCol</em>, </td>
3074         </tr>
3075         <tr>
3076           <td class="paramkey"></td>
3077           <td></td>
3078           <td class="paramtype">int&#160;</td>
3079           <td class="paramname"><em>scaleRow</em>, </td>
3080         </tr>
3081         <tr>
3082           <td class="paramkey"></td>
3083           <td></td>
3084           <td class="paramtype">int&#160;</td>
3085           <td class="paramname"><em>scaleCol</em>, </td>
3086         </tr>
3087         <tr>
3088           <td class="paramkey"></td>
3089           <td></td>
3090           <td class="paramtype">int&#160;</td>
3091           <td class="paramname"><em>padUp</em>, </td>
3092         </tr>
3093         <tr>
3094           <td class="paramkey"></td>
3095           <td></td>
3096           <td class="paramtype">int&#160;</td>
3097           <td class="paramname"><em>padLeft</em>, </td>
3098         </tr>
3099         <tr>
3100           <td class="paramkey"></td>
3101           <td></td>
3102           <td class="paramtype">int&#160;</td>
3103           <td class="paramname"><em>strideX</em>, </td>
3104         </tr>
3105         <tr>
3106           <td class="paramkey"></td>
3107           <td></td>
3108           <td class="paramtype">int&#160;</td>
3109           <td class="paramname"><em>strideY</em>, </td>
3110         </tr>
3111         <tr>
3112           <td class="paramkey"></td>
3113           <td></td>
3114           <td class="paramtype">int&#160;</td>
3115           <td class="paramname"><em>deviceId</em>, </td>
3116         </tr>
3117         <tr>
3118           <td class="paramkey"></td>
3119           <td></td>
3120           <td class="paramtype">int&#160;</td>
3121           <td class="paramname"><em>threadId</em>&#160;</td>
3122         </tr>
3123         <tr>
3124           <td></td>
3125           <td>)</td>
3126           <td></td><td></td>
3127         </tr>
3128       </table>
3129 </div><div class="memdoc">
3131 <p>Undo mean pooling. </p>
3132 <dl class="params"><dt>Parameters</dt><dd>
3133   <table class="params">
3134     <tr><td class="paramdir">[out]</td><td class="paramname">prevDelta</td><td>Previous layer delta </td></tr>
3135     <tr><td class="paramdir">[in]</td><td class="paramname">delta</td><td>Current feature map delta </td></tr>
3136     <tr><td class="paramdir">[in]</td><td class="paramname">row</td><td>Current feature map row </td></tr>
3137     <tr><td class="paramdir">[in]</td><td class="paramname">col</td><td>Current feature map col </td></tr>
3138     <tr><td class="paramdir">[in]</td><td class="paramname">channel</td><td>Current feature map channel </td></tr>
3139     <tr><td class="paramdir">[in]</td><td class="paramname">prevRow</td><td>Previous feature map row </td></tr>
3140     <tr><td class="paramdir">[in]</td><td class="paramname">prevCol</td><td>Previous feature map col </td></tr>
3141     <tr><td class="paramdir">[in]</td><td class="paramname">scaleRow</td><td>Scaling window row size </td></tr>
3142     <tr><td class="paramdir">[in]</td><td class="paramname">scaleCol</td><td>Scaling window col size </td></tr>
3143     <tr><td class="paramdir">[in]</td><td class="paramname">padUp</td><td>Upper border padding for the previous feature map </td></tr>
3144     <tr><td class="paramdir">[in]</td><td class="paramname">padLeft</td><td>Left border padding for the previous feature map </td></tr>
3145     <tr><td class="paramdir">[in]</td><td class="paramname">strideX</td><td>Window stride in x direction </td></tr>
3146     <tr><td class="paramdir">[in]</td><td class="paramname">strideY</td><td>Window stride in y direction </td></tr>
3147     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
3148     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
3149   </table>
3150   </dd>
3151 </dl>
3152 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3154 </div>
3155 </div>
3156 <a class="anchor" id="ga7e53789a132ed94665d66a10dd9ff76c"></a>
3157 <div class="memitem">
3158 <div class="memproto">
3159       <table class="memname">
3160         <tr>
3161           <td class="memname">int timlUtilUnmasking </td>
3162           <td>(</td>
3163           <td class="paramtype">float *&#160;</td>
3164           <td class="paramname"><em>inputDelta</em>, </td>
3165         </tr>
3166         <tr>
3167           <td class="paramkey"></td>
3168           <td></td>
3169           <td class="paramtype">float *&#160;</td>
3170           <td class="paramname"><em>outputDelta</em>, </td>
3171         </tr>
3172         <tr>
3173           <td class="paramkey"></td>
3174           <td></td>
3175           <td class="paramtype">int *&#160;</td>
3176           <td class="paramname"><em>mask</em>, </td>
3177         </tr>
3178         <tr>
3179           <td class="paramkey"></td>
3180           <td></td>
3181           <td class="paramtype">int&#160;</td>
3182           <td class="paramname"><em>dim</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>prob</em>, </td>
3189         </tr>
3190         <tr>
3191           <td class="paramkey"></td>
3192           <td></td>
3193           <td class="paramtype">int&#160;</td>
3194           <td class="paramname"><em>deviceId</em>, </td>
3195         </tr>
3196         <tr>
3197           <td class="paramkey"></td>
3198           <td></td>
3199           <td class="paramtype">int&#160;</td>
3200           <td class="paramname"><em>threadId</em>&#160;</td>
3201         </tr>
3202         <tr>
3203           <td></td>
3204           <td>)</td>
3205           <td></td><td></td>
3206         </tr>
3207       </table>
3208 </div><div class="memdoc">
3210 <p>Masking feature maps. </p>
3211 <dl class="params"><dt>Parameters</dt><dd>
3212   <table class="params">
3213     <tr><td class="paramdir">[in]</td><td class="paramname">inputDelta</td><td>Current feature map delta </td></tr>
3214     <tr><td class="paramdir">[out]</td><td class="paramname">outputDelta</td><td>Previous feature map delta </td></tr>
3215     <tr><td class="paramdir">[in]</td><td class="paramname">mask</td><td>Masking vector </td></tr>
3216     <tr><td class="paramdir">[in]</td><td class="paramname">dim</td><td>Dimension of the masking vector </td></tr>
3217     <tr><td class="paramdir">[in]</td><td class="paramname">prob</td><td>Dropout probability </td></tr>
3218     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
3219     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
3220   </table>
3221   </dd>
3222 </dl>
3223 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3225 </div>
3226 </div>
3227 <a class="anchor" id="ga80375ed4d8c895a5373c0ea5bea7c90c"></a>
3228 <div class="memitem">
3229 <div class="memproto">
3230       <table class="memname">
3231         <tr>
3232           <td class="memname">float timlUtilVectorMaxFloat </td>
3233           <td>(</td>
3234           <td class="paramtype">float *&#160;</td>
3235           <td class="paramname"><em>x</em>, </td>
3236         </tr>
3237         <tr>
3238           <td class="paramkey"></td>
3239           <td></td>
3240           <td class="paramtype">int&#160;</td>
3241           <td class="paramname"><em>n</em>, </td>
3242         </tr>
3243         <tr>
3244           <td class="paramkey"></td>
3245           <td></td>
3246           <td class="paramtype">int&#160;</td>
3247           <td class="paramname"><em>inc</em>&#160;</td>
3248         </tr>
3249         <tr>
3250           <td></td>
3251           <td>)</td>
3252           <td></td><td></td>
3253         </tr>
3254       </table>
3255 </div><div class="memdoc">
3257 <p>Return the max value in the array. </p>
3258 <dl class="params"><dt>Parameters</dt><dd>
3259   <table class="params">
3260     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input array </td></tr>
3261     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
3262     <tr><td class="paramdir">[in]</td><td class="paramname">inc</td><td>Increment </td></tr>
3263   </table>
3264   </dd>
3265 </dl>
3266 <dl class="section return"><dt>Returns</dt><dd>Max value </dd></dl>
3268 </div>
3269 </div>
3270 <a class="anchor" id="ga2e09d42235ce01dc8d951cac92ccce28"></a>
3271 <div class="memitem">
3272 <div class="memproto">
3273       <table class="memname">
3274         <tr>
3275           <td class="memname">int timlUtilVectorMaxIndexFloat </td>
3276           <td>(</td>
3277           <td class="paramtype">float *&#160;</td>
3278           <td class="paramname"><em>x</em>, </td>
3279         </tr>
3280         <tr>
3281           <td class="paramkey"></td>
3282           <td></td>
3283           <td class="paramtype">int&#160;</td>
3284           <td class="paramname"><em>n</em>, </td>
3285         </tr>
3286         <tr>
3287           <td class="paramkey"></td>
3288           <td></td>
3289           <td class="paramtype">int&#160;</td>
3290           <td class="paramname"><em>inc</em>&#160;</td>
3291         </tr>
3292         <tr>
3293           <td></td>
3294           <td>)</td>
3295           <td></td><td></td>
3296         </tr>
3297       </table>
3298 </div><div class="memdoc">
3300 <p>Return the max value index in the array. </p>
3301 <dl class="params"><dt>Parameters</dt><dd>
3302   <table class="params">
3303     <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Input array </td></tr>
3304     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
3305     <tr><td class="paramdir">[in]</td><td class="paramname">inc</td><td>Increment </td></tr>
3306   </table>
3307   </dd>
3308 </dl>
3309 <dl class="section return"><dt>Returns</dt><dd>Max value index </dd></dl>
3311 </div>
3312 </div>
3313 <a class="anchor" id="ga4c8737cc28dfcafb340a06869cb06c6d"></a>
3314 <div class="memitem">
3315 <div class="memproto">
3316       <table class="memname">
3317         <tr>
3318           <td class="memname">int timlUtilVectorResetFloat </td>
3319           <td>(</td>
3320           <td class="paramtype">float *&#160;</td>
3321           <td class="paramname"><em>a</em>, </td>
3322         </tr>
3323         <tr>
3324           <td class="paramkey"></td>
3325           <td></td>
3326           <td class="paramtype">int&#160;</td>
3327           <td class="paramname"><em>m</em>, </td>
3328         </tr>
3329         <tr>
3330           <td class="paramkey"></td>
3331           <td></td>
3332           <td class="paramtype">float&#160;</td>
3333           <td class="paramname"><em>val</em>, </td>
3334         </tr>
3335         <tr>
3336           <td class="paramkey"></td>
3337           <td></td>
3338           <td class="paramtype">int&#160;</td>
3339           <td class="paramname"><em>deviceId</em>, </td>
3340         </tr>
3341         <tr>
3342           <td class="paramkey"></td>
3343           <td></td>
3344           <td class="paramtype">int&#160;</td>
3345           <td class="paramname"><em>threadId</em>&#160;</td>
3346         </tr>
3347         <tr>
3348           <td></td>
3349           <td>)</td>
3350           <td></td><td></td>
3351         </tr>
3352       </table>
3353 </div><div class="memdoc">
3355 <p>Reset a float vector. </p>
3356 <dl class="params"><dt>Parameters</dt><dd>
3357   <table class="params">
3358     <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>Vector </td></tr>
3359     <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>Vector size </td></tr>
3360     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Value </td></tr>
3361     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
3362     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
3363   </table>
3364   </dd>
3365 </dl>
3366 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3368 </div>
3369 </div>
3370 <a class="anchor" id="ga105ed091f1ed14bc4542117639799727"></a>
3371 <div class="memitem">
3372 <div class="memproto">
3373       <table class="memname">
3374         <tr>
3375           <td class="memname">int timlUtilVectorResetInt </td>
3376           <td>(</td>
3377           <td class="paramtype">int *&#160;</td>
3378           <td class="paramname"><em>a</em>, </td>
3379         </tr>
3380         <tr>
3381           <td class="paramkey"></td>
3382           <td></td>
3383           <td class="paramtype">int&#160;</td>
3384           <td class="paramname"><em>m</em>, </td>
3385         </tr>
3386         <tr>
3387           <td class="paramkey"></td>
3388           <td></td>
3389           <td class="paramtype">int&#160;</td>
3390           <td class="paramname"><em>val</em>, </td>
3391         </tr>
3392         <tr>
3393           <td class="paramkey"></td>
3394           <td></td>
3395           <td class="paramtype">int&#160;</td>
3396           <td class="paramname"><em>deviceId</em>, </td>
3397         </tr>
3398         <tr>
3399           <td class="paramkey"></td>
3400           <td></td>
3401           <td class="paramtype">int&#160;</td>
3402           <td class="paramname"><em>threadId</em>&#160;</td>
3403         </tr>
3404         <tr>
3405           <td></td>
3406           <td>)</td>
3407           <td></td><td></td>
3408         </tr>
3409       </table>
3410 </div><div class="memdoc">
3412 <p>Reset an int vector. </p>
3413 <dl class="params"><dt>Parameters</dt><dd>
3414   <table class="params">
3415     <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>Vector </td></tr>
3416     <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>Vector size </td></tr>
3417     <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Value </td></tr>
3418     <tr><td class="paramdir">[in]</td><td class="paramname">deviceId</td><td>Device id </td></tr>
3419     <tr><td class="paramdir">[in]</td><td class="paramname">threadId</td><td>Thread id </td></tr>
3420   </table>
3421   </dd>
3422 </dl>
3423 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3425 </div>
3426 </div>
3427 <a class="anchor" id="gadbfd41f459cef267ff705fbed1a684de"></a>
3428 <div class="memitem">
3429 <div class="memproto">
3430       <table class="memname">
3431         <tr>
3432           <td class="memname">int timlUtilVectorSortFloat </td>
3433           <td>(</td>
3434           <td class="paramtype">float *&#160;</td>
3435           <td class="paramname"><em>a</em>, </td>
3436         </tr>
3437         <tr>
3438           <td class="paramkey"></td>
3439           <td></td>
3440           <td class="paramtype">int&#160;</td>
3441           <td class="paramname"><em>n</em>&#160;</td>
3442         </tr>
3443         <tr>
3444           <td></td>
3445           <td>)</td>
3446           <td></td><td></td>
3447         </tr>
3448       </table>
3449 </div><div class="memdoc">
3451 <p>Sort an array in descending order. </p>
3452 <dl class="params"><dt>Parameters</dt><dd>
3453   <table class="params">
3454     <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>Array </td></tr>
3455     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
3456   </table>
3457   </dd>
3458 </dl>
3459 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3461 </div>
3462 </div>
3463 <a class="anchor" id="ga7adedb39838d1a724329c2f05e70d2bc"></a>
3464 <div class="memitem">
3465 <div class="memproto">
3466       <table class="memname">
3467         <tr>
3468           <td class="memname">int timlUtilVectorSortIndexFloat </td>
3469           <td>(</td>
3470           <td class="paramtype">float *&#160;</td>
3471           <td class="paramname"><em>a</em>, </td>
3472         </tr>
3473         <tr>
3474           <td class="paramkey"></td>
3475           <td></td>
3476           <td class="paramtype">int *&#160;</td>
3477           <td class="paramname"><em>index</em>, </td>
3478         </tr>
3479         <tr>
3480           <td class="paramkey"></td>
3481           <td></td>
3482           <td class="paramtype">int&#160;</td>
3483           <td class="paramname"><em>n</em>&#160;</td>
3484         </tr>
3485         <tr>
3486           <td></td>
3487           <td>)</td>
3488           <td></td><td></td>
3489         </tr>
3490       </table>
3491 </div><div class="memdoc">
3493 <p>Sort an array in descending order and return the indices of the original elements in the sorted array. </p>
3494 <dl class="params"><dt>Parameters</dt><dd>
3495   <table class="params">
3496     <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Array </td></tr>
3497     <tr><td class="paramdir">[out]</td><td class="paramname">index</td><td>Sorted index </td></tr>
3498     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Array size </td></tr>
3499   </table>
3500   </dd>
3501 </dl>
3502 <dl class="section return"><dt>Returns</dt><dd>Error code </dd></dl>
3504 </div>
3505 </div>
3506 <a class="anchor" id="ga50c739176cce0504f24f414d1abe03de"></a>
3507 <div class="memitem">
3508 <div class="memproto">
3509       <table class="memname">
3510         <tr>
3511           <td class="memname">float timlUtilVectorSumFloat </td>
3512           <td>(</td>
3513           <td class="paramtype">float *&#160;</td>
3514           <td class="paramname"><em>a</em>, </td>
3515         </tr>
3516         <tr>
3517           <td class="paramkey"></td>
3518           <td></td>
3519           <td class="paramtype">int&#160;</td>
3520           <td class="paramname"><em>n</em>&#160;</td>
3521         </tr>
3522         <tr>
3523           <td></td>
3524           <td>)</td>
3525           <td></td><td></td>
3526         </tr>
3527       </table>
3528 </div><div class="memdoc">
3530 <p>Calculate the sum of a float vector. </p>
3531 <dl class="params"><dt>Parameters</dt><dd>
3532   <table class="params">
3533     <tr><td class="paramdir">[in,out]</td><td class="paramname">a</td><td>Vector </td></tr>
3534     <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>Vector size </td></tr>
3535   </table>
3536   </dd>
3537 </dl>
3538 <dl class="section return"><dt>Returns</dt><dd>Sum </dd></dl>
3540 </div>
3541 </div>
3542 </div><!-- contents -->
3543 <!-- start footer part -->
3544 <hr class="footer"/><address class="footer"><small>
3545 Generated on Fri Mar 20 2015 11:26:08 for TIML by &#160;<a href="http://www.doxygen.org/index.html">
3546 <img class="footer" src="doxygen.png" alt="doxygen"/>
3547 </a> 1.8.6
3548 </small></address>
3549 </body>
3550 </html>