There are a few PDAs which come with a Linux OS (e.g. the Sharp Zaurus series), and there are others on which Linux was successfully installed (e.g. various HP iPAC ™). Actually such a gadget is a a wolf in sheep's clothing since, in principle, all open source software can be ported to and installed on it, very often with not much effort. Thus you are able to hold literally the power of modern computing in your hand. Below you find packages related to a port of PARI/GP to the Sharp Zaurus SL-5500. It is very likely that these packages can also be run on other Zaurus models or iPAC. Since we do not have access to other PDAs we shall not be able to help you installing to handhelds different from the 5500, but we are very much interested in reports on successful installs.
On our Sharp Zaurus SL-5500 (CPU: StrongARM (SA-1110), 206 MHz) the binaries from the packages opie-gp-sta_2.1.5_arm.ipk and opie-gp-dev_2.1.5_arm.ipk yield the following bench marks:
* Testing objets for gp-sta..TIME=170 for gp-dyn..TIME=100 * Testing analyz for gp-sta..TIME=2520 for gp-dyn..TIME=2420 * Testing number for gp-sta..TIME=2340 for gp-dyn..TIME=2430 * Testing polyser for gp-sta..TIME=510 for gp-dyn..TIME=450 * Testing linear for gp-sta..TIME=420 for gp-dyn..TIME=400 * Testing elliptic for gp-sta..TIME=1430 for gp-dyn..TIME=1530 * Testing sumiter for gp-sta..TIME=3940 for gp-dyn..TIME=4030 * Testing graph for gp-sta..TIME=890 for gp-dyn..TIME=900 * Testing program for gp-sta..TIME=1440 for gp-dyn..TIME=1500 * Testing trans for gp-sta..TIME=4590 for gp-dyn..TIME=4660 * Testing nfields for gp-sta..TIME=24320 for gp-dyn..TIME=26050 +++ Total bench for gp-sta is 23114 +++ Total bench for gp-dyn is 23630
Download the package
opie-gp-sta_2.1.5_arm.ipk. If not already installed on your PDA you will also need to download
libreadline4_4.3-1_arm.ipk. Install to your PDA. If you prefer you can combine downloading
and installing as usual with your graphical installer
using our feed.
Then, on your handheld, launch a shell and type
gp. That's it.
Please send us a note if you
have been successful.
If the above steps do not work (they were checked to work flawlessly only on a Zaurus SL-5500
running under OpenZaurus 3.2) you can try to download
straight to your handheld,
copy libreadline.so to your /usr/lib, put the links
ln -s libreadline.so.4.3 libreadline.so
ln -s libreadline.so.4.3 libreadline.so.4 in /usr/lib and launch
./gp-sta.2.5.1 from your
If this still does not work you can try the ports of William Stein. Maybe these will work since they do not use the readline and ncurses lib or the graphical libs for plotting. However, they suffer from a certain bug introduced by the gcc compiler on the arm platform (see the concluding remarks below).
Apart from a working arm cross compiler tool chain and the PARI/GP source tar ball
you will need the packages
We assume that you have libreadline.so, its associated headers, and libncurses.so
installed at the appropriate places in your tool chain (otherwise download
readline_4.3-arm-dev.tgz and grab libncurses.so
from your handheld, or compile with readline disabled).
Unpack Olinux-armv4l.tgz in the directory pari-2.5.1 (you may try other versions of
PARI/GP, but 2.5.1 worked for us). In essence, nothing more than a
has to be issued. However, as usual there might be tiny problems:
The file Olinux-armv4l/README will give further
details how to proceed, in particular it will tell you what to do with plotQt.tgz.
Please send us your improvements.
The gp binaries were compiled using the gcc cross compiler version 2.95.2. This cross compiler
has a serious bug. Under rare instances the mod function
a%b gives wrong results. Accordingly,
PARI/GP would sometimes yield unexpected results or error messages (e.g. if you call (3*2^30)%2 or exp(3)).
We cured this a bit by patching the function divll() in the PARI/GP kernel. For us, this seems to work
satisfactory, but since there are a lot more instances where PARI/GP uses the mod function we cannot
give any guaranties ...
Because of the "MaximizeButton-bug" in opie a dummy MaximizeButton.xpm will automatically be installed by the mentioned ipk-packages providing PARI/GP.
|PARI/GP-binaries for the arm processor|
|opie-gp-sta_2.1.5_arm.ipk||The right choice for those who want to simply compute with gp on the PDA. The Pari/GP calculator with readline and high resolution plot enabled, tested for the Sharp Zaurus running OpenZaurus version 3.2 (see the screen shots below). You need libreadline.so.4.3. If not already installed download the libreadline package from below.|
|opie_gp-dev_2.1.5_arm.ipk||The PARI/GP calculator with readline and high resolution plot enabled as dynamic executable, the libpari.so and its associated headers. Useful if you want both functionalities: computing with gp on your PDA and developing on your PDA using the PARI/GP library (you need gcc or so too ;-). Tested on the Sharp Zaurus 5500 with OpenZaurus version 3.2 (see the screen shots below). You need libreadline.so.4.3 (see below).|
|libreadline4_4.3-1_arm.ipk||The libreadline4_4.3-1_arm.ipk needed by the two packages listed before. Identical with the homonymous package from the official stable OpenZaurus feed.|
|parigp-help_2.1.5_arm.ipk||A html documentation of the gp functions which can be used on your handhelp (where gphelp is not available).|
|Packages for porting PARI/GP to the arm processor|
|Olinux-arm4l.tgz||The necessary files for cross-compiling PARI/GP for the arm processor. See the included README for details.|
|plotQt.tgz||The plotQt.c file (to be moved to $PARI/src/graph). Needed if you want to compile PARI/GP with support for high resolution plotting in a Qtopia or Opie environment on the arm. Using plotQt.c it is in general possible to make available high resolution plot on platforms not using X11. It is also a nice alternative to plotX.c under Linux :-) The future versions of PARI/GP (versions > 2.5.1) will have this integrated in their source tree.|
|readline_4.3-arm-dev.tgz||The libreadline.so and its headers, necessary if you want to compile the PARI/GP calculator for the arm processor with readline enabled.|