User RPL speed



#8

For sure some of you remember the thread about the Calculator Benchmark. A legitimate criticism was not having a structured version of the test algorithm for languages without GOTO command or if slower with unstructured code. Meanwhile I have added an accurate structured version of the test using the same algorithm as the unstructured one. If a language allows both versions, you will find the faster version in the table now.

This is the accurate User RPL implementation:

<< 8. 0. 0. 0. { } -> R S X Y A
<< CLEAR TICKS
1. R START 0. NEXT R ->LIST 'A' STO
DO
'A' 'X' INCR R PUT
DO
'S' INCR DROP
X 'Y' STO
WHILE Y 1. > REPEAT
A X GET A 'Y' DECR GET -
IF DUP 0. == SWAP ABS X Y - == OR THEN
0. 'Y' STO
'A' X A X GET 1. - PUT
WHILE A X GET 0. == REPEAT
'A' 'X' DECR A X GET 1. - PUT
END
END
END
UNTIL Y 1. == END
UNTIL X R == END
TICKS SWAP - B->R 8192. /
S
>>
>>

After running the program, it returns the test value of 876 for correct executing and the time needed, if I am right that 8192 ticks are one second on all RPL calculators. The typical execution speed of the HP-50G is 90.3 seconds after 10 runnings.

It would be nice, if somebody can test a RPL calculator with other hardware.

Hardware Overview:
------------------
Saturn 0.640 MHz: HP-28C
Saturn 1 MHz: HP-28S
Saturn 2 MHz: HP-48 S/SX
Saturn 3.7-4 MHz: HP-48 G/GX/G+
Saturn 4 MHz: HP-49G
ARM9 48 MHz: HP-48GII
ARM9 75 MHz: HP-49G+ / HP-50G

Edited: 6 June 2007, 9:04 a.m.


#9

I own a HP-28s. TICKS is new to me. Is it implemented in first generation User-RPL or is only available via Sys-RPL?


#10

On the HP-28S you should use #11CAh SYSEVAL. For instance, in interactive mode,

#11CAh SYSEVAL ENTER
#11CAh SYSEVAL ENTER
SWAP - 8192 /

will return the elapsed time between the two ENTER presses.

Regards,

Gerson.

P.S.:

I think replacing TICKS with #11CAh SYSEVAL in Xerxe's program might work.


Edited: 6 June 2007, 10:10 a.m.

#11

If Gersons tip doesn't work, you can try this version using a stopwatch:

<< 8. 0. 0. 0. { } -> R S X Y A
<< CLEAR
1. R START 0. NEXT R ->LIST 'A' STO
DO
'A' 'X' INCR R PUT
DO
'S' INCR DROP
X 'Y' STO
WHILE Y 1. > REPEAT
A X GET A 'Y' DECR GET -
IF DUP 0. == SWAP ABS X Y - == OR THEN
0. 'Y' STO
'A' X A X GET 1. - PUT
WHILE A X GET 0. == REPEAT
'A' 'X' DECR A X GET 1. - PUT
END
END
END
UNTIL Y 1. == END
UNTIL X R == END
440. .1 BEEP
S
>>
>>

Edited: 6 June 2007, 12:03 p.m.

#12

Well, I just ran it on my 48SX, and I got the following output


2:            368.674194336
1: 876


I assume that the first time is the number of seconds used?

#13

Thanks for testing. I have updated the table with your result.

Yes, the 876 means that the program works correctly and the second value on the stack is the execution time in seconds. Note that it is important to use the decimal point at all constants in the program for faster execution.


#14

Yup. I typed it in exactly as presented above.


Possibly Related Threads...
Thread Author Replies Views Last Post
  Writing RPL programs on OS X Sean Freeman 18 2,204 11-30-2013, 03:59 PM
Last Post: Sean Freeman
  48G vs 49G+ User RPL Speed Comparison John Colvin 7 1,000 11-16-2013, 10:07 PM
Last Post: Han
  RPL 32 David Hayden 4 825 11-11-2013, 11:34 AM
Last Post: David Hayden
  HHC / HP Museum Programming Contest for RPN and RPL machines Gene Wright 18 2,077 09-22-2013, 09:39 AM
Last Post: Miguel Toro
  WP-34S: Speed of y^x Marcel Samek 1 469 09-14-2013, 07:31 PM
Last Post: Paul Dale
  WP-34S function execution speed ? Gene Wright 4 707 09-04-2013, 05:40 PM
Last Post: Paul Dale
  HP-39gII speed Mic 2 666 02-24-2013, 05:55 PM
Last Post: Thomas Klemm
  Calculator Speed Benchmark (Add Loop) Thomas Chrapkiewicz 2 633 01-20-2013, 11:24 AM
Last Post: Thomas Chrapkiewicz
  Speed comparison: HP 30b vs. WP 34s Dieter 9 1,109 12-08-2012, 04:34 AM
Last Post: Paul Dale
  RPL long vs. short names peacecalc 5 823 10-30-2012, 01:25 PM
Last Post: peacecalc

Forum Jump: