-[[.:start]]
====== Benchmarking ======
There is information on HP Calculator Benchmarking online at the HP Museum
[[https://www.hpmuseum.org/speed.htm|Benchmarking]]
I've used the pseudoCode to test out my own calculators.
===== HP Museum Maths Benchmark =====
++++ psuedo code |
LBL
0
STO 2
1.01234 EEX 6
STO 0
2.345
STO 1
RCL 1
RCL 0
*
RCL 1
-
RCL 0
/
RCL 1
*
3.5
/
SQRT
1
STO+ 2
GTO
++++
This needs tweaking for each calculator, some have ''alpha'' register names, some ''numeric''. The handling of the is different in each calculator,too.
The PRG is run for 1 minute and the result is found in register 2 (or wherever).
===== HP Museum Trig Benchmark =====
++++ pseudo code |
LBL
56.26
STO 0
0
STO 2
RCL 0
SIN
ASIN
COS
ACOS
TAN
ATAN
LN
e^x
1
STO + 2
GTO
++++
==== Results ====
^Date^Calculator^Serial No^Maths Result^ Maths % ((versus HP9100 : 679))^Trig Result^Trig %((versus HP9100 : 40))^Comment^
| 12/01/26| DM15L * | 21350 | 99,869 | 14,708% | 17,306 | 43,265% | 3rd Party Firmware {{ :public:calculator:info:lf15c_250408.hex |}} |
| 21/09/24 | DM15L * | 21350 | 68,791 | 10,131% | 14,159 | 35,397% | 3rd Party Firmware {{ :public:calculator:guides:lf15c_beta240920.zip |}} |
| 20/07/23 | DM32 | 00812 | 46,265 | 6,813% | 12,224 | 30,560% | f/w 2.03 |
|26/05/22 |DM42 |06434 |24,701 |3,637% |3,741 |9,352.5% | |
|09/05/24 |DM42 * | 06434| 4,976 | 732.8% | 210 | 525.0% | 3rd Party Firmware : C47 00.109.01.03a2 |
| 02/08/24 | DM41X | 01266 | 3,273 | 482% | 627 | 1,690% | FAST/USB power : F/W version 2.2 |
| 17/09/24 | DM15L * | 21350 | 1,346 | 198% | | | 3rd Party Firmware {{ :public:calculator:guides:lf15c_beta240916_2.zip |}} |
|26/05/22 |DM41X |01266 |1,117 |164% |228 |570% |FAST mode |
| 02/08/24 | DM41X | 01266 | 1,038 | 152% | 206 | 515% | FAST : F/W version 2.2 |
| 14/01/26 | DM41X | 01266 | 900 | 132% | 177 | 442% | FAST : F/W version 2.3 |
|23/01/26 | DM15L | 21350 | 790 | 116% | 199 | 497% | F/W DM15_M1B_V34 48MHz |
|26/05/22 |DM15L |21350 |676 |99% | 185 | 462.5% |48MHz|
|26/05/22 |HP35S |PHA9150KFF|292 |43% |113 |282.5% | |
|23/12/25 | DM41L | 05121 | 261 | 38% |140 | 350% | 48MHz F/W DM41_34 |
|26/08/24 | DM41L | 05121 | 154 | 22% | 108 | 270% | 48MHz |
|26/05/22 |DM15L |21350 |150 |22% |41 |102.5% |12MHz|
|26/08/24 | DM41L | 05121 | 96 | 14% | 40 | 100% | 12MHz |
|26/05/22 |DM41X |01266 |93 |13% |18 |45% |SLOW mode (original HP41 Speed) |
|02/08/24 |DM41X | 01266 | 93 | 13% | 18 | 45% | SLOW : F/W version 2.2 |
|28/07/22 |HP11C | 2219AO3710 |37 |5.45%|9 |22.5%| |
* Reference is HP9100 : Maths Score = 679, Trig Score = 40
==== Code (Maths Benchmark) ====
++++ Listing for DM42 |
LBL "BM"
0
STO 02
1.01234E6
STO 00
2.345
STO 01
LBL 02
RCL 01
RCL 00
x
RCL 01
-
RCL 00
÷
RCL 01
x
3.5
÷
SQRT
1
STO+ 02
GTO 02
END
++++
Raw File : Maths Benchmark (bm) file for DM41X & DM42 {{ :public:calculator:progs:bm.raw |}}
Raw File : Trig Benchmark (bmt) file for DM41X & DM42 {{ :public:calculator:progs:bmt.raw |}}
++++ Listing for DM41X Maths Benchmark |
LBL ¬BM
0
STO 02
1.01234 E6
STO 00
2.345
STO 01
LBL 02
RCL 01
RCL 00
*
RCL 01
-
RCL 00
/
RCL 01
*
3.5
/
SQRT
1
ST+ 02
GTO 02
END
++++
++++ Listing for HP35S |
LBL X
0
STO C
1.01234E6
STO A
2.345
STO B
RCL B <-- loop in
RCL A
x
RCL B
-
RCL A
÷
RCL B
x
3.5
÷
√x
1
STO+ C
GTO X008 --> loop in
++++
++++ Listing for DM15L / HP15C |
42,21,15
0
42 2
1
48
0
1
2
3
4
26
6
44 0
2
48
3
4
5
44 1
42,21,2
45 1
45 0
20
45 1
30
45 0
10
45 1
20
3
48
5
10
11
1
44,40, 2
22 2
43 32
LBL E
0
STO 2
1
.
0
1
2
3
4
EEX
6
STO 0
2
.
3
4
5
STO 1
LBL 2
RCL 1
RCL 0
x
RCL 1
-
RCL 0
÷
RCL 1
x
3
.
5
÷
√x
1
STO + 2
GTO 2
RTN
++++
++++ Listing for DM32 |
LBL A
0
STO C
1.01234 E 6
STO A
2.345
STO B
LBL B
RCL B
RCL A
X
RCL B
-
RCL A
/
RCL B
X
3.5
/
SQRT
1
STO+ C
GTO B
RTN
++++
++++ DM15L Memory Dump : Maths = LBL A, Trig = LBL B |
DM15_M1B
00 05626000000001 01000000000000 01000000000000 00000000000000
04 04975000fff000 00000000000008 0000000000000c 00999999999eae
08 00000000000000 2a2f87beda1280 00000000bcaf80 00000000000000
10 05626000000001 02345000000000 00000000000000 04000000000001
14 f0000000000402 1b4c4c4c4c4c4c 000000000007f7 000000000007fe
18 00000000000000 0000000000007f 00000000a00000 01990000000002
1c 01387265622000 01579783596001 05000000000000 03000000000000
20 00000000000000 00000000000000 04000000000000 08000000000000
24 02100000000001 00000000000000 00000000000000 00000000000000
f4 00000000000000 00000000000000 00000000000000 b21282dff1cafd
f8 f5c0f3fc31fd30 fb31fc30310241 f5f4f3c0f240f6 c6f4f3f2f1f0c0
fc f142f00ab21382 dff1cbbbb9c9b8 c8b7c7300342f0 40f6f2c0f6f50b
A: 04975000fff000 B: 04975000fffeae C: 00999999999eae
S: 00000000000000
M: 04000000000000 N: 04975000000000 G: 06
++++
===== The SAVAGE benchmark =====
From **HPCC** Datafile V37N1 pp38-42
Raw File : Savage Benchmark (svg) for DM41X & DM42 {{ :public:calculator:progs:svg.raw |}}
++++ Listing for self-timed version |
LBL "SVG"
"SAVAGE"
AVIEW
RAD
2499
STO 00
1
ENTER
ENTER
ENTER
STO 01
TIME
X<> 01
LBL 01
X^2
SQRT
LN
E^X
ATAN
TAN
+
DSE 00
GTO 01
TIME
RCL 01
HMS-
HR
3600
*
END
++++
++++ Listing for the simple (manual timed) version |
No time calculation, it needs a stopwatch to measure the time... for calculators without TIME functions
LBL A
RAD
2499
STO A (for HP11C "STO I", for DM15L "STO 0")
1
ENTER
ENTER
ENTER
LBL B
X^2
SQRT
LN
E^X
ATAN
TAN
+
DSE A (for HP11C "DSE", for DM15L "DSE 0" )
GTO B
RTN
++++
++++ DM15L Memory Dump |
DM15_M1B
00 01000000000000 01000000000000 01000000000000 00000000000000
04 32499970322000 00000000000008 0000000000000c 40997997010eae
08 00000000000000 3ebeefb6e4228f e79282e8bc2ac0 00000000000000
10 00000000000000 08000000000000 06000000000000 02498970322003
14 f0000000000504 1b2d2d2d2d2d2d 000000000001fc 00000000000000
18 00000000000000 0000000000007f 00000000a00000 06000000000000
1c 04000000000000 07000000000000 05000000000000 03000000000000
20 00000000000000 00000000000000 04000000000000 08000000000000
24 02100000000001 00000000000000 00000000000000 00000000000000
fc 000000000000b2 1b82fac9b9cbbb caba0bc1c1c1f1 40f9f9f4f2e80a
A: 32499970322000 B: 32499970322eae C: 40997997010eae
S: 00000000000000
M: 00000000000000 N: 02499970322003 G: 09
++++
==== 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.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_V34 | 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_V32 | 288 seconds | 4 min 48 sec| 48MHz | 2499.970322 |
| DM41L | DM41_V34 | 513.73 seconds | 8 min 33 sec | 48MHZ | 2499.970322 |
| DM41L | DM41_V32 | 758.67 seconds | 12 min 38.67 sec | 48MHz | 2499.970322 |
| HP35S | n/a |877 seconds | 14 min 37 sec | | 2499.99939863 |
| DM41L | DM41_V34 | 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)
* DM42 : 5.56 seconds
===== N-Queens =====
* [[https://www.hpmuseum.org/cgi-bin/articles.cgi?read=700]]
Raw File : N-Queens file (nqu) for DM41X & DM42 {{ :public:calculator:progs:nqu.raw |}}
++++ Listing for HP41/DM41X/DM41L/HP42/DM42 |
// for HP41 / HP 42 ... DM41X, DM41L, DM42
// shows run-time on completion
LBL "NQU"
CLRG
TIME
STO 20
8
STO 11
LBL 00
RCL 00
RCL 11
X=Y?
GTO 04
ISG 00
DEG
STO IND 00
LBL 01
ISG 10
DEG
RCL 00
STO 09
LBL 02
DSE 09
DEG
RCL 09
X=0?
GTO 00
RCL IND 00
RCL IND 09
-
X=0?
GTO 03
ABS
RCL 00
RCL 09
-
X<>Y?
GTO 02
LBL 03
DSE IND 00
GTO 01
DSE 00
GTO 03
LBL 04
RCL 10
TIME
RCL 20
HMS-
HR
3600
*
RTN
++++
++++ Listing for DM15L with 3rd party f/w |
LBL 88
CLEAR REG
8
STO 10
LBL 80
RCL 0
RCL 10
X=Y?
GTO 84
1
STO+ 0
RCL 0
STO I
RCL 10
STO (i)
LBL 81
1
STO+ 11
RCL 0
STO 9
LBL 82
1
STO- 9
RCL 9
X=0?
GTO 80
RCL 0
STO I
RCL (i)
RCL 9
STO I
RDN
RCL (i)
-
X=0?
GTO 83
ABS
RCL 0
RCL 9
-
X<>Y?
GTO 82
LBL 83
RCL 0
STO I
1
STO- (i)
RCL (i)
X<>0?
GTO 81
1
STO- 0
RCL 0
X<>0?
GTO 83
LBL 84
RCL 11
runTime
RTN
++++
++++ Listing for DM15L / HP15C |
LBL A
CLR_REG
8
STO .0
LBL 0
RCL 0
RCL .0
TEST 5
GTO 4
1
STO+0
RCL 0
STO I
RCL .0
STO (i)
LBL 1
1
STO+.1
RCL 0
STO 9
LBL 2
1
STO-9
RCL 9
x=0
GTO 0
RCL 0
STO I
RCL (i)
RCL 9
STO I
R_down
RCL (i)
-
x=0
GTO 3
ABS
RCL 0
RCL 9
-
TEST 6
GTO 2
LBL 3
RCL 0
STO I
1
STO-(i)
RCL (i)
TEST 0
GTO 1
1
STO-0
RCL 0
TEST 0
GTO 3
LBL 4
RCL .1
RTN
++++
^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 |
|11/01/26| DM42 | 06434 | 3.26 | 7.82 seconds | 0:07.82 | 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_V34 | 509.19 seconds | 8:29.19 |48MHz |
|11/01/26| DM41L | 05121 | DM41_V34 | 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 =====
From [[http://www.thimet.de/CalcCollection/CalcPerformance.html]]
==== Code ====
++++ Listing for the benchmark |
LBL A (For DM41X and DM42 : LBL "AA")
10
STO A (For DM41X and DM42 : STO 00 )
LBL B
1
+
4.567E-4
-
70
+
69
-
7
x
11
/
RCL A (RCL 00)
1
-
STO A (STO 00)
X≠0?
GTO B
R↓
LOG
SIN
SQRT
SQRT
RTN
LBL C (For DM41X and DM42 : LBL "TBM")
XEQ A (XEQ "AA")
RCL C (RCL 03)
1
-
STO C (STO 03)
X≠0?
GTO C (GTO "TBM")
RTN
++++
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
9SINCOSTAN ATAN ACOS ASIN 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 ((at max. display resolution))^ Error (Result - 9) ^Firmware ^
| HP11C | 9.000417403 | 4.17403e-4 | |
| DM15L | 9.000417403 | 4.17403e-4 | DM15_V32 |
| DM41X | 9.000417403 | 4.17403e-4 | 2.1 |
| DM41L | 9.000417403 | 4.17403e-4 | DM41_V32 |
| 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 |
==== Page Info ====
Page created Thu May 26 07:58:36 2022 by John Pumford-Green
Page last updated: ~~LASTMOD~~
{{tag>calculator}}
===== Further Information =====