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 |
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:
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.
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 |
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 ;
These HP-48G Saturn assembly ports were provided by Jonathan Busby. The code is available here.
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