________________________________________________________________________

This file is part of Logtalk <http://logtalk.org/>  

Logtalk is free software. You can redistribute it and/or modify it under
the terms of the FSF GNU General Public License 3  (plus some additional
terms per section 7).        Consult the `LICENSE.txt` file for details.
________________________________________________________________________


% start by loading the loading the example:

| ?- logtalk_load(fibonacci(loader)).
...


% NOTE: the example queries below use a SWI-Prolog proprietary predicate 
% time/1 in order to get accurate goal times. This predicate is also found 
% on recent development versions of YAP and XSB. For other Prolog compilers, 
% replace the time/1 call by any appropriate timing calls (e.g. cputime/0).


% calculate 24 Fibonacci number using a single thread:

?- time(fibonacci(1)::fib(24, N)).
% 450,175 inferences, 0.20 CPU in 0.23 seconds (88% CPU, 2250875 Lips)

N = 75025


% calculate the 24 Fibonacci number using two threads:

?- time(fibonacci(2)::fib(24, N)).
% 81 inferences, 0.18 CPU in 0.14 seconds (131% CPU, 450 Lips)

N = 75025


% calculate the 24 Fibonacci number using four threads:

?- time(fibonacci(4)::fib(24, N)).
% 81 inferences, 0.17 CPU in 0.14 seconds (124% CPU, 476 Lips)

N = 75025


% calculate the 24 Fibonacci number using eight threads:

?- time(fibonacci(8)::fib(24, N)).
% 81 inferences, 0.16 CPU in 0.09 seconds (181% CPU, 506 Lips)

N = 75025


% calculate the 24 Fibonacci number using sixteen threads:

?- time(fibonacci(16)::fib(24, N)).
% 81 inferences, 0.16 CPU in 0.08 seconds (206% CPU, 506 Lips)

N = 75025
