User Tools

Site Tools


benchmarks:savage-extended

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
benchmarks:savage-extended [2013/09/28 00:37]
pier4r
benchmarks:savage-extended [2017/05/02 03:40] (current)
pier4r
Line 1: Line 1:
 +====== 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 ((that have limited capabilities,​ like early computers, even if newer models match the power of computers of 10-15 years ago)) and between those the one that tests more some complex mathematical operations is the [[benchmarks:​savage|Savage benchmark]]. Unfortunately it is not so useful to test the accuracy of a calculator ((See at least these discussions:​ [[http://​www.hpmuseum.org/​cgi-sys/​cgiwrap/​hpmuseum/​archv020.cgi?​read=193816#​194289|1]],​ [[http://​www.technicalc.org/​tiplist/​en/​files/​pdf/​tips/​tip6_50.pdf|2]],​ [[http://​www.hpmuseum.org/​cgi-sys/​cgiwrap/​hpmuseum/​archv019.cgi?​read=157434|3]] )), 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** \\
 +<​code>​
 +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
 +
 +</​code>​
 +
 +**the result report** \\
 +<​code>​
 +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.
 +</​code>​
 +
 +**the values for n** \\
 +<​code>​
 +1'000
 +2'500
 +5'000
 +for faster implementations:​
 +10'000
 +25'000
 +50'000
 +</​code>​
 +
 +===== 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 ===
benchmarks/savage-extended.txt · Last modified: 2017/05/02 03:40 by pier4r