HP Forums
Numworks Calculator Comparison - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not remotely HP Calculators (/forum-9.html)
+--- Thread: Numworks Calculator Comparison (/thread-20490.html)



Numworks Calculator Comparison - toml_12953 - 09-12-2023 04:19 AM

Here's a comparison of the three Numworks models and one TI model. Note that the N0110 is slightly slower than the N0100 but the N0120 is clearly faster than either one of them.
All the benchmarks except Thimet come from this page:
http://www.wiki4hp.com/doku.php?id=start&do=index

Thimet comes from this page:
https://www.thimet.de/CalcCollection/CalcPerformance.html

For the Addloop benchmark, I found that, once a program is interrupted, you can't print the values of its variables. Thus, I had to find a way to automatically stop the program after one minute.
I tried to do this but increase the number of calculations as little as possible. After all this benchmark is just supposed to show a single increment operation with no other ops.
If anyone has a less impactful way of doing this, I'd certainly like to know about it!

Here are the results:
https://www.dropbox.com/scl/fi/o04ytqvw31dfxjc2d36fv/Numworks-Spreadsheet.png?rlkey=ywoafghsgzspa0wh4on7mljmz&raw=1

Here are the programs used:

Addloop:
Code:
from time import *
def addloop():
  s=0
  t=monotonic()+60
  while monotonic()<=t:
    s +=1
  print("Count:",s)

Fourops:
Code:
from math import *
from time import *
def fourops(n=10000):
  t = monotonic()
  sum = 0
  b = 0; c = 0
  for a in range(1,n+1):
    b = a
    c = a
    sum += sqrt(b*c)/a
  print(sum)
  t = monotonic() - t 
  print("Time: {0:.3f} seconds".format(t))

Nqueens:
Code:
from time import *
def nqueens(n=100):
  t0 = monotonic()
  for i in range(n):
    a = [0] * 9
    r = 8
    s = 0
    x = 0
    y = 0
    t = 0
    while True:
      x += 1
      a[x] = r
      while True:
        s += 1
        y = x
        while y>1:
          y -= 1
          t = a[x]-a[y]
          if t==0 or x-y==abs(t):
            y=0
            a[x] -= 1
            while a[x]==0:
              x -= 1
              a[x] -= 1
        if y==1:
          break;
      if x==r:
        break;
  print(s)
  t0=(monotonic()-t0)/n
  print("Time: {0:.3f} seconds".format(t0))

Savage:
Code:
from math import *
from time import *
def savage():
  t=monotonic()
  a=1
  for i in range(1,2500):
    a=tan(atan(exp(log(sqrt(a*a)))))+1
  print(a)
  t=monotonic()-t
  print("Time: {0:.3f} seconds".format(t))

Extended Savage:
Code:
from math import *
from time import *
def savexten(n=10000):
  t = monotonic()  
  globalSum = 0
  sum = 1
  for k in range(1,n):
    sum += tan(atan(exp(log(sqrt(sum*sum)))))
  globalSum += abs((k+1)-sum)

  print(globalSum)
  t = monotonic()-t
  print("n =",n)
  print("Time: {0:.3f} seconds".format(t))

Summation:
Code:
from math import *
from time import *
def summation():
  t=monotonic()
  s=0
  for x in range(1,1001):
    s+=(exp(sin(atan(x))))**(1/3)
  print(s)
  t=monotonic()-t
  print("Time: {0:.3f} seconds".format(t))

Thimet:
Code:
from math import *
from time import *
def thimet(loops=10000):
  t=monotonic()
  for i in range(loops):
    r0=10
    while r0>0:
      x=r0
      x+=1
      x-=4.567E-4
      x+=70
      x-=69
      x*=7
      x/=11
      r0-=1
    x=log(x)
    x=sin(x)
    x=sqrt(x)
    x=sqrt(x)
  print(x)
  t=monotonic()-t
  print("Loops:",loops)
  print("Time: {:.3f} seconds".format(t))
  print("Index: {:.2f}".format(34/t*loops))

Naive Primes:
Code:
from time import *
def naiveprms(n=1000):
  t = monotonic()
  for k in range(3, n+1):
    for j in range(2, k):
      if k % j == 0:
        break
  t = monotonic()-t
  print("Time: {0:.3f} seconds".format(t))



RE: Numworks Calculator Comparison - xerxes - 09-13-2023 12:14 AM

Thank you Tom for this comparison. Nice to have more MicroPython results in the list, because it is much more efficient than the standard languages.
I assume that the difference on the TI-84 Plus CE is much bigger than other calculators.


RE: Numworks Calculator Comparison - toml_12953 - 09-13-2023 04:43 AM

(09-13-2023 12:14 AM)xerxes Wrote:  Thank you Tom for this comparison. Nice to have more MicroPython results in the list, because it is much more efficient than the standard languages.
I assume that the difference on the TI-84 Plus CE is much bigger than other calculators.

You're quite welcome! I've added one more test, Naive Primes to the set.

If anyone cares to extend the table with other calculators, please feel free!


RE: Numworks Calculator Comparison - toml_12953 - 09-15-2023 11:02 AM

I've added times for the TI-84 Plus CE Python to the spreadsheet. The times are slower than I would've thought.

https://www.dropbox.com/scl/fi/o04ytqvw31dfxjc2d36fv/Numworks-Spreadsheet.png?rlkey=ywoafghsgzspa0wh4on7mljmz&dl=0


RE: Numworks Calculator Comparison - xerxes - 09-16-2023 03:04 AM

(09-15-2023 11:02 AM)toml_12953 Wrote:  I've added times for the TI-84 Plus CE Python to the spreadsheet. The times are slower than I would've thought.

Yes, it's indeed slower than I would have expected. I found this on Wikipedia:
"The Python implementation is extremely slow compared to NumWorks and HP calculators due to the use of an ARM coprocessor running CircuitPython, which communicates to the calculator via 115200 baud UART serial."


RE: Numworks Calculator Comparison - Csaba Tizedes - 09-22-2023 06:40 AM

(09-16-2023 03:04 AM)xerxes Wrote:  use of an ARM coprocessor running CircuitPython, which communicates to the calculator

So my idea was not so silly in 2020...

[Image: 126842101_189502709369061_10727645895874...QRi8WiNAEo]


RE: Numworks Calculator Comparison - toml_12953 - 09-22-2023 07:26 PM

(09-22-2023 06:40 AM)Csaba Tizedes Wrote:  
(09-16-2023 03:04 AM)xerxes Wrote:  use of an ARM coprocessor running CircuitPython, which communicates to the calculator

So my idea was not so silly in 2020...

You were ahead of your time! So what are you working on now that will be commercially available in 2026? Big Grin


RE: Numworks Calculator Comparison - Csaba Tizedes - 09-23-2023 05:10 PM

(09-22-2023 07:26 PM)toml_12953 Wrote:  
(09-22-2023 06:40 AM)Csaba Tizedes Wrote:  So my idea was not so silly in 2020...

You were ahead of your time! So what are you working on now that will be commercially available in 2026? Big Grin


I'm an ENTJ. My mission to open your eyes and able to show your future. If you can't open your eyes, thats not my fault. Smile

Csaba


RE: Numworks Calculator Comparison - Guenter Schink - 09-23-2023 08:41 PM

(09-12-2023 04:19 AM)toml_12953 Wrote:  Here are the results:
https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1
Here are the programs used:

I could not resist, of course, to show the results of the G2. Minor changes where necessary, as the Python on Prime doesn't have a time module. Thus replace "from time import *" by:

import hpprime as hp
def monotonic():return hp.eval('time')

Results for:
Fourops : 0.059 s
nqueens : 0.013 s
savexten : 0.104
savage : 0.035
summation : 0.18
naiveprms : 0112
thimet : 0.654

For addloop I had to choose a different approach as the repetitive call to the PPL-function "time" is extremely time(sic!) consuming. Therefor I let it add 1 until 6,000,000 reached. Time for that 4.439 s. To compare with the other results: (6,000,000/4.439) *60 ~ 81,099,346

Günter


RE: Numworks Calculator Comparison - toml_12953 - 09-24-2023 01:57 PM

(09-23-2023 08:41 PM)Guenter Schink Wrote:  
(09-12-2023 04:19 AM)toml_12953 Wrote:  Here are the results:
https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1
Here are the programs used:

I could not resist, of course, to show the results of the G2. Minor changes where necessary, as the Python on Prime doesn't have a time module. Thus replace "from time import *" by:

import hpprime as hp
def monotonic():return hp.eval('time')

Results for:
Fourops : 0.059 s
nqueens : 0.013 s
savexten : 0.104
savage : 0.035
summation : 0.18
naiveprms : 0112
thimet : 0.654

For addloop I had to choose a different approach as the repetitive call to the PPL-function "time" is extremely time(sic!) consuming. Therefor I let it add 1 until 6,000,000 reached. Time for that 4.439 s. To compare with the other results: (6,000,000/4.439) *60 ~ 81,099,346

Günter

Great! Thanks. I can't get to the link, though.


RE: Numworks Calculator Comparison - Guenter Schink - 09-24-2023 07:22 PM

I copied the link from your first post. It still works there, not here - why? shrug

Günter

edit:
the copied link obviously got corrupted
Original link: "https://www.dropbox.com/scl/fi/o04ytqvw31dfxjc2d36fv/Numworks-Spreadsheet.png?rlkey=ywoafghsgzspa0wh4on7mljmz&raw=1"

Copied link: "https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1"


RE: Numworks Calculator Comparison - rprosperi - 09-24-2023 07:53 PM

(09-24-2023 07:22 PM)Guenter Schink Wrote:  I copied the link from your first post. It still works there, not here - why? shrug

Günter

edit:
the copied link obviously got corrupted
Original link: "https://www.dropbox.com/scl/fi/o04ytqvw31dfxjc2d36fv/Numworks-Spreadsheet.png?rlkey=ywoafghsgzspa0wh4on7mljmz&raw=1"

Copied link: "https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1https://www.dropbox.com/scl/fi/o04ytqvw3...ljmz&raw=1"

Because urls can be extremely long, the myBB Forum software shortens it where it is displayed in an original post, but preserves the actual full-length link internally. You can see the ellipsis in the middle of the link (o04ytqvw3...ljmz&raw=) where it was shortened.

When you quote some text, the text is quoted verbatim (i.e. the shortened string exactly as displayed) and the entire, full-length url is not preserved .


RE: Numworks Calculator Comparison - Guenter Schink - 09-24-2023 08:03 PM

Thanks for the explanation Bob

Günter