Skip to content

Class to define functions in a way that facilitates counting the number of function calls/evaluations.

License

Notifications You must be signed in to change notification settings

tamaskis/CountedFunction-MATLAB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CountedFunction View Counted Function (CountedFunction) on File Exchange

Class to define functions in a way that facilitates counting the number of function calls/evaluations.

Usage

[fc,count] = CountedFunction.count_function_calls(f)

Description

[fc,count] = CountedFunction.count_function_calls(f) takes a function handle, f, and returns a function handle fc and a counter function count. fc performs the same function evaluation as f (it is just wrapped around a CountedFunction object which calls f directly). Calling the counter function (i.e. count()) will return the current number of function calls.

Note

  • For simple functions, such as f = @(x) x^2, this can severely slow down function calls (by a factor of ~20).
  • For complicated functions that have a long evaluation time to begin with, this performance hit is negligible.

Basic Example

See more examples in Examples.mlx.

% define the function
f = @(x) x^2;

% new function handle that counts the number of function evaluations
[f,count] = CountedFunction.count_function_calls(f);

% evaluates the function 1000 times
for i = 1:1000
    f(0);
end

% prints the number of function evaluations
count()
ans =

        1000
% evaluates the function another 1000 times
for i = 1:1000
    f(0);
end

% prints the number of function evaluations again
count()
ans =

        2000

About

Class to define functions in a way that facilitates counting the number of function calls/evaluations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages