I started writing this article sitting on one beach, and finished it on another. It's a hard life, but somebody has to do it.
Between beaches, of course, came laboratories, board and committee rooms, hotels, factory floors, not to mention the planes, trains and automobiles which connected them - plus the associated delays, waiting rooms, and stopovers.
As the amount of time that we spend in transit increases, so does the desire to make use of it. A scientist carrying a pocket computer will wish for much the same things from it as from any other computer. In principle, something like the full range of functions can be delivered - but not, as yet, to the same degree. Since it's not possible in the small space of this article adequately to consider the full gamut, I'll stick for now to one that is central to scientific use: mathematics. Other applications can wait for another time. And (for reasons expanded in the box 'The computer now standing ...' below) I'll concentrate on the Palm platform.
When I last looked at this topic, the picture was fairly simple; it is now more complex, and on the cusp of becoming more so. At that time, you could choose the programmer who offered the best emulation of your hardware calculator - or mix and match more than one product, getting the combination of features but without the weight. You could also add a number of special-purpose numerical utilities for things that the general calculators missed out. That is still true, but now there is blurring of the emulation boundaries, and a melding in of the extra functions. New approaches owe more to desktop computer products than to dedicated hardware calculators. And a 'great leap forward' in software is suggested by developments in hardware, and firmware.
A quick search, just before this article went to press, showed more than 600 products within this bracket; many of those are 'single agenda' products - from mortgage or body-mass-index advisors, up to statistical-measure generators - but there are a number of good generic calculators as well. As in most areas of handheld programming, the running is so far made by small organisations or freelance programmers who offer their products as shareware or freeware. This is analogous to the early days of the PC, but with two important differences: palmtop (as I shall, for convenience, call pocket computers from here on in) programmers have available to them both the web and central marketing organisations (see box 'Sources' below) from which the user can make 'one-stop shop' selections.
My personal pick of the crop contains five general calculators, though for balance I have asked palmtop user Steven Hawkins, who designs specialised lighting systems, to champion his own preferred alternative. He uses a palm-based calculator 'live' in a very specific technical way (illumination, optics, umbrae, etc.). He is also a member of PalmOne's software developer programme, working on database and data handling - he therefore knows the issue from the inside but has no axe to grind (see box 'Illuminating choice' below). I also make space for five specialised utilities, for which there is no room for more than a mention: FactorPad rapidly reduces to prime factors any number less than 1010; ProStats efficiently does a number of common tasks with sampled datasets; ConverterPro facilitates international stress-free conversations referencing any kind of measurement units.
The most straightforward of the generic products is Parens, from Rick Huebner. Solid, reliable, clear, easy and intuitive to use, it looks like a standard pocket scientific, can be handed to a non-scientist colleague in full confidence that they will be able to use it instantly, and does 90 per cent of the things you do with a pocket calculator in everyday use. Unfortunately it was discontinued some time ago - if you find a copy, look after it! Also discontinued is Huebner's numerical math editor, MathPad; but they leave a vital legacy in the freeware function library, MathLib, upon which many (not all) other calculators depend. Fast and robust floating-point math functions are a time-consuming business for the programmer and take up space for the palmtop owner. Without MathLib as a shared resource, the strategy of having several calculators in one device would be a lot less viable.
Moving on, both from a program no longer supported and towards greater sophistication, a traditional divide in calculator users has been between algebraic and reverse Polish entry order, and prefix or postfix functions. These distinctions used to be reflected in palmtop programs; they still are, to a large extent, but things are changing. The dominant reverse Polish calculator is 'RPN', by Russ Webb of NthLab (though see box 'Illuminating choice' for another). It remains alive and well, with ambitious future development plans, but is joined by a new algebraic calculator 'Equate'. Part of RPN's appeal is the most uncluttered and stripped down interface of any calculator I know, whether hardware or software. Function sets are imported as scripts, many of which have been contributed by enthusiastic users and so are available for download, then loaded to an access window as needed from a single button. From a purely personal viewpoint, the availability of 15 different probability density functions at the tap of a pen is enough on its own to make this an essential. This is also the only calculator whose acceptable numeric range I have never violated in a factorial calculation (curiosity led me to discover that overflow finally happens at 1064000).
PowerOne Graph, top of a range produced by InfinitySoftware, offers in its current version the choice of algebraic, chain, or reverse Polish calculation sequencing. It is probably the most luxurious palmtop calculator out there; and it uses 'worksheets' (akin to tiny spreadsheets) to store reusable multivariable calculations. It, too, is backed by a wide library of pre-written solutions. Graphs, worksheets and one-off calculations can all call on the same bank of constants and variables, which carries over from session to session.
Russ Webb comments that 'RPN will be moving to the use of skins and a high resolution interface, much like equate.' The use of 'skins' to alter sthetic and ergonomic aspects of an interface is spreading widely in the graphical environments of larger personal computers and has started a similar penetration of handheld software. PowerOne Graph offers two skins as supplied, though these are modest variations on similar screen layouts - larger or smaller keyboards with corresponding changes in layout of other elements.
A wider demonstration of how the future could go is provided by PDAcalc, from Evert Rozendaal of ADACS. PDAcalc is particularly instructive as it evolved through a background of other products, which mark out a clear path to its present state. The line began with CplxCal: the first generally available handheld calculator program to take complex numbers in its stride, programmable, and allowing the user keyboard to be customised. Later came its sibling, the Matlab-compatible MtrxCal (see SCW January 2001), which not only handled matrices in a small memory space but, in the process, laid the foundations of a different programming approach to both complex and real variables. PDAcalc takes the best of both ideas to offer a core calculator to which functional modules are added - current modules being 'classic' and 'matrix' (emulation of the original CplxCal and MtrxCal, respectively), plus 'units' (a convertor). The core is a programmable command-line-interfaced computation machine; operation can be through this CLI or through keyboard overlays written and loaded as user programs like any other. These programmed overlays are, functionally at least, analogous to skins. The classic and units modules operate most naturally through a fairly conventional pocket-calculator style keyboard; the matrix keyboard shrinks down to three rows (numeric-entry key row; brackets and operators row; utility keys row) with input area above and output below. Keyboards can be edited, or new ones written, to suit the user's needs; entry can also be hand-written or tapped from the handheld's own input areas directly to the command line. Rozendaal also writes for device independence, so PDAcalc is usable on both PalmOS and PocketPC devices - and also in Windows on the desktop.
My final candidate is LyME, from Calerga. This one, unlike most of the others, is a spin off from (and lead in to) a desktop product. Calerga's full commercial product is SysQuake, an interactive simulation and visualisation product; it is backed up by a freeware 'lite' version, SysQuake LE. Both have an underlying Matlab-compatible programming language called LME - and LyMe is a subset port of LME to the PalmOS platform. It provides a very different approach from the other products here, in going for a 100 per cent command line approach. No keyboards; apart from one line toolbars at top and bottom, the limited screen space is given over entirely to input and output areas - output toggling between text and graphic modes as required.
All of the last three products will handle complex numbers and matrices, straight out of the box. RPN can be programmed to do so - there is a ready-made downloadable script for complex-number operations. In PowerOne Graph, matrices are handled as tables for display purposes, and automatically stored as named variables. This has aesthetic advantages, in line with the 'pick it up and use it' hardware calculator replacement philosophy, but at a cost in efficiency and compatibility with other environments. LyME is pure spirit of Matlab, fastest to use when you are familiar with it but very reliant on your own memory and disciplined practice. PDAcalc Matrix strikes a balance between the two - easier to use on an ad hoc basis than Lyme, deeper and more disciplined than PowerOne Graph.
Similar comments might be made in regard to complex quantities, which from an ergonomic point of view can be seen as special-case matrices. For anyone who needs them, Lyme has a library (one of several libraries, which can be autoloaded if you use them frequently) for handling quaternions; you could program for this in PDAcalc or RPN, but it comes out of the box with LyME.
A development that would make a big difference to all science users is the arrival of symbolic-algebra handling in mainstream products such as these. Meditor, a freeware symbolic-math editor using inline text format (think of Derive under MS DOS), has been available over this past year and is a tantalising promise of what might be ahead. The problem here has in the past been hardware and OS limitations: speed, memory, address block size, and the rest. Greg Parker of Southampton University has been looking at this for several years, investigating the possibilities of both Pocket Windows and low power consumption conventional Windows machines for running the likes of Mathematica.
Several developers acknowledge that it could be done now, though none have yet taken the plunge. Yves Piguet of Calerga (author of the LyME calculator program) comments that: 'The HP-48, which has an emulator for Palm handhelds, has done amazing things for a long time on much slower hardware. ... [I first] used Mathematica on a Next Cube ... [apart from] floating-point operations, which aren't critical for symbolic computation, current PalmOS handhelds are much faster and have as much memory (or more). We evaluate carefully when (rather than if) we're going to add symbolic capabilities ...' There are dangers as well as opportunities in rapid technological advance. Piguet points to the juggling act between staying ahead of competitors, keeping step with the technology, and not being left high and dry by market changes. Apple killed the MessagePad after significant work had been done on an LME port, and he draws parallels with a recommended but undocumented mechanism for memory allocation in PalmOS 5 that may not be there in future versions.
In the meantime, the obvious question to ask is: which one to choose? To which my only possible answer is: why would I want to choose? Having made the move from hardware to software, there is no imperative reason apart from memory space to restrict the tools available. The cost of these tools is low, a range of choices coming in at a fraction of the expenditure on one desktop product. I use all of these products, switching from one to another according to context - and I would sorely miss any one of them if it were removed. Your needs may be different from mine; it may be that you would be better served by only one of them, or three, or whatever; you may prefer, perhaps, making entirely different choices from that gamut of more than 600 alternatives. I suppose it's possible that, one day, one 'mother of all maths programs' (to borrow a phrase from discussion of this article with Steven Hawkins) will provide such a choice of interfaces and philosophies that it will do everything .. but I'm inclined to doubt it, and that time is certainly not yet. For now, play the field and reap the benefits of plurality.
The computer now standing at platform 9...
There are several platforms in use among pocket computer users, but two of them are significant for science users in the immediate term: PalmOS and Pocket Windows. Of the two, PalmOS is the more efficient and also has the best developed software, for which reason it dominates this article. Pocket Windows, however, has the backing of Microsoft and the aesthetic appeal of a user interface resembling Windows on the PC. What will happen in the future, as these two compete, I wouldn't dare speculate. I have both machine types in use, and there is a range of PocketPC calculator programs available (see Sources box below) but I rely on PalmOS for all my numerical work on the move.
Beyond those two, there are others that may be significant in the future. For instance, EPOC (the operating system that fuelled the whole pocket computer phenomenon) has not disappeared with the Psion computers that it inhabited: it has become the basis of Symbian, competing with PalmOS and Pocket Windows for the 'smartphone' market. It seems likely to me that hardware preferences will decide software in the future. An electronic reader of the same size and reading quality as a paperback book has recently appeared; it is, in essence, a specialised tablet computer. The present compromise format may well give way to a market split between phone-sized and book-sized devices, with current notebook and pocket machines disappearing. For now, though, the hand-sized tablet model is king.
By Steven Hawkins
I design and implement mission-critical lighting systems. Over the years, I've developed programs that meet my particular needs in various desktop environments and HP calculators; so when I looked for a PalmOS calculator, I wanted easy transition. MathUPro, from Creative Creek, is an RPN calculator modelled on Hewlett-Packard calculators. Functions borrowed from various financial and scientific series form a well-rounded and capable package to suit a variety of uses. The complete function-set is available in a cheaper MathU package, but the Pro release adds the powerful programming functions that I needed.
As an evaluation task, I chose an 800-line, HP41CX listing, heavily trig-based, which used many flags for program control and remapped much of the keyboard, with numerous text strings and value labels. The process was quite painless, once I figured out workarounds for some of the built-in 41CX flags. I was able to duplicate my original numeric variables, and discovered that I could easily work from my original listing, translating where necessary as I went. The program ran quite well on the first go, and the few bugs took little effort to clean up.
A stand-alone editor displays program lines on the left, available functions on the right. Lines, easily edited or modified, are added by dragging functions and numeric values from the list to the code window. Debugging is easy, a simple tool allowing breakpoints and display of current stack values, registers, and variables.
The software supports a 16-element stack, 120 functions (including 5 financial and 8 statistical), 20 global and 1,024 local registers, double-precision (16 digit) accuracy and the full range of IEEE doubles (2.2e-308 to 1.7e+308). The Pro release supports programs of up to 32,000 lines, 255 labels, 255 strings and access to all global and local variables and the stack. User created functions can be assigned anywhere on the keyboard for easy access, you can easily load in custom solutions, and labelling is available for clarity.
Quibbles? One annoyance is the absence of a built-in function or label that can automatically execute on program load. More user flags would be welcome. A PC based editor would be useful: the editor window is fine for small programs but can get very tiresome on large listings, and there is no way to print out the source code. I'd like to see full documentation in the package, not just available for download.
But these are minor quibbles. MathUPro is a well made, documented and supported application.
Sources used for this article
Organisation and/or contact ADACS; Evert Rozendaal
Products(s) PDAcalc; CmplxCal; MtrxCal (shareware)
Organisation and/or contact Creative Creek
Products(s) MathU Pro (shareware)
Organisation and/or contact Calerga; Yves Piguet
Products(s) LyME (freeware)
Organisation and/or contact Infinity Software
Products(s) PowerOne range of calculators (shareware)
Organisation and/or contact Raphael Jolly, Elefterios Stamatogiannakis
Products(s) Meditor symbolic algebra editor (freeware)
Web, see PalmGear
Organisation and/or contact Nth Lab; Russ Webb
Products(s) RPN; Equate (shareware)
Organisation and/or contact Software Engineering Inc.
Products(s) ProStats (shareware)
Web, see PalmGear
Organisation and/or contact Zingware
Products(s) ConverterPro (shareware)
Web, see PalmGear
Organisation and/or contact PalmGear
Products(s) Supplies all PalmOS products mentioned here
Organisation and/or contact PocketGear
Products(s) Supplies PocketWindows products