<-[[.: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 Pseudo 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^ | 21/09/24 | DM15L * | 21350 | 68,791 | 10131% | 14,159 | 35397% | 3rd Party Firmware : LF15C_beta_240920.hex {{ :public:calculator:guides:lf15c_beta240920.zip |}} | | 20/07/23 | DM32 | 00812 | 46,265 | 6813% | 12,224 | 30560% | f/w 2.03 | |26/05/22 |DM42 |06434 |24,701 |3637% |3741 |9352.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 | 1690% | FAST/USB power : F/W version 2.2 | | 17/09/24 | DM15L * | 21350 | 1,346 | 198% | | | 3rd Party Firmware : LF15C_beta240916 {{ :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 | |26/05/22 |DM15L |21350 |676 |99% | 185 | 462.5% |48MHz| |26/05/22 |HP35S |PHA9150KFF (2) |292 |43% |113 |282.5% | | |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) ==== ++++ 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 ++++ ++++ DM41X | 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 ++++ ++++ 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 ++++ ++++ 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 ++++ ++++ 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 ++++ ===== The SAVAGE benchmark ===== From **HPCC** Datafile V37N1 pp38-42 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 === Simple 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 ==== 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_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_V32 | 288 seconds | 4 min 48 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 | | 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 ===== Tony's Benchmark ===== From [[http://www.thimet.de/CalcCollection/CalcPerformance.html]] ==== Code ==== 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}}