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 Page</span></a></li>
40 <li><a href="pages.html"><span>Related Pages</span></a></li>
41 <li><a href="modules.html"><span>Modules</span></a></li>
42 <li><a href="annotated.html"><span>Data 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </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> |
80 <a href="#define-members">Macros</a> |
81 <a href="#enum-members">Enumerations</a> |
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  </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"> </td></tr>
95 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </td></tr>
97 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </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"> </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 </td><td class="memItemRight" valign="bottom"><b>TIML_UTIL_MAX_STR</b>   100</td></tr>
104 <tr class="separator:gaa800319c343d51dcc2ba62246ad298af"><td class="memSeparator" colspan="2"> </td></tr>
105 <tr class="memitem:ga775af8da42e4c88c8c19afb00b273654"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga775af8da42e4c88c8c19afb00b273654"></a>
106 #define </td><td class="memItemRight" valign="bottom"><b>TIML_UTIL_PI</b>   3.14159265358979323846</td></tr>
107 <tr class="separator:ga775af8da42e4c88c8c19afb00b273654"><td class="memSeparator" colspan="2"> </td></tr>
108 <tr class="memitem:ga070b6e6e97816b6fcfd3dee857484693"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga070b6e6e97816b6fcfd3dee857484693"></a>
109 #define </td><td class="memItemRight" valign="bottom"><b>ERROR_UTIL_OFFSET</b>   3000</td></tr>
110 <tr class="separator:ga070b6e6e97816b6fcfd3dee857484693"><td class="memSeparator" colspan="2"> </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  </td><td class="memItemRight" valign="bottom"><b>timlUtilError</b> { <br/>
115   <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   <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   <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   <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   <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   <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   <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"> </td></tr>
151 <tr class="memitem:gad605701ea044242abd13eac42194bb29"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>timlUtilActivationType</b> { <br/>
152   <b>Util_Sigmoid</b>,
153 <b>Util_Softmax</b>,
154 <b>Util_Softplus</b>,
155 <b>Util_Relu</b>,
156 <br/>
157   <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"> </td></tr>
163 <tr class="memitem:ga3bfdd4453df8afd1addfe23489d86f09"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
167 <tr class="memitem:ga4f914372aedf08ba56b8158727b558d8"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
171 <tr class="memitem:ga8e44b2a87636024736da04ae5a53c1c9"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
176 <tr class="memitem:ga62247c3acaa170e3a75f9887ec21106f"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
181 <tr class="memitem:ga898df2504b88d834c373082f2aa9f537"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
185 <tr class="memitem:ga5405b012e02035f4d864e0e38d516764"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
190 <tr class="memitem:ga24b8d631aa6d95132123f8ca8897b7dd"><td class="memItemLeft" align="right" valign="top">enum  </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"> </td></tr>
196 <tr class="memitem:gacf64b66c7adbbbf408401e419d44c9f7"><td class="memItemLeft" align="right" valign="top">enum  </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"> </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 </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"> </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"> </td></tr>
207 <tr class="memitem:ga518889e2bee0ffe2a0bab1a2a509afeb"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
210 <tr class="memitem:gad332b3fc9cca905cb073bb950c27d9a3"><td class="memItemLeft" align="right" valign="top">long </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"> </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"> </td></tr>
213 <tr class="memitem:ga7b7056163efcce74e844159113ad7670"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
216 <tr class="memitem:ga33ca8bcccfd95381c34a7822dd3d5e03"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
219 <tr class="memitem:gab0d103f2a7348ee3f7be2468cb06a374"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
222 <tr class="memitem:ga33f6226602545ae82fb9eb9dc4e2d0f4"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
225 <tr class="memitem:ga032c2a840544aee29ac1b36494bdfc6b"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
228 <tr class="memitem:gad27678810eff89cf1f813631d762b298"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
231 <tr class="memitem:gafdc65cff28dd8132ee12d7e4fff6b344"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
234 <tr class="memitem:ga825fca95dc612cb50cca8d3b42fce451"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
237 <tr class="memitem:ga76c854493ff6e686e70caf0e0f330694"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
240 <tr class="memitem:ga823c056e72e3c9738ba07232a759dd93"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
243 <tr class="memitem:ga5bed0ba528735cfa363c12de22b30fae"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
246 <tr class="memitem:ga1a6a5d975df7c8d4ef7ca184cbb98293"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
249 <tr class="memitem:ga6e186bf4e96a71fd1bc88aa79a7fd7f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structtimlUtilImage.html">timlUtilImage</a> </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"> </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"> </td></tr>
252 <tr class="memitem:ga4e3a2beb9a301e6c71f5c1df09d6099e"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
255 <tr class="memitem:ga3cb2f6d77b727af3d819f75c6918c327"><td class="memItemLeft" align="right" valign="top">char ** </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"> </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"> </td></tr>
258 <tr class="memitem:ga365f20b5c810059087f2d24964ec7fdd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga365f20b5c810059087f2d24964ec7fdd"></a>
259 void </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"> </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"> </td></tr>
262 <tr class="memitem:ga3cd3b5eb20373a30eb06e1db3f27e105"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3cd3b5eb20373a30eb06e1db3f27e105"></a>
263 void </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"> </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"> </td></tr>
266 <tr class="memitem:ga7f200e1630837f410457f12228a3f8e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f200e1630837f410457f12228a3f8e3"></a>
267 void </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"> </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"> </td></tr>
270 <tr class="memitem:ga916c002835a135384e25aa4eabe8fece"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga916c002835a135384e25aa4eabe8fece"></a>
271 void </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"> </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"> </td></tr>
274 <tr class="memitem:gace6d95139cce2b66d468b65916d92103"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace6d95139cce2b66d468b65916d92103"></a>
275 void </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"> </td><td class="mdescRight">Float vector addition Y = alpha * X + Y. <br/></td></tr>
277 <tr class="separator:gace6d95139cce2b66d468b65916d92103"><td class="memSeparator" colspan="2"> </td></tr>
278 <tr class="memitem:ga67a8b8821e100476544c39ebe3f7d88a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga67a8b8821e100476544c39ebe3f7d88a"></a>
279 void </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"> </td><td class="mdescRight">Double vector addition Y = alpha * X + Y. <br/></td></tr>
281 <tr class="separator:ga67a8b8821e100476544c39ebe3f7d88a"><td class="memSeparator" colspan="2"> </td></tr>
282 <tr class="memitem:gae2c99812143fb0697fad81b04c62545d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2c99812143fb0697fad81b04c62545d"></a>
283 void </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"> </td><td class="mdescRight">Float vector copy Y = X. <br/></td></tr>
285 <tr class="separator:gae2c99812143fb0697fad81b04c62545d"><td class="memSeparator" colspan="2"> </td></tr>
286 <tr class="memitem:ga242d2f4bb422b71fa05aec4b8568bdc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga242d2f4bb422b71fa05aec4b8568bdc4"></a>
287 void </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"> </td><td class="mdescRight">Double vector copy Y = X. <br/></td></tr>
289 <tr class="separator:ga242d2f4bb422b71fa05aec4b8568bdc4"><td class="memSeparator" colspan="2"> </td></tr>
290 <tr class="memitem:gacdd02957d16d4ba4951f35c0e7fc5b30"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacdd02957d16d4ba4951f35c0e7fc5b30"></a>
291 void </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"> </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"> </td></tr>
294 <tr class="memitem:ga22f1d9ebb3a5745c3583860b42c8590a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga22f1d9ebb3a5745c3583860b42c8590a"></a>
295 void </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"> </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"> </td></tr>
298 <tr class="memitem:ga336682df712eb1342b16a00731b55e2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga336682df712eb1342b16a00731b55e2c"></a>
299 void </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"> </td><td class="mdescRight">Double vector scaling x = alpha * x. <br/></td></tr>
301 <tr class="separator:ga336682df712eb1342b16a00731b55e2c"><td class="memSeparator" colspan="2"> </td></tr>
302 <tr class="memitem:ga7f2ccf0e4a749d484cd40b64d14a0bdb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f2ccf0e4a749d484cd40b64d14a0bdb"></a>
303 void </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"> </td><td class="mdescRight">Float vector scaling x = alpha * x. <br/></td></tr>
305 <tr class="separator:ga7f2ccf0e4a749d484cd40b64d14a0bdb"><td class="memSeparator" colspan="2"> </td></tr>
306 <tr class="memitem:ga4c8737cc28dfcafb340a06869cb06c6d"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
309 <tr class="memitem:ga105ed091f1ed14bc4542117639799727"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
312 <tr class="memitem:ga50c739176cce0504f24f414d1abe03de"><td class="memItemLeft" align="right" valign="top">float </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"> </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"> </td></tr>
315 <tr class="memitem:gadbfd41f459cef267ff705fbed1a684de"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
318 <tr class="memitem:ga7adedb39838d1a724329c2f05e70d2bc"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
321 <tr class="memitem:ga80375ed4d8c895a5373c0ea5bea7c90c"><td class="memItemLeft" align="right" valign="top">float </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"> </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"> </td></tr>
324 <tr class="memitem:ga2e09d42235ce01dc8d951cac92ccce28"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
327 <tr class="memitem:ga4cbc9e168ae6fe4be792e5700078fbfd"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
330 <tr class="memitem:ga158d5bed50c9d1aa04f3437ba4e4746c"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Subtract operation. <a href="#ga158d5bed50c9d1aa04f3437ba4e4746c">More...</a><br/></td></tr>
332 <tr class="separator:ga158d5bed50c9d1aa04f3437ba4e4746c"><td class="memSeparator" colspan="2"> </td></tr>
333 <tr class="memitem:ga0e3ab1684d55ae10ec96b1b7a58c2d0f"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Sigmoid. <a href="#ga0e3ab1684d55ae10ec96b1b7a58c2d0f">More...</a><br/></td></tr>
335 <tr class="separator:ga0e3ab1684d55ae10ec96b1b7a58c2d0f"><td class="memSeparator" colspan="2"> </td></tr>
336 <tr class="memitem:gac4ce5d2a827d4d0bddb092604dc22555"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Sigmoid derivative. <a href="#gac4ce5d2a827d4d0bddb092604dc22555">More...</a><br/></td></tr>
338 <tr class="separator:gac4ce5d2a827d4d0bddb092604dc22555"><td class="memSeparator" colspan="2"> </td></tr>
339 <tr class="memitem:gaf61206d55b45c89e3382ed9684ef2c79"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
342 <tr class="memitem:gadcb6e562a1ddebb9589dc326c6e85db3"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
345 <tr class="memitem:ga680fe5b84f1ce4712c74fc9c01b5dc82"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Tanh derivative. <a href="#ga680fe5b84f1ce4712c74fc9c01b5dc82">More...</a><br/></td></tr>
347 <tr class="separator:ga680fe5b84f1ce4712c74fc9c01b5dc82"><td class="memSeparator" colspan="2"> </td></tr>
348 <tr class="memitem:gac8848759ff2638e9b54beef8f82748ae"><td class="memItemLeft" align="right" valign="top">float </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"> </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"> </td></tr>
351 <tr class="memitem:ga8e17bdb2dd7b9e8f25d1a93c8d470a97"><td class="memItemLeft" align="right" valign="top">float </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"> </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"> </td></tr>
354 <tr class="memitem:ga223537dde56b8c21a9455ff8a635f71f"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Softmax function. <a href="#ga223537dde56b8c21a9455ff8a635f71f">More...</a><br/></td></tr>
356 <tr class="separator:ga223537dde56b8c21a9455ff8a635f71f"><td class="memSeparator" colspan="2"> </td></tr>
357 <tr class="memitem:ga64e5197e9d131870e97cd510b3f499ac"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
360 <tr class="memitem:ga6bc3609f73f6674134821cc002d7081f"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
363 <tr class="memitem:gac9523e1013f8e3853568eb2e67b54a58"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Max pooling. <a href="#gac9523e1013f8e3853568eb2e67b54a58">More...</a><br/></td></tr>
365 <tr class="separator:gac9523e1013f8e3853568eb2e67b54a58"><td class="memSeparator" colspan="2"> </td></tr>
366 <tr class="memitem:gae073107f6b111717bac95417ff80c85c"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
369 <tr class="memitem:ga8d4338ebfb64ecb3ec88094aebd65e40"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Mean pooling. <a href="#ga8d4338ebfb64ecb3ec88094aebd65e40">More...</a><br/></td></tr>
371 <tr class="separator:ga8d4338ebfb64ecb3ec88094aebd65e40"><td class="memSeparator" colspan="2"> </td></tr>
372 <tr class="memitem:ga47ba59c5e11f31931e3fae5717b93450"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
375 <tr class="memitem:ga1d68b304f7ad43899cf5a2762a0a49fc"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
378 <tr class="memitem:ga684bafa4cb678d451ec1aa5127007470"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
381 <tr class="memitem:ga4b2ab842a2212e924deb9f60bf1b703e"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
384 <tr class="memitem:ga7e53789a132ed94665d66a10dd9ff76c"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
387 <tr class="memitem:ga26bb1805bd3475719324718c12cd5a0f"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">Tanh. <a href="#ga26bb1805bd3475719324718c12cd5a0f">More...</a><br/></td></tr>
389 <tr class="separator:ga26bb1805bd3475719324718c12cd5a0f"><td class="memSeparator" colspan="2"> </td></tr>
390 <tr class="memitem:ga432784c912b542452d7236cf72d184fe"><td class="memItemLeft" align="right" valign="top">int </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"> </td><td class="mdescRight">memory allocation <a href="#ga432784c912b542452d7236cf72d184fe">More...</a><br/></td></tr>
392 <tr class="separator:ga432784c912b542452d7236cf72d184fe"><td class="memSeparator" colspan="2"> </td></tr>
393 <tr class="memitem:ga234f6573583aca626c49e10b1f5b57d2"><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Free pointer. <a href="#ga234f6573583aca626c49e10b1f5b57d2">More...</a><br/></td></tr>
395 <tr class="separator:ga234f6573583aca626c49e10b1f5b57d2"><td class="memSeparator" colspan="2"> </td></tr>
396 <tr class="memitem:ga16f8b9181ff6ce6d4b1f655a5eb4738e"><td class="memItemLeft" align="right" valign="top">uint32_t </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"> </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"> </td></tr>
399 <tr class="memitem:ga71557afaf0c3d8359920380558dd92fb"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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 * </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 </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 </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 * </td>
522 <td class="paramname"><em>trueLabel</em> </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 * </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 * </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 * </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 </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 </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 </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 </td>
590 <td class="paramname"><em>bCol</em> </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 * </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 * </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 * </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 </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 </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 </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 </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 </td>
667 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 </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 </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 </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 </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 </td>
745 <td class="paramname"><em>threadId</em> </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td>
847 <td class="paramname"><em>type</em> </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 * </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 * </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 * </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 </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 </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 </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 </td>
924 <td class="paramname"><em>bCol</em> </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 * </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 * </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 * </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 </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 </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 </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 </td>
995 <td class="paramname"><em>bCol</em> </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 </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 </td>
1036 <td class="paramname"><em>end</em> </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 * </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 * </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 </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) </td>
1083 <td class="paramname"><em>func</em> </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 * </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 * </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 * </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 </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 </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 </td>
1145 <td class="paramname"><em>threadId</em> </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 * </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 </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 </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 * </td>
1197 <td class="paramname"><em>fp</em> </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 * </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 * </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 </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 </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 * </td>
1271 <td class="paramname"><em>fp</em> </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 * </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </td>
1363 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </td>
1474 <td class="paramname"><em>threadId</em> </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 ** </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 </td>
1521 <td class="paramname"><em>size</em> </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 * </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 * </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 * </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 * </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 </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 </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 </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 </td>
1593 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td>
1725 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td>
1854 <td class="paramname"><em>threadId</em> </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 * </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 </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 </td>
1909 <td class="paramname"><em>n</em> </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 * </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 </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 </td>
1952 <td class="paramname"><em>n</em> </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 * </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 </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 </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 </td>
2001 <td class="paramname"><em>b</em> </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 </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 </td>
2039 <td class="paramname"><em>b</em> </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 * </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 </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 </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 </td>
2087 <td class="paramname"><em>std</em> </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 * </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 </td>
2125 <td class="paramname"><em>n</em> </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 * </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> * </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> * </td>
2167 <td class="paramname"><em>testing</em> </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 * </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 * </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 </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 </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 </td>
2221 <td class="paramname"><em>channel</em> </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 * </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 * </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> * </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> * </td>
2291 <td class="paramname"><em>testing</em> </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 * </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 * </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 </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 </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 </td>
2346 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </td>
2403 <td class="paramname"><em>threadId</em> </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 </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 * </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 * </td>
2467 <td class="paramname"><em>imageNum</em> </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 * </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 * </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 </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 </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 </td>
2521 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </td>
2578 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </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 </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 </td>
2647 <td class="paramname"><em>threadId</em> </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 * </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 </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 </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 </td>
2700 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </td>
2756 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </td>
2813 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 * </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> </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 </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 </td>
2930 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 </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 </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 </td>
3003 <td class="paramname"><em>threadId</em> </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 * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </td>
3121 <td class="paramname"><em>threadId</em> </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 * </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 * </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 * </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 </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 </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 </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 </td>
3200 <td class="paramname"><em>threadId</em> </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 * </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 </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 </td>
3247 <td class="paramname"><em>inc</em> </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 * </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 </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 </td>
3290 <td class="paramname"><em>inc</em> </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 * </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 </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 </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 </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 </td>
3345 <td class="paramname"><em>threadId</em> </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 * </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 </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 </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 </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 </td>
3402 <td class="paramname"><em>threadId</em> </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 * </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 </td>
3441 <td class="paramname"><em>n</em> </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 * </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 * </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 </td>
3483 <td class="paramname"><em>n</em> </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 * </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 </td>
3520 <td class="paramname"><em>n</em> </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  <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>