The Museum of HP Calculators


Benchmark Results

Two very simple benchmarks were run on various calculators. The Math benchmark tested the four basic functions and square root. The Trig benchmark tested the six basic trig functions plus natural log and anti-log and spent proportionately more time in core math routines than the math benchmark. The results were normalized to the HP-9100A which was given a score of 100. (Higher scores are better.) These simple benchmarks may not represent real world usage.

Speed / dollar is calculated as (2×math score + trig score) ÷ price × 100. Naturally, this simple number penalizes machines with advanced features. No attempt to compute "power / dollar" was made due to the complexity of assigning values for the number of steps, flexibility in memory management, continuous vs. non-continuous memory, peripherals, etc.

Model Intro
Year
Intro
Price
Math Trig Speed /
dollar
HP 9100A 1968 $4900 100 100 6
HP 9810A 1 1971 $2960 110 183 13
HP-9830A 2 1972 $5975 108 195 7
HP-65 1974 $795 7 25 5
HP-25 1975 $195 6 25 19
HP 9815A 1976 $2900 96 123 11
HP 9825A 1976 $5900 977 1140 52
HP-67 1976 $450 6 23 8
HP-97 1976 $750 7 23 5
HP-34C 1979 $150 5 18 19
HP-41C 1979 $295 13 45 24
HP-85B 2 1979 $3,250 275 398 29
HP-11C 1981 $135 6 25 27
HP-75D 1984 $1095 191 478 79
HP-71B 1984 $525 132 378 122
HP-28C 1988 $235 65 320 191
HP-42S 1988 $120 32 330 328
HP-32SII 1991 $70 86 370 774
HP-48S 1991 $250 113 655 352
HP-48G 1993 $165 159 1150 889
HP-48G SysRPL* 1993 $165 378 1350 1276
HP-48G Assembly 1993 $165 1397 2018 2916
HP-49G 1999 $179 262 1325 1033
HP-49G+ 2003 $176 643 2535 2171

Notes and Observations

The trigonometric algorithms in the handhelds appeared to be more efficient than the those used in the desktops but the desktops calculated trig functions accurate to 12 digits vs. 9 for the early handhelds. On the HP-67/97 handheld accuracy improved to 10 digits and on the HP-41C and RPL calculators, handheld accuracy was comparable to the desktops.

The code was changed as little as possible when ported. Both benchmarks had a single loop which was implemented using labels on label-based machines. Some machines like the HP-67 and HP-34C might have shown higher benchmark numbers if the benchmark was recoded using line addressing via the indirect register.

The recent handhelds have plenty of horsepower as evidenced by the trigonometric test, but they also have more overhead with larger screens, multiple data types, unlimited stacks, etc. As a result, the math results are not as impressive because they spend proportionately more time on overhead.

Notes:

  1. HP 9810 price includes $485 mathematics module.
  2. Used ATN(x/(SQR(1-x^2)) to calculate ARC SIN(x) and ATN(SQR(1-x^2)/x) to calculate ARC COS(x) on the HP-9830A and HP-85B.

The Benchmarks

Each of the benchmarks sets R2 to zero and then runs indefinitely, adding 1 to R2 on each iteration. Each benchmark was run for one minute and then stopped (R/S key pressed) and then the counter in R2 was recalled (RCL 2). To normalize results to the HP 9100, the value in R2 was divided by the R2 value for the HP 9100 (below) and then multiplied by 100. For example, after running the math benchmark for one minute, register 2 (or C as ported ) on the HP 32SII was 587. 587÷679×100 = 86% of HP 9100 speed. Individual runs may vary by a few percent and different samples of each model may also vary.

Regular RPN Versions

Math pseudo code
HP 9100 final R2 value: 679
  Trig pseudo code
HP 9100 final R2 value: 40
0
STO 2
1.01234 EEX 6
STO 0
2.345
STO 1
<loop>
RCL 1
RCL 0
×
RCL 1
-
RCL 0
÷
RCL 1
×
3.5
÷
SQRT
1
STO + 2
GTO loop
   
56.26
STO 0
0
STO 2
<loop>
RCL 0
SIN
ASIN
COS
ACOS
TAN
ATAN
LN
ex
1
STO + 2
GTO loop

* SysRPL Version

This SysRPL port was provided by Frido Bohn.

Disclaimer: The author and The Museum of HP Calculators do not take any responsibilities for any kind of damages caused directly or indirectly by this application.

Notes from Frido:

Simply transfer bench.bin into your HP48 and run it!

After the first minute the results for the Math Pseudo-Code should appear. After another minute those for the Trig Pseudo-Code. If not...try ON-C for reset.

The program runs 1 minute each test (=2 minutes). One should look if it really runs for that time. Sometimes it only runs one loop - might by some problem with HEX-INT conversions by the timer.

The source-code was assembled with Jazz V 6.8.

You may also download the compiled code.

::
DEFINE a                1GETLAM
DEFINE b                2GETLAM
DEFINE c                3GETLAM
DEFINE start           4GETLAM
DEFINE timr             5GETLAM
DEFINE !a               1PUTLAM
DEFINE !b               2PUTLAM
DEFINE !c               3PUTLAM
DEFINE !start           4PUTLAM
DEFINE !timr            5PUTLAM
{ NULLLAM NULLLAM NULLLAM NULLLAM NULLLAM }
BIND
TOADISP
CLEARLCD
xERASE
%2
xFIX
% 112880
!timr
% 1012340
!a
% 2.345
!b
ZERO
!c
$ "Math Pseudo-Code"
DISPROW1
CLKTICKS
timr
bit#%+
HXS>#
!start
BEGIN
b
a
%*
b
%-
a
%/
b
%*
% 3.5
%/
%SQRT
DROP
c
#1+
!c
CLKTICKS
HXS>#
start
#>
UNTIL
$ "Iterations: "
c
FOUR
#*
#>$
&$
DISPROW2
$ "Benchmark: "
c
UNCOERCE
% 679
%4
%/
%/
%100
%*
a%>$
&$
DISPROW3
$ "Trig Pseudo-Code"
DISPROW5
% 56.26
!a
ZERO
!c
CLKTICKS
timr
bit#%+
HXS>#
!start
BEGIN
a
%SIN
%ASIN
%COS
%ACOS
%TAN
%ATAN
%LN
%EXP
DROP
c
#1+
!c
CLKTICKS
HXS>#
start
#>
UNTIL
$ "Iterations: "
c
FOUR
#*
#>$
&$
DISPROW6
$ "Benchmark: "
c
UNCOERCE
%10
%/
%100
%*
a%>$
&$
DISPROW7
xSTD
ABND
DEPTH
NDROP
SetDAsTemp
;

HP-48G Saturn Assembly Ports

These HP-48G Saturn assembly ports were provided by Jonathan Busby. The code is available here.

HP-49G ports

These HP-49G ports were provided by Marco G. Salvagno. A bint counter was used for speed.

Math pseudo code

<< 1012340 2.345 → R0 R1
  << #1d #2000d FOR i
       R0 R1 *
       R1 -
       R0 /
       R1 *
       3.5 /
       sqrt
       DROP
       i
     NEXT
  >>
>>

Trig pseudo code

<< #1d #600d FOR i
     56.25
     SIN ASIN
     COS ACOS
     TAN ATAN
     LN EXP
     DROP
     i
   NEXT
>>

Go back to the main exhibit hall
Go back to the technologies page