I have used the Bessel function of first kind to carry out a benchmark for some models of SwissMicros and HP. The program is taken from the book "HP-41 Extended Functions Made Easy" by Keith Jarett, Synthetix, 1983.
It can run on the HP-41C and the HP-15C with nearly the same code. The only modifications necessary is the conversion of the register and label numbers from one to two digits. The program for the 15C-calculator is listed at the bottom of the message. I calculated J(50,50.0). The calculator returned 0.1214090222 (result from Wolfram Alpha: 0.1214090218976...)
Here are the execution times:
Code:
calculator | execution time | remarks
------------+------------------+-----------
HP-41CV | 87.6 sec |
HP-41CL | 85.1 sec | TURBOX
HP-41CL | 4.9 sec | TURBO50
DM-41L | 115.7 sec | 12 MHz
DM-41L | 73.7 sec | 48 MHz
DM-41L* | 43.9 sec | 12 MHz
DM-41L* | 10.7 sec | 48 MHz
HP-15CLE | 2.1 sec |
DM-15L | 51.7 sec | 12 MHz
DM-15L | 12.6 sec | 48 MHz
HP-15C | 258.9 sec |
The times for the -41s were measured with the internal clock. The times for the -15s were taken manually and are therefore less accurate (+/-0.1 sec).
The DM-41L* data refer to an DM-41L with DM-15 firmware.
What wonders me is that the DM-41L is so much slower than the DM-15L. It's also strange, that the speed increase for the DM-41L from 12 MHz to 48 MHz is only 1.6x instead of 4x for the DM-15L.
May be there is some potential for optimisation in the DM-41L.
Here is the code I used:
Code:
# --------------------------------------------
# HEWLETT·PACKARD 15C Simulator program
# Created with version 3.4.00
# --------------------------------------------
#T:JNX
#D:Program calculates Jn(x)
Store order n in Y and x in X.
Program taken from the book "HP-41 Extended Functions Made Easy"
by Keith Jarett, Synthetix, 1983
#L-2:Bessel Function of first kind and order n
#R0:order n
#R1:Jn(x)
#R2:Norm
#R3:x
#R4:Ji(x)
#R5:Ji+1(x)
#R6:Jn+1(x)
#R7:2i
# --------------------------------------------
000 { }
001 { 42 21 12 } f LBL B
002 { 44 3 } STO 3
003 { 43 16 } g ABS
004 { 5 } 5
005 { 40 } +
006 { 34 } x↔y
007 { 44 0 } STO 0
008 { 43 30 8 } g TEST x<y
009 { 34 } x↔y
010 { 43 44 } g INT
011 { 4 } 4
012 { 20 } ×
013 { 44 7 } STO 7
014 { 15 } 1/x
015 { 44 2 } STO 2
016 { 44 4 } STO 4
017 { 44 5 } STO 5
018 { 42 21 0 } f LBL 0
019 { 45 5 } RCL 5
020 { 16 } CHS
021 { 45 7 } RCL 7
022 { 45 3 } RCL 3
023 { 10 } ÷
024 { 45 4 } RCL 4
025 { 44 5 } STO 5
026 { 20 } ×
027 { 40 } +
028 { 44 4 } STO 4
029 { 45 7 } RCL 7
030 { 4 } 4
031 { 10 } ÷
032 { 42 44 } f FRAC
033 { 43 30 0 } g TEST x≠0
034 { 10 } ÷
035 { 44 40 2 } STO + 2
036 { 45 0 } RCL 0
037 { 2 } 2
038 { 44 30 7 } STO − 7
039 { 20 } ×
040 { 45 7 } RCL 7
041 { 43 30 6 } g TEST x≠y
042 { 22 1 } GTO 1
043 { 45 4 } RCL 4
044 { 44 1 } STO 1
045 { 45 5 } RCL 5
046 { 44 6 } STO 6
047 { 45 7 } RCL 7
048 { 42 21 1 } f LBL 1
049 { 43 30 0 } g TEST x≠0
050 { 22 0 } GTO 0
051 { 45 4 } RCL 4
052 { 44 30 2 } STO − 2
053 { 45 2 } RCL 2
054 { 44 10 1 } STO ÷ 1
055 { 44 10 4 } STO ÷ 4
056 { 44 10 5 } STO ÷ 5
057 { 44 10 6 } STO ÷ 6
058 { 45 5 } RCL 5
059 { 45 4 } RCL 4
060 { 45 6 } RCL 6
061 { 45 1 } RCL 1
062 { 43 32 } g RTN
# --------------------------------------------
EDIT:
Updated the table with the data of the HP-15C and the converted DM-41L