]> Creatis software - CreaPhase.git/blob - octave_packages/benchmark-1.1.1/benchutil_average.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / benchmark-1.1.1 / benchutil_average.m
1 % Copyright (C) 2008  Jaroslav Hajek <highegg@gmail.com>
2
3 % This file is part of OctaveForge.
4
5 % OctaveForge is free software; you can redistribute it and/or modify
6 % it under the terms of the GNU General Public License as published by
7 % the Free Software Foundation; either version 2 of the License, or
8 % (at your option) any later version.
9
10 % This program is distributed in the hope that it will be useful,
11 % but WITHOUT ANY WARRANTY; without even the implied warranty of
12 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 % GNU General Public License for more details.
14
15 % You should have received a copy of the GNU General Public License
16 % along with this software; see the file COPYING.  If not, see
17 % <http://www.gnu.org/licenses/>.
18
19
20 % function results = benchutil_average (benchmark, nruns, arg1, arg2, ...)
21 % Average the benchmark results over a certain number of runs.
22
23 function results = benchutil_average (benchmark, nruns, varargin)
24   bfun = str2func (benchmark);
25   for i = 1:nruns
26     resi(i) = bfun (varargin{:});
27   end
28   for f = fieldnames (resi).'
29     f = f{1};
30     results.(f) = mean ([resi.(f)]);
31   end
32
33   if (benchutil_verbose)
34     [bdesc, adesc, rdesc] = benchutil_parse_desc ([benchmark, '.m']);
35     printf ('\n\n');
36     for [desc, fn] = rdesc
37       printf ('%s (avg. over %d runs): %f\n', desc, nruns, results.(fn));
38     endfor
39   endif
40