Table of Contents

Calculator benchmark: Savage extended

Update: it seems that the benchmark was not well received by the community. A benchmark should provide some sort of indication, normally it is speed but for the savage benchmark it is also accuracy, the original savage benchmark is enough for this. Therefore the savage extended can be considered valid for very fast and precise future calculators. Maybe.

The idea
There are few popular benchmarks for calculators 1) and between those the one that tests more some complex mathematical operations is the Savage benchmark. Unfortunately it is not so useful to test the accuracy of a calculator 2), moreover for newer calculators it is a tiny problem. But it is easy to extend, simply do the test for different values (from 1 to 500 for example). Besides in this manner we have more informations about the accuracy done on several distinct computations that are similar each other (though it isn't a “ideal” measure).

The measure of accuracy
And how do we can measure the accuracy? Of course there are several ways, but, since it is a benchmark, tring to keep it simple, we count the sum of absolute error for each iteration of the savage benchmark.

The pseudocode

input:
  n: upper bound value to test the savage benchmark
---

globalSum = 0
sum = 1
for k=1 to (n-1) { //note the "n-1"
  sum = sum + tan ( atan ( exp ( log ( sqrt ( sum*sum) ) ) ) )
    //CAREFUL here!
    //for the original savage benchmark many have done sqrt first and square then,
    //obtaining different results.
    //The algorithm must be the same in terms of main operations:
    //Square first
    //then square root
    //then log
    //then exp
    //then atan
    //then tan
  globalSum = globalSum + abs((k+1)-sum)
}
print globalSum //the global sum obtained

the result report

A result is composed by the following list
  - the device used plus the language used, eventual overclock, eventual custom firmware and so on.
  - [optional] the number of digits used by the device during the computation.
  - time elapsed for a given n in seconds (see below). NOTE: with same accuracy the faster speed is preferred in the accuracy section and a result with the time is preferred to one without it.
  - the globalSum printed.
  - the code used.

the values for n

1'000
2'500
5'000
for faster implementations:
10'000
25'000
50'000

Speed

Physical calculators

N is 1'000

N is 2'500

N is 5'000

N is 10'000

N is 25'000

N is 50'000

Emulators on handheld/mobile devices with a screen size less equal to 7''

N is 1'000

N is 2'500

N is 5'000

N is 10'000

N is 25'000

N is 50'000

Accuracy

Physical calculators

N is 1'000

N is 2'500

N is 5'000

N is 10'000

N is 25'000

N is 50'000

Emulators on handheld/mobile devices with a screen size less equal to 7''

N is 1'000

N is 2'500

N is 5'000

N is 10'000

N is 25'000

N is 50'000

1)
that have limited capabilities, like early computers, even if newer models match the power of computers of 10-15 years ago
2)
See at least these discussions: 1, 2, 3