Table of Contents
Benchmarking
Various methods to test the speed of calculators
HP Museum Benchmarks
These pseudo-code examples need tweaking for each calculator, some have alpha register names, some numeric.
The handling of the <loop> is different in each calculator,too.
The Programs are run for 1 minute and the result (the number of loops completed) is found in register 2 (or wherever is used in the calculator being tested).
HP Museum Maths Benchmark
HP Museum Trig Benchmark
Overall Results
sorted by Maths Benchmark
| Date | Calculator | Serial No | Firmware | Maths Result | Maths % 1) | Trig Result | Trig %2) | Comment |
|---|---|---|---|---|---|---|---|---|
| 12/01/26 | DM15L * | 21350 | lf15c_250408.hex | 99,869 | 14,708% | 17,306 | 43,265% | 3rd Party Firmware |
| 21/09/24 | DM15L * | 21350 | lf15c_beta240920.zip | 68,791 | 10,131% | 14,159 | 35,397% | 3rd Party Firmware |
| 20/07/23 | DM32 | 00812 | 2.03 | 46,265 | 6,813% | 12,224 | 30,560% | |
| 26/05/22 | DM42 | 06434 | 3.21 | 24,701 | 3,637% | 3,741 | 9,352.5% | |
| 09/05/24 | DM42 * | 06434 | C47 00.109.01.03a2 | 4,976 | 732.8% | 210 | 525.0% | 3rd Party Firmware |
| 02/08/24 | DM41X | 01266 | 2.2 | 3,273 | 482% | 627 | 1,690% | FAST/USB power |
| 17/09/24 | DM15L * | 21350 | lf15c_beta240916_2.zip | 1,346 | 198% | 3rd Party Firmware | ||
| 26/05/22 | DM41X | 01266 | 2.1 | 1,117 | 164% | 228 | 570% | FAST mode |
| 02/08/24 | DM41X | 01266 | 2.2 | 1,038 | 152% | 206 | 515% | FAST |
| 14/01/26 | DM41X | 01266 | 2.3 | 900 | 132% | 177 | 442% | FAST |
| 23/01/26 | DM15L | 21350 | DM15_M1B_34 | 790 | 116% | 199 | 497% | 48MHz |
| 26/05/22 | DM15L | 21350 | DM15_M1B_32 | 676 | 99% | 185 | 462.5% | 48MHz |
| 26/05/22 | HP35S | PHA9150KFF | n/a | 292 | 43% | 113 | 282.5% | |
| 23/12/25 | DM41L | 05121 | DM41_34 | 261 | 38% | 140 | 350% | 48MHz |
| 26/08/24 | DM41L | 05121 | DM41_32 | 154 | 22% | 108 | 270% | 48MHz |
| 26/05/22 | DM15L | 21350 | DM15_M1B_32 | 150 | 22% | 41 | 102.5% | 12MHz |
| 26/08/24 | DM41L | 05121 | DM41_32 | 96 | 14% | 40 | 100% | 12MHz |
| 26/05/22 | DM41X | 01266 | 2.1 | 93 | 13% | 18 | 45% | SLOW mode (original HP41 Speed) |
| 02/08/24 | DM41X | 01266 | 2.2 | 93 | 13% | 18 | 45% | SLOW |
| 28/07/22 | HP11C | 2219AO3710 | n/a | 37 | 5.45% | 9 | 22.5% |
- Reference is HP9100 : Maths Score = 679, Trig Score = 40
Code
Maths Benchmark Listing for DM42
Raw File : Maths Benchmark (bm) file for DM41X & DM42 bm.raw
Raw File : Trig Benchmark (bmt) file for DM41X & DM42 bmt.raw
Maths Benchmark Listing for DM41X
Maths Benchmark Listing for HP35S
Maths Benchmark Listing for DM15L / HP15C
Maths Benchmark Listing for DM32
DM15L Memory Dump : Maths Benchmark = LBL A, Trig Benchmark = LBL B
The SAVAGE benchmark
From HPCC Datafile V37N1 pp38-42
Raw File : Savage Benchmark (svg) for DM41X & DM42 svg.raw
Listing for self-timed version
Results
On Battery:
| Calculator | Firmware | Seconds | Mins/seconds | Comment | Displayed Result |
|---|---|---|---|---|---|
| DM15L * | LF15c_beta250217b | 3.862 seconds | 0 mins 3.862 sec | Timed by internal function “runTime” | 2500.00000000118 |
| DM15L * | LF15c_beta250215 | 3.969 seconds | 0 mins 3.969 sec | Timed by internal function “runTime” | 2500.00000000118 |
| DM15l * | LF15C_250408 | 4.008 seconds | 0 mins 4.008 sec | Timed by internal function “runTime” | 2500.00000000118 |
| DM15L * | LF15c_beta241006 | 5.9510 seconds | 0 mins 5.951 sec | Timed by internal function “runTime” | 2500.00000000118 |
| DM15L * | LF15C_beta240928 | 6.3 seconds | 0 min 6.3 sec | manually timed | 2500.00000000118 |
| DM32 | 2.03 & 2.06 | 6.3 seconds | 0 min 6.3 sec | 2500.00000000 | |
| DM42 | 3.22 | 14.9 seconds | 0 min 14.9 sec | 2500.00000000 | |
| DM41X | 2.3 | 143.69 seconds | 2 min 26.69 sec | FAST mode / USB Power | 2499.970322 |
| DM41X | 2.1 | 207.03 seconds | 3 min 27.03 sec | FAST mode | 2499.970322 |
| DM41X | 2.2 | 244.2 seconds | 4 min 4.25 sec | FAST mode | 2499.970322 |
| DM15L | DM15_M1B_34 | 247.3 seconds | 4 min 34.3 sec | 48MHz | 2499.970322 |
| DM41X | 2.3 | 284.15 seconds | 4 min 44.15 sec | FAST Mode | 2499.970322 |
| DM15L | DM15_32 | 288 seconds | 4 min 48 sec | 48MHz | 2499.970322 |
| DM41L | DM41_34 | 513.73 seconds | 8 min 33 sec | 48MHZ | 2499.970322 |
| DM41L | DM41_32 | 758.67 seconds | 12 min 38.67 sec | 48MHz | 2499.970322 |
| HP35S | n/a | 877 seconds | 14 min 37 sec | 2499.99939863 | |
| DM41L | DM41_34 | 1285.93 seconds | 21 min 25.93 seconds | 12MHz | 2499.970322 |
| DM41X | 2.1 | 2652.37 seconds | 44 min 12.37 sec | SLOW mode | 2499.970322 |
| HP11C | 5160 seconds | 1 hour 26 min 0 sec | 2499.970322 |
On USB Power :
- DM41X : 58.1 seconds (FAST mode) (F/W/ Version ?)
- DM42 : 5.56 seconds
N-Queens
Raw File : N-Queens file (nqu) for DM41X & DM42 nqu.raw
Listing for HP41/DM41X/DM41L/HP42/DM42
Listing for DM15L with LF15C firmware
| Date | Calculator | Serial No. | Firmware | Seconds | Mins : Secs | Comment |
|---|---|---|---|---|---|---|
| 12/01/26 | DM15L* | 21350 | LF15C_250408 | 0.992 seconds | 0:0.992 | Self-timed with runTime function |
| 28/01/26 | DM42 | 06434 | 3.23 | 7.30 seconds | 0:07.30 | Battery |
| 14/01/26 | DM41X | 01266 | 2.3 | 49.55 seconds | 0:49.55 | FAST mode / USB Power |
| 10/01/26 | DM41X | 01266 | 2.3 | 101.29 seconds | 1:41.29 | FAST mode / battery |
| 23/01/26 | DM15L | 21350 | DM15_M1B_34 | 202.16 seconds | 3:22.16 | 48MHz, manually timed |
| 10/01/26 | DM41L | 05121 | DM41_34 | 509.19 seconds | 8:29.19 | 48MHz |
| 11/01/26 | DM41L | 05121 | DM41_34 | 870.58 seconds | 14:30.58 | 12MHz |
| 10/01/26 | DM41X | 01266 | 2.3 | 1008.60 seconds | 16:48.60 | SLOW mode / battery |
* Running 3rd party firmware https://www.hpmuseum.org/forum/thread-20046.html
Tony's Benchmark
Code
For multiple loops store a Loop Count in C (or in Register 03)
(1000 STO C) and then XEQ C
For single loop (slow calculator) simply XEQ A
Result is the time to complete the loop(s) and deliver the answer 0.264577
Performance Index is calculated as
Loops x 34 / Time
For 1000 loops in 13 seconds:
1000 x 34 / 13 = 2615.38
Results
| Date | Calculator | Serial No | Loops | Time | Performance Index | Comments | Result |
|---|---|---|---|---|---|---|---|
| 22/11/23 | DM42 | 06434 | 1000 | 8 sec | 4250 | USB Power | |
| 22/11/23 | DM32 | 00812 | 1000 | 13 sec | 2615 | f/w : 2.06 | 0.26457749818 |
| 22/11/23 | DM42 | 06434 | 1000 | 21 sec | 1619 | Battery Power | 0.26457749818 |
| 21/09/24 | DM15L * | 21350 | 1000 | 42.8 sec | 794 | 3rd Party Firmware : LF15C_beta240921 | 0.26457749817596 |
| 21/09/24 | DM15L * | 21350 | 100 | 4.5 sec | 756 | 3rd Party Firmware : LF15C_beta240921 | 0.26457749817596 |
| 22/11/23 | DM41X | 01266 | 20 | 6 sec | 113 | FAST mode / USB | |
| 09/05/24 | DM42 * | 06434 | 30 | 9.6 sec | 106 | 3rd Party Firmware : C47 00.109.01.03a2 | |
| 22/11/23 | DM15L | 21350 | 10 | 12 sec | 28 | 48MHz | 0.264577498 |
| 22/11/23 | DM41X | 01266 | 10 | 10 sec | 24 | FAST mode / Battery | 0.264577498 |
| 22/11/23 | HP35S | PHA9150KFF | 5 | 25 sec | 6.8 | ||
| 22/11/23 | DM15L | 21350 | 10 | 54 sec | 6.3 | 12MHz | 0.264577498 |
| 22/11/23 | DM41X | 01266 | 10 | 118 sec | 2.8 | SLOW mode/ Battery | |
| 22/11/23 | HP11C | 2219A03710 | 1 | 21 sec | 1.6 |
Fingerprinting
Each calculator handles the calculation of functions (SIN, COS etc) differently - different algorithms, different degrees of precision etc.
One way of spotting similar underlying hard/firmware is to carry out a fixed chained calculation on each calculator and to observe the result.
One common test is a sequence of SIN COS TAN ATAN ACOS ASIN on a relatively low starting number - such as 9
9SINCOSTANATANACOSASIN gives a number (hopefully) very close to the starting value of 9 - and the variance from 9 is a fingerprint that can be used to spot similarities between different models.
| Calculator | Displayed Result 3) | Error (Result - 9) | Firmware |
|---|---|---|---|
| HP11C | 9.000417403 | 4.17403e-4 | |
| DM15L | 9.000417403 | 4.17403e-4 | DM15_32 |
| DM41X | 9.000417403 | 4.17403e-4 | 2.1 |
| DM41L | 9.000417403 | 4.17403e-4 | DM41_32 |
| HP35S | 8.99999986001 | -1.3999e-7 | |
| DM15L * | 8.99999999983416 | -1.65842e-10 | 3rd party LF15C_beta240916 17/09/24 |
| DM42 | 9.00000000000 | -6.2466e-29 | DM42 3.22 / Free42 3.0.15 |
| DM32 | 9.00000000000 | -6.2466e-29 | 2.06 |
I also found a different version of the same idea at https://tangentsoft.com/rpn/wiki?name=Ballpark+Accuracy#results
Instead of subtracting 9 from the result this test divides the result by 9 and then finds the LOG10 of this fractional error
9SINCOSTANATANACOSASIN 9 / LOG
Here are some of these results
| Calculator | Displayed Result | Error=(Result / 9) | Log10(Error) | Comments |
|---|---|---|---|---|
| DM41X | 9.000417403 | 1.000046378 | 2.0141242e-05 | f/w 2.3 |
| DM41L | 9.000417403 | 1.000046378 | 2.0141242e-05 | f/w DM41_34 |
| DM15L* | 8.99999999983416 | 0.999999999981573 | -8.0027125631e-12 | 3rd Party F/W LF15C_250408 |
| DM42 | 9.00000000000 | 1.00000000000 | 3.01430771055e-30 | DM42 3.26 / Free42 3.3.10 |
Page Info
Page created Thu May 26 07:58:36 2022 by John Pumford-Green
Page last updated: 17/02/26 19:15 GMT