A while ago, a benchmark was developed based on a slowly converging series, which was executed on the 50g and under newRPL as well.
For a more extensive discussion of the program utilized, see this discussion:
Originally, the benchmark compared userRPL with newRPL, but now that same benchmark will be used to compare the old newRPL results using the mpdecimal library versus the new decimal library. The userRPL result will be left there for comparison.
For the new library, two numbers are reported, the first one as perceived by the user including a period at slow speed, and a second one at full speed. The original results were reported before the clock management features were in place, therefore they were executed at full speed. Another difference to consider is that the old decimal library was most efficient when precision was a multiple of 9 (hence the choice of 36, 108 and 1008 digits). The new library is most efficient when the precision is a multiple of 8, so selecting 36 digits causes 40 digits to be used internally, with 4 digits being discarded at final rounding.
|Series - 12 digit precision||87.4 s||-||1.094s / 0.666s|
|Series - 36 digit precision||-||0.893s||1.200s / 0.773s|
|Series - 108 digit precision||-||1.615s||1.531s / 1.105s|
|Series - 1008 digit precision||-||10.843s||
5.887s / 5.459s
At 1008 digits, the speedup is almost 2x versus the old library, confirming that the extra effort of writing a new variable precision library paid off.
Back to comparing with classic userRPL, the speedup at the same 12-digit precision is 130x, while using the default 32-digit precision the speedup is still 118x.