Roots of a function: Difference between revisions

→‎{{header|REXX}}: add another faster version
m (→‎optimized function: added a comment to the REXX section header.)
(→‎{{header|REXX}}: add another faster version)
Line 1,964:
<lang rexx>/*──────────────────────────────────F function────────────────────────────────*/
f: procedure; parse arg x; x2=x*x; return x*x2 - 3*x2 + x+x</lang>
 
===faster version and timings===
<lang rexx>/* REXX */
Parse Version v; Say v
n=1000000
Say 'N='n
Call time 'R'; Do i=1 To n; xx=f1(5); End; Say 'f1' xx time('E')
Call time 'R'; Do i=1 To n; xx=f2(5); End; Say 'f2' xx time('E')
Call time 'R'; Do i=1 To n; xx=f3(5); End; Say 'f3' xx time('E')
Exit
f1: procedure; parse arg x; return x**3 - 3 * x**2 + 2 * x
f2: procedure; parse arg x; x2=x*x; return x*x2 - 3*x2 + x+x
f3: Return((arg(1)-3)*arg(1)+2)*arg(1)</lang>
{{out}}
<pre>E:\>rexx ftest
REXX-ooRexx_4.2.0(MT)_32-bit 6.04 22 Feb 2014
N=1000000
f1 60 1.747000
f2 60 1.108000
f3 60 0.452000
 
E:\>regina ftest
REXX-Regina_3.9.1(MT) 5.00 5 Apr 2015
N=1000000
f1 60 3.167000
f2 60 3.213000
f3 60 1.233000
 
ftest
REXX370 4.02 01 Dec 1998
N=10000
f1 60 41.958018
f2 60 30.447473
f3 60 28.532632</pre>
 
=={{header|RLaB}}==
2,300

edits