On Thu, 21 Jan 2016, Riccardo (Jack) Lucchetti wrote:
 On Wed, 20 Jan 2016, Allin Cottrell wrote:
> Perhaps we should offer a prize for the first example of actual time-saving 
> (and/or improvement in accuracy) in sending a calculation of the sort that 
> might be required in gretl out to julia for computation.
 Easy: just take Oleh's recursion example.
 <hansl>
 set echo off
 set messages off
 function scalar fib(scalar n)
    return n<2 ? n : fib(n-1) + fib(n-2)
 end function
 set stopwatch
 eval fib(30)
 native = $stopwatch
 foreign language=julia
 	function fib(n)
 		if n<2
 			return n
 		else
 			return fib(n-1)+fib(n-2)
 		end
 	end
 	println(fib(30))
 end foreign
 julia = $stopwatch
 print native julia
 </hansl>
 <output>
 832040
 832040
         native =  71.920384
          julia =  4.4912745
 </output> 
For sure, that's an example of something that julia does a lot faster 
than gretl. But my notional prize is not yet awarded since if I insert 
this native function
<hansl>
function scalar smartfib(scalar n)
   if n < 2
     return n
   endif
   scalar r5 = sqrt(5)
   return (((1+r5)/2)^n - ((1-r5)/2)^n)/r5
end function
</hansl>
and time it as "native_smart", I get
<output>
832040
832040
832040
          native =  35.508119
    native_smart =  8.5512991e-05
           julia =  0.54034932
</output>
Your example shows that recursion is a _lot_ faster in julia; so now 
we want a case where recursion is actually needed.
Allin