Yacas - Yet Another Computer Algebra System

for Epoc

(Psion 5/5mx, Revo,7/netBook, etc.)

YACAS (Yet Another Computer Algebra System) is an easy to use, general purpose Computer Algebra System, a program for symbolic manipulation of mathematical expressions. It uses its own programming language designed for symbolic as well as arbitrary-precision numerical computations. The system has a library of scripts that implement many of the symbolic algebra operations; new algorithms can be easily added to the library. YACAS comes with extensive documentation (320+ pages) covering the scripting language, the functionality that is already implemented in the system, and the algorithms we used. The entire free source code (including the documentation) can also be found in the source code distribution.

YACAS consists of approximately 22000 lines of C++ code and 13000 lines of scripting code, with 170 functions defined in the C++ kernel and 600 functions defined in the scripting language.

The main advantages of YACAS are: free (GPL) software; a flexible and easy-to-use programming language with a comfortable and adjustable syntax; cross-platform portability (Unix, Windows, Macs, EPOC32, etc.) and small resource requirements; and extensibility.

Yacas for EPOC Machines

Read the original "EpocYacas.txt" file, written by Ayal Pinkus, the main author of Yacas. Then read the generic "Readme.txt" text and the more specific "ReadmeEpoc.txt" (almost a copy of this web page).  It is important to install the "Stdlib.SIS" before "YacasEpoc.SIS".

The most complete distribution of Yacas runs on Linux, the EPOC version currently lacks some features, mainly concerning input and output :
A Yacas 1.0.56 session can be seen below on a real Psion Revo+; if you want to see more example sessions running on EPOC32, go to the Screenshots Gallery.
Revo+ screenshots of Yacas 1.0.56

For details about Yacas releases, read the "Changes.html" and "ChangesYacasEPOC.txt" documents. As Yacas has been developed from 1999, the releases have steadily implemented more code (in C++ and in the form of Yacas scripts), so it is continuously being larger in RAM usage.

The table below, as well the above "changes" documents, may help you decide which version is better for you or you EPOC32 machine. If you have plenty of available RAM, just use the last version.

Version of Yacas 1.0.43
1.0.53rev2 1.0.56*
  Release date
14/11/2002 15/11/2003
  Minimum RAM (1)
0.6 MB
1.4 MB 1.9 MB
  Normal use of RAM (2) 1.0 MB
2.6 MB 3.6 MB
  Maximum RAM (3) 1.5-2 MB
3.7 MB 4.4 MB
  Installation size
386 KB
1.09 MB 1.37 MB
  1. the minimum of RAM is measured when started
  2. the normal use of RAM was obtained after calculating "50!", "N(1/243,70)", "D(x) Tan(x)^2" and "Integrate(x) x*Sin(x)^2", so the loaded scripts are assumed to represent a typical Yacas session with respect to script loading. After automatically loading the scripts, each input/output is faster (see the Screenshots Gallery) and takes memory only to stored results in variables
  3. the maximum of RAM happens when many scripts are loaded or variables are stored
  4. versions 1.0.53rev2 and 1.0.56 include 366 KB of help files
(*) Obs.: Yacas 1.0.56 without the plugins "PCRE" and "FileScanner", with little changes from 1.0.55, so Yacas 1.0.55 for EPOC is not available for download. Also, Yacas 1.0.54 is not available here as the used memory ranges between releases 1.0.53rev2 and 1.0.56.

So even a Psion Revo with 8 MB can run Yacas if there are not a lot of applications installed. In this case, trying to read Yacas HTML docs will take a lot of memory using Web or Opera for EPOC, so the TXT docs are more recommended.

Yacas 1.0.43

The Yacas SIS file shows version 1.43 because the installation process cannot display 1.0.43.

Some limitations of Yacas 1.0.43 for EPOC :
Yacas 1.0.5x 

The SIS file shows version 1.5x because the installation process cannot display 1.0.5x.

The ZIP file contains the directory "FatServer+400" with a version of "YacasServer.exe" that uses 400 KB more of RAM, just copy it to the "/System/Apps/Yacas/" folder on your EPOC machine (rename the other "YacasServer.exe" if you want to come back). This fat "YacasServer" is better suited to large calculation sessions due to a double size stack. If you want to do very large calculation sessions, you can download the source code and compile a Yacas version with larger stack and heap sizes.

Yacas 1.0.5x solves almost all the above limitations about the/and is faster than the release 1.0.43 for EPOC, but :
There are also many improvements on the client&server user interface, version 1.40, when compared to Yacas 1.0.43 for EPOC :
Read "ChangesYacasEPOC.txt" for more details.

Future of Yacas for EPOC/Symbian (wish list)

There are many possible improvements regarding Yacas on EPOC machines :
About Symbian machines, due to memory constraints (4.4 MB of operating RAM) to run Yacas 1.0.56, the Nokia 92xx Communicator and/or some Series 60 (Nokia 7650/ 3650, Siemens SX1, etc.) could run only an older Yacas release, like 1.0.53rev2. But the UIQ machines (SonyEricsson P800/900, Motorola A920, etc) have 7-8 MB of operating RAM, and the newer Series 80 and Series 90 machines (to be release in 2004) are expected to have more RAM available, so it would be nice to :
The above lists are expected to attract attention of C++ programmers interested to contribute in developing Yacas on EPOC/Symbian devices.

Resuming my thoughts, as the EPOC and Symbian machines approaches the power of Windows/Linux/Mac notebooks  (of some years ago), a Yacas release targeted to EPOC/Symbian would be ideal because Yacas is memory efficient and an open source project, contrary to many other Computer Algebra Systems (CAS), and Symbian is the best OS for smartphones IMHO. I support the future vision that PDA & smartphones running CAS will be used as educational tools by millions of students and as common calculation tools by many other professionals around the world.


For more information about Yacas, go to the main Yacas web page : http://yacas.sourceforge.net      

The current web page, the "ReadmeEPOC.txt", the above SIS files and some modifications on Yacas 1.0.5x for EPOC (see "ChangesYacasEPOC.txt") were done by Roberto Colistete Jr.. Thanks to Daniel Rigby for developing and compiling the C++ source code for EPOC, as well as sending the files of Yacas 1.0.53 to me. Last but not least, thanks to all the Yacas community developers and specially to Ayal Pinkus for supporting Yacas on EPOC, Linux, Windows, etc. 

If you want the installation SIS zipped file or source code of any other release (1.0.53rev2, 1.0.54 and 1.0.55), just ask me about it.

Take a look at My Epoc & Symbian projects page for more softwares.

Also visit the PocketIQ site and enjoy many other softwares for EPOC and Symbian machines.

Author : Roberto Colistete Júnior (replace the " arroba " by "@")

Petition in support of a Symbian OS option for the Psion Teklogix NETBOOK PRO
Last update : March 22nd 2004

doteasy.com - free web hosting. Free hosting with no banners.