Try to learn something about everything, and everything about somethingThomas Huxley “Darwin's bulldog” (1824-1895)

This is an old revision of the document!


Benchmarking

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

psuedo code

HP Museum Trig Benchmark

pseudo code

Overall Results

sorted by Maths Benchmark

DateCalculatorSerial NoFirmwareMaths Result Maths % 1)Trig ResultTrig %2)Comment
12/01/26 DM15L * 21350 lf15c_250408.hex99,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.2124,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.23,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/a292 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.193 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/a37 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

Listing for the simple (manual timed) version

DM15L Memory Dump

LF15C Memory Dump

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

LF15C Memory Dump

Listing for DM15L / HP15C

DM15L Memory Dump

DateCalculatorSerial No.FirmwareSecondsMins : SecsComment
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

Listing for the benchmark

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

DateCalculatorSerial NoLoopsTimePerformance IndexCommentsResult
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

CalculatorDisplayed ResultError=(Result / 9)Log10(Error)Comments
DM41X9.0004174031.0000463782.0141242e-05 f/w 2.3
DM41L9.0004174031.0000463782.0141242e-05 f/w DM41_34
DM15L*8.999999999834160.999999999981573-8.0027125631e-123rd Party F/W LF15C_250408
DM429.000000000001.000000000003.01430771055e-30DM42 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:14 GMT

Further Information

1)
versus HP9100 : 679
2)
versus HP9100 : 40
3)
at max. display resolution

Navigation