This project satisfied all those reasons, and the result has been a useful tool that I use quite a bit on my Zaurus. It is based on the infinitely-deep stack model I was familiar with from the HP 48 series of calculators. It has trig and log functions, and variable memory storage.
SlideRuleZ is a twist on the name of the logarithm-based calculating instrument that predated electronic calculators. The picture above shows a Post Versalog 1460 slide rule. I own one of these Versalogs and get it out to play with once in a while, since I find the whole design of it fascinating. The trailing "Z" in SlideRuleZ is a reference to the Zaurus.
For a very nice site with all kinds of information about slide rules, check out Sphere Research's Slide Rule Universe. [sphere.bc.ca]
DownloadSlideRuleZ was written for the Sharp ROM v3.10. It probably works for other ROMs, but this is what I tested it for. It was built against Qtopia 1.5.
sliderulez-0.9.arm.ipk (34kB IPK)
Install it like any other IPK. I prefer to use the command line:
# ipkg install sliderulez_0.92_arm.ipk
This calculator uses RPN, an efficient entry system that often seems unintuitive to new users but becomes second nature with a little practice. RPN's advantages over the so-called algebraic calculator are requiring less memory to accomplish a calculation, and it is usually faster to use, due to fewer key presses required to perform a complex calculation. There are no parentheses keys on an RPN calculator, because the stack-based approach does not require them to handle pending calculations. For a good introduction to RPN, check out some of these sites:
HP Museum's RPN page [hpmuseum.org]
Calculator.org's RPN page [calculator.org]
Wikipedia entry for RPN [wikipedia.org]
Limitations and BugsVariable storage is not persistent if you close the application. I keep SlideRuleZ in memory by checking the "Fast load" option box for the application, and then I get the dual benefit of both instantaneous loading when I hit a button and my variables are saved (since SlideRuleZ never really exits). However, even in this case variable storage will be lost if the Zaurus is rebooted or Qtopia restarted. I've reassigned the mail key on my Zaurus to launch SlideRuleZ.
You are welcome to the source code:
sliderulez source code (55kB tarball)