ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
cudnn.h
Go to the documentation of this file.
1#if !defined(__CUDNN_H__)
2# define __CUDNN_H__
3
4# include <cstdlib>
5# include <cublas.h>
6
10
11typedef struct cudnnhandle
12{
14
31
33
40
42
48
50
62
64
74
84
96
100
104
110
114
118
128
130
136
138
139float sigmoidFunction(float u)
140{
141 // lookup table of the sigmoid function over u in [-20, 20] with 0.01
142 // resolution (4000 entries)
143 float lookup[4000] = {
144 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
145 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
146 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
147 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
148 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
149 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
150 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
151 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
152 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
153 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
154 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
155 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
156 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
157 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
158 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
159 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
160 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
161 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
162 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
163 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
164 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
165 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
166 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
167 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
168 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
169 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
170 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
171 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
172 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
173 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
174 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
175 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
176 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
177 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
178 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
179 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
180 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
181 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
182 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
183 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
184 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
185 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
186 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
187 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
188 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
189 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
190 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
191 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
192 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
193 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
194 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
195 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
196 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
197 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
198 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
199 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
200 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
201 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
202 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
203 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
204 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
205 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
206 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
207 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
208 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
209 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
210 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
211 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
212 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
213 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
214 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
215 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
216 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
217 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
218 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
219 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
220 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
221 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
222 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
223 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
224 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
225 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
226 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
227 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
228 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
229 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000001, 0.000001,
230 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
231 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
232 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
233 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
234 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
235 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
236 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
237 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
238 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
239 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
240 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
241 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
242 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
243 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001,
244 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
245 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
246 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
247 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
248 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
249 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
250 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
251 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
252 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
253 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
254 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
255 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
256 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
257 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002, 0.000002,
258 0.000002, 0.000002, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
259 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
260 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
261 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
262 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
263 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
264 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
265 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
266 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
267 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
268 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
269 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
270 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
271 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006, 0.000006,
272 0.000006, 0.000006, 0.000006, 0.000006, 0.000017, 0.000017, 0.000017,
273 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
274 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
275 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
276 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
277 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
278 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
279 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
280 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
281 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
282 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
283 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
284 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
285 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017,
286 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000017, 0.000045,
287 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
288 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
289 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
290 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
291 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
292 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
293 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
294 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
295 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
296 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
297 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
298 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
299 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
300 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045, 0.000045,
301 0.000045, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
302 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
303 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
304 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
305 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
306 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
307 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
308 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
309 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
310 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
311 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
312 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
313 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
314 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123, 0.000123,
315 0.000123, 0.000123, 0.000123, 0.000335, 0.000335, 0.000335, 0.000335,
316 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
317 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
318 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
319 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
320 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
321 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
322 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
323 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
324 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
325 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
326 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
327 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
328 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000335,
329 0.000335, 0.000335, 0.000335, 0.000335, 0.000335, 0.000911, 0.000911,
330 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
331 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
332 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
333 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
334 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
335 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
336 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
337 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
338 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
339 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
340 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
341 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
342 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
343 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911, 0.000911,
344 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
345 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
346 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
347 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
348 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
349 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
350 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
351 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
352 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
353 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
354 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
355 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
356 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
357 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473, 0.002473,
358 0.002473, 0.002473, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
359 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
360 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
361 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
362 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
363 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
364 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
365 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
366 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
367 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
368 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
369 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
370 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
371 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693, 0.006693,
372 0.006693, 0.006693, 0.006693, 0.006693, 0.017986, 0.017986, 0.017986,
373 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
374 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
375 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
376 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
377 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
378 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
379 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
380 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
381 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
382 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
383 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
384 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
385 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986,
386 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.017986, 0.047426,
387 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
388 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
389 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
390 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
391 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
392 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
393 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
394 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
395 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
396 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
397 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
398 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
399 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
400 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426, 0.047426,
401 0.047426, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
402 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
403 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
404 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
405 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
406 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
407 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
408 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
409 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
410 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
411 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
412 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
413 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
414 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203, 0.119203,
415 0.119203, 0.119203, 0.119203, 0.268941, 0.268941, 0.268941, 0.268941,
416 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
417 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
418 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
419 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
420 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
421 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
422 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
423 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
424 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
425 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
426 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
427 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
428 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.268941,
429 0.268941, 0.268941, 0.268941, 0.268941, 0.268941, 0.500000, 0.500000,
430 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
431 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
432 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
433 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
434 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
435 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
436 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
437 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
438 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
439 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
440 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
441 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
442 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
443 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000, 0.500000,
444 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
445 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
446 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
447 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
448 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
449 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
450 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
451 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
452 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
453 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
454 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
455 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
456 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
457 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059, 0.731059,
458 0.731059, 0.731059, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
459 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
460 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
461 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
462 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
463 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
464 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
465 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
466 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
467 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
468 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
469 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
470 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
471 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797, 0.880797,
472 0.880797, 0.880797, 0.880797, 0.880797, 0.952574, 0.952574, 0.952574,
473 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
474 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
475 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
476 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
477 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
478 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
479 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
480 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
481 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
482 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
483 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
484 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
485 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574,
486 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.952574, 0.982014,
487 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
488 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
489 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
490 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
491 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
492 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
493 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
494 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
495 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
496 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
497 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
498 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
499 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
500 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014, 0.982014,
501 0.982014, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
502 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
503 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
504 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
505 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
506 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
507 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
508 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
509 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
510 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
511 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
512 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
513 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
514 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307, 0.993307,
515 0.993307, 0.993307, 0.993307, 0.997527, 0.997527, 0.997527, 0.997527,
516 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
517 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
518 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
519 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
520 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
521 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
522 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
523 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
524 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
525 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
526 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
527 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
528 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.997527,
529 0.997527, 0.997527, 0.997527, 0.997527, 0.997527, 0.999089, 0.999089,
530 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
531 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
532 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
533 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
534 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
535 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
536 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
537 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
538 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
539 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
540 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
541 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
542 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
543 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089, 0.999089,
544 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
545 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
546 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
547 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
548 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
549 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
550 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
551 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
552 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
553 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
554 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
555 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
556 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
557 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665, 0.999665,
558 0.999665, 0.999665, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
559 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
560 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
561 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
562 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
563 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
564 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
565 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
566 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
567 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
568 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
569 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
570 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
571 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877, 0.999877,
572 0.999877, 0.999877, 0.999877, 0.999877, 0.999955, 0.999955, 0.999955,
573 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
574 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
575 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
576 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
577 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
578 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
579 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
580 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
581 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
582 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
583 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
584 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
585 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955,
586 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999955, 0.999983,
587 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
588 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
589 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
590 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
591 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
592 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
593 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
594 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
595 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
596 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
597 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
598 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
599 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
600 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983, 0.999983,
601 0.999983, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
602 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
603 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
604 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
605 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
606 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
607 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
608 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
609 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
610 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
611 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
612 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
613 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
614 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994, 0.999994,
615 0.999994, 0.999994, 0.999994, 0.999998, 0.999998, 0.999998, 0.999998,
616 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
617 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
618 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
619 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
620 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
621 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
622 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
623 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
624 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
625 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
626 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
627 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
628 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999998,
629 0.999998, 0.999998, 0.999998, 0.999998, 0.999998, 0.999999, 0.999999,
630 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
631 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
632 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
633 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
634 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
635 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
636 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
637 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
638 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
639 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
640 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
641 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
642 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
643 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999, 0.999999,
644 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
645 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
646 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
647 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
648 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
649 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
650 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
651 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
652 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
653 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
654 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
655 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
656 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
657 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
658 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
659 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
660 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
661 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
662 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
663 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
664 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
665 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
666 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
667 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
668 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
669 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
670 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
671 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
672 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
673 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
674 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
675 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
676 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
677 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
678 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
679 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
680 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
681 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
682 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
683 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
684 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
685 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
686 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
687 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
688 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
689 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
690 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
691 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
692 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
693 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
694 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
695 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
696 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
697 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
698 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
699 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
700 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
701 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
702 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
703 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
704 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
705 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
706 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
707 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
708 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
709 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
710 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
711 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
712 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
713 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
714 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
715 1.000000, 1.000000, 1.000000};
716
717 int index = 0;
718 index = (int)u * 100;
719 index = index + 2000;
720
721 if (index < 0)
722 return 0;
723 else if (index >= 4000)
724 return 1;
725 else
726 return lookup[index];
727}
728
729float dSigmoidFunction(float u)
730{
731 float result;
732 result = sigmoidFunction(u) * (1 - sigmoidFunction(u));
733 return result;
734}
735
736float ReLUFunction(float u)
737{
738 if (u < 0)
739 {
740 return 0.0f;
741 }
742 return u;
743}
744
745float dReLUFunction(float u)
746{
747 if (u < 0)
748 {
749 return 0.0f;
750 }
751 return 1.0f;
752}
753
758
763
769
775
780
782 cudnnTensorDescriptor_t &tensorDesc,
783 cudnnTensorFormat_t format,
784 cudnnDataType_t dataType,
785 int n,
786 int c,
787 int h,
788 int w)
789{
790 tensorDesc.format = format;
791 tensorDesc.dataType = dataType;
792 tensorDesc.n = n;
793 tensorDesc.c = c;
794 tensorDesc.h = h;
795 tensorDesc.w = w;
796
798}
799
801 cudnnFilterDescriptor_t &tensorDesc,
802 cudnnDataType_t dataType,
803 cudnnTensorFormat_t format,
804 int n,
805 int c,
806 int h,
807 int w)
808{
809 tensorDesc.format = format;
810 tensorDesc.dataType = dataType;
811 tensorDesc.n = n;
812 tensorDesc.c = c;
813 tensorDesc.h = h;
814 tensorDesc.w = w;
815
817}
818
821 int pad_h,
822 int pad_w,
823 int u,
824 int v,
825 int dilation_h,
826 int dilation_w,
828 cudnnDataType_t computeType)
829{
830 convDesc.pad_h = pad_h;
831 convDesc.pad_w = pad_w;
832 convDesc.u = u;
833 convDesc.v = v;
834 convDesc.dilation_h = dilation_h;
835 convDesc.dilation_w = dilation_w;
836 convDesc.mode = mode;
837 convDesc.computeType = computeType;
838
840}
841
846 int *n,
847 int *c,
848 int *h,
849 int *w)
850{
851 *h =
852 (xDesc.h + 2 * convDesc.pad_h - convDesc.dilation_h * (wDesc.h - 1) - 1) /
853 convDesc.u +
854 1;
855 *w =
856 (xDesc.w + 2 * convDesc.pad_w - convDesc.dilation_w * (wDesc.w - 1) - 1) /
857 convDesc.v +
858 1;
859
860 *c = wDesc.n;
861 *n = xDesc.n;
862
864}
865
867 cudnnActivationDescriptor_t activationDesc,
869 cudnnNanPropagation_t reluNanOpt,
870 double coef)
871{
873}
874
879
884
890
892 cudnnHandle_t handle,
893 cudnnActivationDescriptor_t activationDesc,
894 const float *alpha,
895 const cudnnTensorDescriptor_t xDesc,
896 const float *x,
897 const float *beta,
898 const cudnnTensorDescriptor_t yDesc,
899 float *y)
900{
901 int i = 0;
902 int limit = 5;
903
904 for (i = 0; i < limit; i++)
905 {
906 y[i] = sigmoidFunction(x[i]);
907 }
909}
910
912 cudnnHandle_t handle,
913 cudnnActivationDescriptor_t activationDesc,
914 const float *alpha,
915 const cudnnTensorDescriptor_t yDesc,
916 const float *y,
917 const cudnnTensorDescriptor_t dyDesc,
918 const float *dy,
919 const cudnnTensorDescriptor_t xDesc,
920 const float *x,
921 const float *beta,
922 const cudnnTensorDescriptor_t dxDesc,
923 float *dx)
924{
925 int contador = 0;
926 for (contador = 0; contador < 5; contador++)
927 {
928 dx[contador] = (y[contador] * (1 - y[contador])) * dy[contador];
929 }
931}
932
934 cudnnHandle_t handle,
935 const void *alpha,
936 const cudnnTensorDescriptor_t aDesc,
937 const void *A,
938 const void *beta,
939 const cudnnTensorDescriptor_t cDesc,
940 void *C)
941{
943}
944
946 const float *data,
947 int *output_rows,
948 int *output_cols,
949 int channels,
950 int height,
951 int width,
952 int block_height,
953 int block_width,
954 int stride = 1,
955 int padding = 0)
956{
957 int output_height = (height + 2 * padding - block_height) / stride + 1;
958 int output_width = (width + 2 * padding - block_width) / stride + 1;
959 int output_size =
960 channels * block_height * block_width * output_height * output_width;
961
962 float *columns = (float *)__ESBMC_alloca(output_size * sizeof(float));
963
964 for (int c = 0; c < channels; c++)
965 {
966 for (int h = 0; h < output_height; h++)
967 {
968 for (int w = 0; w < output_width; w++)
969 {
970 for (int i = 0; i < block_height; i++)
971 {
972 for (int j = 0; j < block_width; j++)
973 {
974 int row = c * block_height * block_width + i * block_width + j;
975 int col = h * output_width + w;
976
977 int y = h * stride + i - padding;
978 int x = w * stride + j - padding;
979
980 // Copy real data if position is inside the image; otherwise it
981 // falls in the padding area
982 if (y >= 0 && y < height && x >= 0 && x < width)
983 {
984 columns[row * output_height * output_width + col] =
985 data[(c * height + y) * width + x];
986 }
987 else
988 {
989 columns[row * output_height * output_width + col] =
990 0; // padding value
991 }
992 }
993 }
994 }
995 }
996 }
997 *output_rows = channels * block_height * block_width;
998 *output_cols = output_height * output_width;
999
1000 return columns;
1001}
1002
1004 cudnnHandle_t handle,
1005 const void *alpha,
1006 const cudnnTensorDescriptor_t dyDesc,
1007 const void *dy,
1008 const void *beta,
1009 const cudnnTensorDescriptor_t dbDesc,
1010 void *db)
1011{
1012 return CUDNN_STATUS_SUCCESS;
1013}
1014
1016 cudnnHandle_t handle,
1017 const void *alpha,
1018 const cudnnFilterDescriptor_t wDesc,
1019 const void *w,
1020 const cudnnTensorDescriptor_t dyDesc,
1021 const void *dy,
1022 const cudnnConvolutionDescriptor_t convDesc,
1024 void *workSpace,
1025 size_t workSpaceSizeInBytes,
1026 const void *beta,
1027 const cudnnTensorDescriptor_t dxDesc,
1028 void *dx)
1029{
1030 return CUDNN_STATUS_SUCCESS;
1031}
1032
1034 cudnnHandle_t handle,
1035 const void *alpha,
1036 const cudnnTensorDescriptor_t xDesc,
1037 const void *x,
1038 const cudnnTensorDescriptor_t dyDesc,
1039 const void *dy,
1040 const cudnnConvolutionDescriptor_t convDesc,
1042 void *workSpace,
1043 size_t workSpaceSizeInBytes,
1044 const void *beta,
1045 const cudnnFilterDescriptor_t dwDesc,
1046 void *dw)
1047{
1048 return CUDNN_STATUS_SUCCESS;
1049}
1050
1052 cudnnHandle_t handle,
1053 const float *alpha,
1054 const cudnnTensorDescriptor_t xDesc,
1055 const float *x,
1056 const cudnnFilterDescriptor_t wDesc,
1057 const float *w,
1058 const cudnnConvolutionDescriptor_t convDesc,
1060 void *workSpace,
1061 size_t workSpaceSizeInBytes,
1062 const float *beta,
1063 const cudnnTensorDescriptor_t yDesc,
1064 float *y,
1065 int channals,
1066 int xwidth,
1067 int wwidth,
1068 int stride,
1069 int padding)
1070{
1071 int rows, cols, krows, kcols;
1072
1073 float *img = universal_img2col(
1074 x, &rows, &cols, channals, xwidth, xwidth, wwidth, wwidth, stride, padding);
1075 float *kernel = universal_img2col(
1076 w, &krows, &kcols, channals, wwidth, wwidth, wwidth, wwidth);
1077
1078 for (int contadorZ = 0; contadorZ < rows; contadorZ++)
1079 {
1080 for (int contadorY = 0; contadorY < kcols; contadorY++)
1081 {
1082 float result = 0;
1083 for (int contadorX = 0; contadorX < cols; contadorX++)
1084 {
1085 result = (img[contadorX + contadorZ * cols] *
1086 kernel[contadorX * kcols + contadorY]) +
1087 result;
1088 }
1089 y[contadorY + contadorZ * kcols] =
1090 result + y[contadorY + contadorZ * kcols];
1091 }
1092 }
1093
1094 return CUDNN_STATUS_SUCCESS;
1095}
1096
1098 cudnnHandle_t handle,
1099 cudnnLRNDescriptor_t normDesc,
1100 cudnnDivNormMode_t mode,
1101 const void *alpha,
1102 const cudnnTensorDescriptor_t xDesc,
1103 const void *x,
1104 const void *means,
1105 const void *dy,
1106 void *temp,
1107 void *temp2,
1108 const void *beta,
1109 const cudnnTensorDescriptor_t dxDesc,
1110 void *dx,
1111 void *dMeans)
1112{
1113 return CUDNN_STATUS_SUCCESS;
1114}
1115
1117 cudnnHandle_t handle,
1118 cudnnLRNDescriptor_t normDesc,
1119 cudnnDivNormMode_t mode,
1120 const void *alpha,
1121 const cudnnTensorDescriptor_t xDesc,
1122 const void *x,
1123 const void *means,
1124 void *temp,
1125 void *temp2,
1126 const void *beta,
1127 const cudnnTensorDescriptor_t yDesc,
1128 void *y)
1129{
1130 return CUDNN_STATUS_SUCCESS;
1131}
1132
1133#endif /* __CUDNN_H__ */
cudnnStatus_t cudnnConvolutionBackwardFilter(cudnnHandle_t handle, const void *alpha, const cudnnTensorDescriptor_t xDesc, const void *x, const cudnnTensorDescriptor_t dyDesc, const void *dy, const cudnnConvolutionDescriptor_t convDesc, cudnnConvolutionBwdFilterAlgo_t algo, void *workSpace, size_t workSpaceSizeInBytes, const void *beta, const cudnnFilterDescriptor_t dwDesc, void *dw)
Definition cudnn.h:1033
enum cudnnconvolvfwdalg cudnnConvolutionFwdAlgo_t
float dReLUFunction(float u)
Definition cudnn.h:745
enum cudnnstatus cudnnStatus_t
Definition cudnn.h:32
enum cudnnConvolutionMode cudnnConvolutionMode_t
Definition cudnn.h:49
cudnnnanpropagation
Definition cudnn.h:132
@ CUDNN_PROPAGATE_NAN
Definition cudnn.h:134
@ CUDNN_NOT_PROPAGATE_NAN
Definition cudnn.h:133
struct cudnnconvoldesc cudnnConvolutionDescriptor_t
enum cudnntensorformat cudnnTensorFormat_t
Definition cudnn.h:41
cudnnStatus_t cudnnConvolutionBackwardData(cudnnHandle_t handle, const void *alpha, const cudnnFilterDescriptor_t wDesc, const void *w, const cudnnTensorDescriptor_t dyDesc, const void *dy, const cudnnConvolutionDescriptor_t convDesc, cudnnConvolutionBwdDataAlgo_t algo, void *workSpace, size_t workSpaceSizeInBytes, const void *beta, const cudnnTensorDescriptor_t dxDesc, void *dx)
Definition cudnn.h:1015
cudnnStatus_t cudnnConvolutionForward(cudnnHandle_t handle, const float *alpha, const cudnnTensorDescriptor_t xDesc, const float *x, const cudnnFilterDescriptor_t wDesc, const float *w, const cudnnConvolutionDescriptor_t convDesc, cudnnConvolutionFwdAlgo_t algo, void *workSpace, size_t workSpaceSizeInBytes, const float *beta, const cudnnTensorDescriptor_t yDesc, float *y, int channals, int xwidth, int wwidth, int stride, int padding)
Definition cudnn.h:1051
struct cudnnactivationdescriptor cudnnActivationDescriptor_t
cudnnStatus_t cudnnDestroyTensorDescriptor(cudnnTensorDescriptor_t tensorDesc)
Definition cudnn.h:880
struct cudnndivnormmd cudnnDivNormMode_t
cudnnstatus
Definition cudnn.h:16
@ CUDNN_STATUS_BAD_PARAM
Definition cudnn.h:20
@ CUDNN_STATUS_ARCH_MISMATCH
Definition cudnn.h:21
@ CUDNN_STATUS_LICENSE_ERROR
Definition cudnn.h:26
@ CUDNN_STATUS_RUNTIME_FP_OVERFLOW
Definition cudnn.h:29
@ CUDNN_STATUS_INTERNAL_ERROR
Definition cudnn.h:24
@ CUDNN_STATUS_EXECUTION_FAILED
Definition cudnn.h:23
@ CUDNN_STATUS_SUCCESS
Definition cudnn.h:17
@ CUDNN_STATUS_ALLOC_FAILED
Definition cudnn.h:19
@ CUDNN_STATUS_RUNTIME_IN_PROGRESS
Definition cudnn.h:28
@ CUDNN_STATUS_NOT_INITIALIZED
Definition cudnn.h:18
@ CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING
Definition cudnn.h:27
@ CUDNN_STATUS_MAPPING_ERROR
Definition cudnn.h:22
@ CUDNN_STATUS_NOT_SUPPORTED
Definition cudnn.h:25
struct cudnntensordesc cudnnTensorDescriptor_t
cudnnconvolvfwdalg
Definition cudnn.h:106
@ CUDNN_CONVOLUTION_FWD_ALGO_GEMM
Definition cudnn.h:107
enum cudnntensorformat cudnntnsformat
enum cudnnactivationmode cudnnActivationMode_t
Definition cudnn.h:129
cudnnStatus_t cudnnDestroyActivationDescriptor(cudnnActivationDescriptor_t activationDesc)
Definition cudnn.h:886
cudnnStatus_t cudnnAddTensor(cudnnHandle_t handle, const void *alpha, const cudnnTensorDescriptor_t aDesc, const void *A, const void *beta, const cudnnTensorDescriptor_t cDesc, void *C)
Definition cudnn.h:933
enum cudnndatatype cudnnDataType_t
Definition cudnn.h:63
cudnnactivationmode
Definition cudnn.h:120
@ CUDNN_ACTIVATION_RELU
Definition cudnn.h:122
@ CUDNN_ACTIVATION_SIGMOID
Definition cudnn.h:121
@ CUDNN_ACTIVATION_TANH
Definition cudnn.h:123
@ CUDNN_ACTIVATION_CLIPPED_RELU
Definition cudnn.h:124
@ CUDNN_ACTIVATION_IDENTITY
Definition cudnn.h:126
@ CUDNN_ACTIVATION_ELU
Definition cudnn.h:125
cudnndatatype
Definition cudnn.h:52
@ CUDNN_DATA_INT32
Definition cudnn.h:58
@ CUDNN_DATA_HALF
Definition cudnn.h:55
@ CUDNN_DATA_UINT8x4
Definition cudnn.h:60
@ CUDNN_DATA_UINT8
Definition cudnn.h:57
@ CUDNN_DATA_INT8
Definition cudnn.h:56
@ CUDNN_DATA_INT8x4
Definition cudnn.h:59
@ CUDNN_DATA_DOUBLE
Definition cudnn.h:54
@ CUDNN_DATA_FLOAT
Definition cudnn.h:53
cudnnStatus_t cudnnSetFilter4dDescriptor(cudnnFilterDescriptor_t &tensorDesc, cudnnDataType_t dataType, cudnnTensorFormat_t format, int n, int c, int h, int w)
Definition cudnn.h:800
cudnnConvolutionMode
Definition cudnn.h:44
@ CUDNN_CONVOLUTION
Definition cudnn.h:45
@ CUDNN_CROSS_CORRELATION
Definition cudnn.h:46
cudnnStatus_t cudnnGetConvolution2dForwardOutputDim(cudnnConvolutionDescriptor_t convDesc, cudnnTensorDescriptor_t xDesc, cudnnFilterDescriptor_t wDesc, int *n, int *c, int *h, int *w)
Definition cudnn.h:842
cudnnStatus_t cudnnSetActivationDescriptor(cudnnActivationDescriptor_t activationDesc, cudnnActivationMode_t mode, cudnnNanPropagation_t reluNanOpt, double coef)
Definition cudnn.h:866
enum cudnnactivationmode cudnnactmode
cudnnStatus_t cudnnActivationForward(cudnnHandle_t handle, cudnnActivationDescriptor_t activationDesc, const float *alpha, const cudnnTensorDescriptor_t xDesc, const float *x, const float *beta, const cudnnTensorDescriptor_t yDesc, float *y)
Definition cudnn.h:891
struct cudnnconvbwdfilter cudnnConvolutionBwdFilterAlgo_t
cudnnStatus_t cudnnCreate(cudnnHandle_t *cudnnhan)
Definition cudnn.h:776
cudnnStatus_t cudnnSetConvolution2dDescriptor(cudnnConvolutionDescriptor_t &convDesc, int pad_h, int pad_w, int u, int v, int dilation_h, int dilation_w, cudnnConvolutionMode_t mode, cudnnDataType_t computeType)
Definition cudnn.h:819
cudnnStatus_t cudnnDestroy(cudnnHandle_t cudnnhan)
Definition cudnn.h:875
struct cudnnfilterdesc cudnnFilterDescriptor_t
enum cudnnnanpropagation cudnnNanPropagation_t
Definition cudnn.h:137
cudnnStatus_t cudnnDivisiveNormalizationForward(cudnnHandle_t handle, cudnnLRNDescriptor_t normDesc, cudnnDivNormMode_t mode, const void *alpha, const cudnnTensorDescriptor_t xDesc, const void *x, const void *means, void *temp, void *temp2, const void *beta, const cudnnTensorDescriptor_t yDesc, void *y)
Definition cudnn.h:1116
cudnnStatus_t cudnnConvolutionBackwardBias(cudnnHandle_t handle, const void *alpha, const cudnnTensorDescriptor_t dyDesc, const void *dy, const void *beta, const cudnnTensorDescriptor_t dbDesc, void *db)
Definition cudnn.h:1003
struct cudnnhandle cudnnHandle_t
cudnnStatus_t cudnnCreateConvolutionDescriptor(cudnnConvolutionDescriptor_t *convdesc)
Definition cudnn.h:771
cudnnStatus_t cudnnDivisiveNormalizationBackward(cudnnHandle_t handle, cudnnLRNDescriptor_t normDesc, cudnnDivNormMode_t mode, const void *alpha, const cudnnTensorDescriptor_t xDesc, const void *x, const void *means, const void *dy, void *temp, void *temp2, const void *beta, const cudnnTensorDescriptor_t dxDesc, void *dx, void *dMeans)
Definition cudnn.h:1097
cudnnStatus_t cudnnActivationBackward(cudnnHandle_t handle, cudnnActivationDescriptor_t activationDesc, const float *alpha, const cudnnTensorDescriptor_t yDesc, const float *y, const cudnnTensorDescriptor_t dyDesc, const float *dy, const cudnnTensorDescriptor_t xDesc, const float *x, const float *beta, const cudnnTensorDescriptor_t dxDesc, float *dx)
Definition cudnn.h:911
struct cudnnlrndesc cudnnLRNDescriptor_t
cudnnStatus_t cudnnCreateFilterDescriptor(cudnnFilterDescriptor_t *tensordesc)
Definition cudnn.h:759
cudnntensorformat
Definition cudnn.h:35
@ CUDNN_TENSOR_NCHW
Definition cudnn.h:36
@ CUDNN_TENSOR_NCHW_VECT_C
Definition cudnn.h:38
@ CUDNN_TENSOR_NHWC
Definition cudnn.h:37
enum cudnnConvolutionMode cudnnConvMode
float ReLUFunction(float u)
Definition cudnn.h:736
cudnnStatus_t cudnnCreateActivationDescriptor(cudnnActivationDescriptor_t *actvdesc)
Definition cudnn.h:765
cudnnStatus_t cudnnSetTensor4dDescriptor(cudnnTensorDescriptor_t &tensorDesc, cudnnTensorFormat_t format, cudnnDataType_t dataType, int n, int c, int h, int w)
Definition cudnn.h:781
enum cudnnnanpropagation cudnnanprop
float dSigmoidFunction(float u)
Definition cudnn.h:729
enum cudnnstatus cudnnstt
struct cudnnconvolbwd cudnnConvolutionBwdDataAlgo_t
float * universal_img2col(const float *data, int *output_rows, int *output_cols, int channels, int height, int width, int block_height, int block_width, int stride=1, int padding=0)
Definition cudnn.h:945
float sigmoidFunction(float u)
Definition cudnn.h:139
enum cudnndatatype cudnndttype
cudnnStatus_t cudnnCreateTensorDescriptor(cudnnTensorDescriptor_t *tensordesc)
Definition cudnn.h:754
#define C
Definition exp2f.c:25
#define A
Definition logf.c:22
Definition int.py:1
Definition cudnn.h:8
Definition cudnn.h:102
Definition cudnn.h:98
Definition cudnn.h:86
cudnnConvolutionMode_t mode
Definition cudnn.h:93
int u
Definition cudnn.h:89
cudnnDataType_t computeType
Definition cudnn.h:94
int pad_w
Definition cudnn.h:88
int pad_h
Definition cudnn.h:87
int dilation_h
Definition cudnn.h:91
int dilation_w
Definition cudnn.h:92
int v
Definition cudnn.h:90
Definition cudnn.h:116
Definition cudnn.h:76
cudnnTensorFormat_t format
Definition cudnn.h:77
int n
Definition cudnn.h:79
cudnnDataType_t dataType
Definition cudnn.h:78
int h
Definition cudnn.h:81
int w
Definition cudnn.h:82
int c
Definition cudnn.h:80
Definition cudnn.h:12
Definition cudnn.h:112
Definition cudnn.h:66
int n
Definition cudnn.h:69
cudnnTensorFormat_t format
Definition cudnn.h:67
int h
Definition cudnn.h:71
int w
Definition cudnn.h:72
int c
Definition cudnn.h:70
cudnnDataType_t dataType
Definition cudnn.h:68