NewRPL has found its first real-world application: it will be tasked to calculate the constants needed to implement transcendental functions. The fast method that will be used requires a table of constants depending on the maximum precision of the system. The constants are in the form:
Real numbers are now implemented, including comparisons and the four basic operations. There are still a few memory management issues to iron out. The decimal arithmetic library makes use of dynamic memory allocation (standard malloc/free), and that doesn't play nicely with our Object memory model. Dynamic allocation needs to be replaced with static allocation for speed and to eliminate any possibility of memory leaks or heap fragmentation during long execution periods.
Error traps were also implemented (IFERR), and the first chapter of the documentation is published. Code is still undergoing a thorough cleanup and the first aplha version will be released in due time.
The newRPL core finally ran on the 50g hardware for the first time!
It was compiled and executed under HPGCC3, as we don't have yet the code needed to make it boot as a separate firmware.
The first RPL program executed was the N-Queens benchmark from this link:
The code executed was the userRPL version listed for the 48/49/50g. No modifications were needed to run it on newRPL (we want to stay true to our promise of source code compatibility).
The results are encouraging:
At 6 MHz (slow mode): 5.620 seconds
At 75 MHz (normal speed): 0.450 seconds
At 192 MHz: 0.178 seconds
These timings might vary as the code matures (hopefully faster!), but it's a very good start, and a good comparison to see where the new RPL core falls with respect to other calculators. At 75 MHz the original userRPL result was 90 seconds, that's almost exactly a 200x speed improvement.
The newRPL website is being developed. It will show the current project status and display news about the progress made by the team. Stay tuned and come often as more and more content is added!