PageRenderTime 33ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/MatlabCode/branches/Greg's Branch/timeit.m

http://horwitzlab.googlecode.com/
MATLAB | 1139 lines | 921 code | 112 blank | 106 comment | 32 complexity | 53b65e0e73e4f6250cb136961343fa2c MD5 | raw file
Possible License(s): GPL-2.0, AGPL-1.0

Large files files are truncated, but you can click here to view the full file

  1. function [t, measurement_overhead, measurement_details] = timeit(f, num_outputs)
  2. %TIMEIT Measure time required to run function.
  3. % T = TIMEIT(F) measures the time (in seconds) required to run F, which is a
  4. % function handle. TIMEIT calls F with either no output arguments or one
  5. % output argument depending on nargout(F).
  6. %
  7. % T = TIMEIT(F,N) calls F with N output arguments. N can be 0, 1, 2, 3, or 4.
  8. %
  9. % TIMEIT handles automatically the usual benchmarking procedures of "warming
  10. % up" F, figuring out how many times to repeat F in a timing loop, etc.
  11. % TIMEIT also compensates for the estimated time-measurement overhead
  12. % associated with tic/toc and with calling function handles. TIMEIT returns
  13. % the median of several repeated measurements.
  14. %
  15. % Examples
  16. % --------
  17. % How much time does it take to compute sum(A.' .* B, 1), where A is
  18. % 12000-by-400 and B is 400-by-12000?
  19. %
  20. % A = rand(12000, 400);
  21. % B = rand(400, 12000);
  22. % f = @() sum(A.' .* B, 1);
  23. % timeit(f)
  24. %
  25. % How much time does it take to call svd with three output arguments?
  26. %
  27. % X = [1 2; 3 4; 5 6; 7 8];
  28. % f = @() svd(X);
  29. % timeit(f, 3)
  30. %
  31. % How much time does it take to dilate the text.png image with
  32. % a 25-by-25 all-ones structuring element? (This example uses Image Processing
  33. % Toolbox functions.)
  34. %
  35. % bw = imread('text.png');
  36. % se = strel(ones(25, 25));
  37. % g = @() imdilate(bw, se);
  38. % timeit(g)
  39. % Steve Eddins
  40. % Copyright 2008-2010 The MathWorks, Inc.
  41. if nargin < 2
  42. num_outputs = min(numOutputs(f), 1);
  43. else
  44. if num_outputs > 4
  45. warning('MATLAB:timeit:tooManyOutputs', ...
  46. 'Too many function output arguments specified. timeit will call your function with 4 output arguments.');
  47. end
  48. end
  49. t_rough = roughEstimate(f, num_outputs);
  50. % Calculate the number of inner-loop repetitions so that the inner for-loop
  51. % takes at least about 1ms to execute.
  52. desired_inner_loop_time = 0.001;
  53. num_inner_iterations = max(ceil(desired_inner_loop_time / t_rough), 1);
  54. % Run the outer loop enough times to give a reasonable set of inputs to median.
  55. num_outer_iterations = 11;
  56. % If the estimated running time for the timing loops is too long,
  57. % reduce the number of outer loop iterations.
  58. estimated_running_time = num_outer_iterations * num_inner_iterations * t_rough;
  59. long_time = 15;
  60. min_outer_iterations = 3;
  61. if estimated_running_time > long_time
  62. num_outer_iterations = ceil(long_time / (num_inner_iterations * t_rough));
  63. num_outer_iterations = max(num_outer_iterations, min_outer_iterations);
  64. end
  65. times = zeros(num_outer_iterations, 1);
  66. for k = 1:num_outer_iterations
  67. % Coding note: An earlier version of this code constructed an "outputs" cell
  68. % array, which was used in comma-separated form for the left-hand side of
  69. % the call to f(). It turned out, though, that the comma-separated output
  70. % argument added significant measurement overhead. Therefore, the cases
  71. % for different numbers of output arguments are hard-coded into the switch
  72. % statement below.
  73. switch num_outputs
  74. case 0
  75. tic();
  76. for p = 1:num_inner_iterations
  77. f();
  78. end
  79. times(k) = toc();
  80. case 1
  81. tic();
  82. for p = 1:num_inner_iterations
  83. output = f();
  84. end
  85. times(k) = toc();
  86. case 2
  87. tic();
  88. for p = 1:num_inner_iterations
  89. [output1, output2] = f();
  90. end
  91. times(k) = toc();
  92. case 3
  93. tic();
  94. for p = 1:num_inner_iterations
  95. [output1, output2, output3] = f();
  96. end
  97. times(k) = toc();
  98. otherwise
  99. tic();
  100. for p = 1:num_inner_iterations
  101. [output1, output2, output3, output4] = f();
  102. end
  103. times(k) = toc();
  104. end
  105. end
  106. t = median(times) / num_inner_iterations;
  107. measurement_details.EmptyFunctionCallTime = emptyFunctionCallTime();
  108. measurement_details.SimpleFunctionHandleCallTime = simpleFunctionHandleCallTime();
  109. measurement_details.AnonymousFunctionHandleCallTime = anonFunctionHandleCallTime();
  110. measurement_details.TicTocCallTime = tictocCallTime();
  111. measurement_overhead = (tictocCallTime() / num_inner_iterations) + ...
  112. functionHandleCallOverhead(f);
  113. t = max(t - measurement_overhead, 0);
  114. if t < (5 * measurement_overhead)
  115. warning('MATLAB:timeit:HighOverhead', 'The measured time for F may be inaccurate because it is close to the estimated time-measurement overhead (%.1e seconds). Try measuring something that takes longer.', measurement_overhead);
  116. end
  117. function t = roughEstimate(f, num_f_outputs)
  118. % Return rough estimate of time required for one execution of
  119. % f(). Basic warmups are done, but no fancy looping, medians,
  120. % etc.
  121. % Warm up tic/toc.
  122. tic();
  123. elapsed = toc();
  124. tic();
  125. elapsed = toc();
  126. % Call f() in a loop for at least a millisecond.
  127. times = [];
  128. time_threshold = 3;
  129. iter_count = 0;
  130. while sum(times) < 0.001
  131. iter_count = iter_count + 1;
  132. switch num_f_outputs
  133. case 0
  134. tic();
  135. f();
  136. times(end+1) = toc();
  137. case 1
  138. tic();
  139. output1 = f();
  140. times(end+1) = toc();
  141. case 2
  142. tic();
  143. [output1, output2] = f();
  144. times(end+1) = toc();
  145. case 3
  146. tic();
  147. [output1, output2, output3] = f();
  148. times(end+1) = toc();
  149. otherwise
  150. tic();
  151. [output1, output2, output3, output4] = f();
  152. times(end+1) = toc();
  153. end
  154. if iter_count == 1
  155. if times > time_threshold
  156. % If the first call to f() takes more than time_threshold to run,
  157. % then just use the result from that call. The assumption is that
  158. % first-time effects are negligible compared to the running time for
  159. % f().
  160. break;
  161. else
  162. % Discard first timing.
  163. times = [];
  164. end
  165. end
  166. end
  167. t = median(times);
  168. function n = numOutputs(f)
  169. % Return the number of output arguments to be used when calling the function
  170. % handle f.
  171. % * If nargout(f) > 0, return 1.
  172. % * If nargout(f) == 0, return 0.
  173. % * If nargout(f) < 0, use try/catch to determine whether to call f with one
  174. % or zero output arguments.
  175. % Note: It is not documented (as of R2008b) that nargout can return -1.
  176. % However, it appears to do so for functions that use varargout and for
  177. % anonymous function handles.
  178. n = nargout(f);
  179. if n < 0
  180. try
  181. a = f();
  182. % If the line above doesn't throw an error, then it's OK to call f() with
  183. % one output argument.
  184. n = 1;
  185. catch %#ok<CTCH>
  186. % If we get here, assume it's because f() has zero output arguments. In
  187. % recent versions of MATLAB we could catch the specific exception ID
  188. % MATLAB:maxlhs, but that would limit the use of timeit to MATLAB versions
  189. % since the introduction of MExceptions.
  190. n = 0;
  191. end
  192. end
  193. function t = tictocCallTime
  194. % Return the estimated time required to call tic/toc.
  195. persistent ttct
  196. if ~isempty(ttct)
  197. t = ttct;
  198. return
  199. end
  200. % Warm up tic/toc.
  201. temp = tic(); elapsed = toc();
  202. temp = tic(); elapsed = toc();
  203. temp = tic(); elapsed = toc();
  204. num_repeats = 11;
  205. times = zeros(1, num_repeats);
  206. for k = 1:num_repeats
  207. times(k) = tictocTimeExperiment();
  208. end
  209. t = min(times);
  210. ttct = t;
  211. function t = tictocTimeExperiment
  212. % Call tic/toc 100 times and return the average time required.
  213. elapsed = 0;
  214. % Call tic/toc 100 times.
  215. tic(); elapsed = elapsed + toc();
  216. tic(); elapsed = elapsed + toc();
  217. tic(); elapsed = elapsed + toc();
  218. tic(); elapsed = elapsed + toc();
  219. tic(); elapsed = elapsed + toc();
  220. tic(); elapsed = elapsed + toc();
  221. tic(); elapsed = elapsed + toc();
  222. tic(); elapsed = elapsed + toc();
  223. tic(); elapsed = elapsed + toc();
  224. tic(); elapsed = elapsed + toc();
  225. tic(); elapsed = elapsed + toc();
  226. tic(); elapsed = elapsed + toc();
  227. tic(); elapsed = elapsed + toc();
  228. tic(); elapsed = elapsed + toc();
  229. tic(); elapsed = elapsed + toc();
  230. tic(); elapsed = elapsed + toc();
  231. tic(); elapsed = elapsed + toc();
  232. tic(); elapsed = elapsed + toc();
  233. tic(); elapsed = elapsed + toc();
  234. tic(); elapsed = elapsed + toc();
  235. tic(); elapsed = elapsed + toc();
  236. tic(); elapsed = elapsed + toc();
  237. tic(); elapsed = elapsed + toc();
  238. tic(); elapsed = elapsed + toc();
  239. tic(); elapsed = elapsed + toc();
  240. tic(); elapsed = elapsed + toc();
  241. tic(); elapsed = elapsed + toc();
  242. tic(); elapsed = elapsed + toc();
  243. tic(); elapsed = elapsed + toc();
  244. tic(); elapsed = elapsed + toc();
  245. tic(); elapsed = elapsed + toc();
  246. tic(); elapsed = elapsed + toc();
  247. tic(); elapsed = elapsed + toc();
  248. tic(); elapsed = elapsed + toc();
  249. tic(); elapsed = elapsed + toc();
  250. tic(); elapsed = elapsed + toc();
  251. tic(); elapsed = elapsed + toc();
  252. tic(); elapsed = elapsed + toc();
  253. tic(); elapsed = elapsed + toc();
  254. tic(); elapsed = elapsed + toc();
  255. tic(); elapsed = elapsed + toc();
  256. tic(); elapsed = elapsed + toc();
  257. tic(); elapsed = elapsed + toc();
  258. tic(); elapsed = elapsed + toc();
  259. tic(); elapsed = elapsed + toc();
  260. tic(); elapsed = elapsed + toc();
  261. tic(); elapsed = elapsed + toc();
  262. tic(); elapsed = elapsed + toc();
  263. tic(); elapsed = elapsed + toc();
  264. tic(); elapsed = elapsed + toc();
  265. tic(); elapsed = elapsed + toc();
  266. tic(); elapsed = elapsed + toc();
  267. tic(); elapsed = elapsed + toc();
  268. tic(); elapsed = elapsed + toc();
  269. tic(); elapsed = elapsed + toc();
  270. tic(); elapsed = elapsed + toc();
  271. tic(); elapsed = elapsed + toc();
  272. tic(); elapsed = elapsed + toc();
  273. tic(); elapsed = elapsed + toc();
  274. tic(); elapsed = elapsed + toc();
  275. tic(); elapsed = elapsed + toc();
  276. tic(); elapsed = elapsed + toc();
  277. tic(); elapsed = elapsed + toc();
  278. tic(); elapsed = elapsed + toc();
  279. tic(); elapsed = elapsed + toc();
  280. tic(); elapsed = elapsed + toc();
  281. tic(); elapsed = elapsed + toc();
  282. tic(); elapsed = elapsed + toc();
  283. tic(); elapsed = elapsed + toc();
  284. tic(); elapsed = elapsed + toc();
  285. tic(); elapsed = elapsed + toc();
  286. tic(); elapsed = elapsed + toc();
  287. tic(); elapsed = elapsed + toc();
  288. tic(); elapsed = elapsed + toc();
  289. tic(); elapsed = elapsed + toc();
  290. tic(); elapsed = elapsed + toc();
  291. tic(); elapsed = elapsed + toc();
  292. tic(); elapsed = elapsed + toc();
  293. tic(); elapsed = elapsed + toc();
  294. tic(); elapsed = elapsed + toc();
  295. tic(); elapsed = elapsed + toc();
  296. tic(); elapsed = elapsed + toc();
  297. tic(); elapsed = elapsed + toc();
  298. tic(); elapsed = elapsed + toc();
  299. tic(); elapsed = elapsed + toc();
  300. tic(); elapsed = elapsed + toc();
  301. tic(); elapsed = elapsed + toc();
  302. tic(); elapsed = elapsed + toc();
  303. tic(); elapsed = elapsed + toc();
  304. tic(); elapsed = elapsed + toc();
  305. tic(); elapsed = elapsed + toc();
  306. tic(); elapsed = elapsed + toc();
  307. tic(); elapsed = elapsed + toc();
  308. tic(); elapsed = elapsed + toc();
  309. tic(); elapsed = elapsed + toc();
  310. tic(); elapsed = elapsed + toc();
  311. tic(); elapsed = elapsed + toc();
  312. tic(); elapsed = elapsed + toc();
  313. tic(); elapsed = elapsed + toc();
  314. tic(); elapsed = elapsed + toc();
  315. t = elapsed / 100;
  316. function emptyFunction()
  317. function t = functionHandleCallOverhead(f)
  318. % Return the estimated overhead, in seconds, for calling a function handle
  319. % compared to calling a normal function.
  320. fcns = functions(f);
  321. if strcmp(fcns.type, 'anonymous')
  322. t = anonFunctionHandleCallTime();
  323. else
  324. t = simpleFunctionHandleCallTime();
  325. end
  326. t = max(t - emptyFunctionCallTime(), 0);
  327. function t = simpleFunctionHandleCallTime
  328. % Return the estimated time required to call a simple function handle to a
  329. % function with an empty body.
  330. %
  331. % A simple function handle fh has the form @foo.
  332. persistent sfhct
  333. if ~isempty(sfhct)
  334. t = sfhct;
  335. return
  336. end
  337. num_repeats = 101;
  338. % num_repeats chosen to take about 100 ms, assuming that
  339. % timeFunctionHandleCall() takes about 1 ms.
  340. times = zeros(1, num_repeats);
  341. fh = @emptyFunction;
  342. % Warm up fh().
  343. fh();
  344. fh();
  345. fh();
  346. for k = 1:num_repeats
  347. times(k) = functionHandleTimeExperiment(fh);
  348. end
  349. t = min(times);
  350. sfhct = t;
  351. function t = anonFunctionHandleCallTime
  352. % Return the estimated time required to call an anonymous function handle that
  353. % calls a function with an empty body.
  354. %
  355. % An anonymous function handle fh has the form @(arg_list) expression. For
  356. % example:
  357. %
  358. % fh = @(thetad) sin(thetad * pi / 180)
  359. persistent afhct
  360. if ~isempty(afhct)
  361. t = afhct;
  362. return
  363. end
  364. num_repeats = 101;
  365. % num_repeats chosen to take about 100 ms, assuming that timeFunctionCall()
  366. % takes about 1 ms.
  367. times = zeros(1, num_repeats);
  368. fh = @() emptyFunction();
  369. % Warm up fh().
  370. fh();
  371. fh();
  372. fh();
  373. for k = 1:num_repeats
  374. times(k) = functionHandleTimeExperiment(fh);
  375. end
  376. t = min(times);
  377. afhct = t;
  378. function t = functionHandleTimeExperiment(fh)
  379. % Call the function handle fh 2000 times and return the average time required.
  380. % Record starting time.
  381. tic();
  382. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  383. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  384. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  385. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  386. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  387. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  388. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  389. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  390. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  391. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  392. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  393. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  394. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  395. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  396. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  397. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  398. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  399. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  400. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  401. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  402. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  403. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  404. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  405. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  406. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  407. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  408. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  409. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  410. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  411. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  412. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  413. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  414. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  415. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  416. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  417. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  418. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  419. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  420. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  421. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  422. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  423. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  424. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  425. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  426. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  427. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  428. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  429. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  430. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  431. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  432. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  433. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  434. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  435. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  436. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  437. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  438. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  439. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  440. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  441. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  442. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  443. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  444. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  445. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  446. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  447. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  448. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  449. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  450. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  451. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  452. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  453. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  454. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  455. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  456. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  457. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  458. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  459. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  460. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  461. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  462. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  463. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  464. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  465. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  466. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  467. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  468. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  469. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  470. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  471. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  472. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  473. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  474. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  475. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  476. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  477. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  478. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  479. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  480. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  481. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  482. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  483. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  484. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  485. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  486. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  487. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  488. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  489. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  490. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  491. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  492. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  493. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  494. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  495. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  496. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  497. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  498. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  499. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  500. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  501. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  502. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  503. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  504. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  505. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  506. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  507. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  508. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  509. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  510. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  511. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  512. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  513. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  514. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  515. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  516. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  517. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  518. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  519. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  520. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  521. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  522. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  523. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  524. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  525. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  526. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  527. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  528. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  529. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  530. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  531. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  532. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  533. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  534. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  535. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  536. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  537. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  538. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  539. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  540. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  541. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  542. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  543. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  544. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  545. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  546. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  547. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  548. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  549. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  550. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  551. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  552. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  553. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  554. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  555. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  556. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  557. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  558. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  559. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  560. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  561. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  562. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  563. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  564. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  565. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  566. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  567. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  568. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  569. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  570. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  571. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  572. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  573. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  574. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  575. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  576. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  577. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  578. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  579. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  580. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  581. fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh(); fh();
  582. t = toc() / 2000;
  583. function t = emptyFunctionCallTime()
  584. % Return the estimated time required to call a function with an empty body.
  585. persistent efct
  586. if ~isempty(efct)
  587. t = efct;
  588. return
  589. end
  590. % Warm up emptyFunction.
  591. emptyFunction();
  592. emptyFunction();
  593. emptyFunction();
  594. num_repeats = 101;
  595. % num_repeats chosen to take about 100 ms, assuming that timeFunctionCall()
  596. % takes about 1 ms.
  597. times = zeros(1, num_repeats);
  598. for k = 1:num_repeats
  599. times(k) = emptyFunctionTimeExperiment();
  600. end
  601. t = min(times);
  602. efct = t;
  603. function t = emptyFunctionTimeExperiment()
  604. % Call emptyFunction() 2000 times and return the average time required.
  605. % Record starting time.
  606. tic();
  607. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  608. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  609. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  610. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  611. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  612. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  613. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  614. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  615. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  616. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  617. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  618. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  619. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  620. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  621. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  622. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  623. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  624. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  625. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  626. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  627. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  628. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  629. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  630. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  631. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  632. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  633. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  634. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  635. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  636. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  637. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  638. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  639. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  640. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  641. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  642. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  643. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  644. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  645. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  646. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  647. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  648. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  649. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  650. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  651. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  652. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  653. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  654. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  655. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  656. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  657. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  658. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  659. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  660. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  661. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  662. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  663. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  664. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  665. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  666. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  667. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  668. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  669. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  670. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  671. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  672. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  673. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  674. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  675. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  676. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  677. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  678. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  679. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  680. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  681. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  682. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  683. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  684. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  685. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  686. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  687. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  688. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  689. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  690. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  691. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  692. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  693. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  694. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  695. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  696. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  697. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  698. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  699. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  700. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  701. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  702. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  703. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  704. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  705. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  706. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  707. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  708. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  709. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  710. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  711. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  712. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  713. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  714. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  715. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  716. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  717. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  718. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  719. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  720. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  721. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  722. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  723. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  724. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  725. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  726. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  727. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  728. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  729. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  730. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  731. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  732. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  733. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  734. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  735. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  736. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  737. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  738. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  739. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  740. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  741. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  742. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  743. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  744. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  745. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  746. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  747. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  748. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  749. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  750. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  751. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  752. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  753. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  754. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  755. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  756. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  757. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  758. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  759. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  760. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  761. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  762. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  763. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  764. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  765. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  766. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  767. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  768. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  769. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  770. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  771. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  772. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  773. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  774. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  775. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  776. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  777. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  778. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  779. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  780. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  781. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  782. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  783. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  784. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  785. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  786. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  787. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  788. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  789. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  790. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  791. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  792. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  793. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  794. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  795. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  796. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  797. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  798. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  799. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  800. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  801. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  802. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  803. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  804. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  805. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  806. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  807. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  808. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  809. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  810. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  811. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  812. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  813. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  814. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  815. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  816. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  817. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  818. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  819. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  820. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  821. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  822. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  823. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  824. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  825. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  826. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  827. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  828. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  829. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  830. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  831. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  832. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  833. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  834. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  835. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  836. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  837. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  838. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  839. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  840. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  841. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  842. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  843. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  844. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  845. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  846. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  847. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  848. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  849. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  850. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  851. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  852. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  853. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  854. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  855. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  856. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  857. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  858. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  859. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  860. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  861. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  862. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  863. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  864. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  865. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  866. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  867. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  868. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  869. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  870. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  871. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  872. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  873. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  874. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  875. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  876. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  877. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  878. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  879. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  880. emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction(); emptyFunction();
  881. emptyFunction(); emptyFunction(); emptyFunction

Large files files are truncated, but you can click here to view the full file