INFORMATION

Status

The language is very much in a finished state. Any code written for it should be usable in future versions. Also, the language should prove very easy to learn.

Yacas is written in very clean c++ code, and is very portable . It can compile stand-alone, and is easily embeddable. Yacas contains a native arbitrary precision arithmetic module, but can also be used with GMP.

Things implemented include: arbitrary precision, rational numeric, vector, complex, and matrix computations (including inverses and determinants and solving matrix equations), derivatives, solving, Taylor series, numerical solving (Newtons method), and a lot more non-mathematical algorithms. The language natively supports variables and user-defined functions. There is basic support for univariate polynomials, integrating functions and tensor calculations.

Backups are put on the net on a regular basis. The very latest versions can be found here. They are generally stable versions.

The to do list can be found here.

Your feedback is much appreciated.

Mailing list

There is a main mailing list for yacas at egroups.com. This is a relatively low-bandwidth mailing list.

Other freely available math packages

This is a short list of links to other related math packages I could find on the net for which source code is also available. If you know of any other software please let me know.
Ginac
Ginac is a c++ library for doing computer algebra. It allows symbolic manipulation from within a c++ program. It is currently in active development, and looks very promising.

GiNaC is an iterated and recursive acronym for GiNaC is Not a CAS, where CAS stands for Computer Algebra System. It is designed to allow the creation of integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation- intense numeric applications, graphical interfaces, etc.) under one roof. It is distributed under the terms and conditions of the GNU general public license (GPL).

HartMath
HartMath is a computer algebra system written in Java. All math functionality is written in Java itself. HartMath has roughly the same functionality as Yacas.

HartMath is an experimental computer algebra system written in Java 1.1.

Some of the main implemented features are

Big rational number arithmetic, symbolic differentiation, linear algebra functions, 2D plot functions, numeric computations, pattern matching transformation rules, functional programming, pure functions, runs on EPOC32 (i.e. Psion 5mx with Java virtual machine, ...)

Jacal
JACAL is an interactive symbolic mathematics program. JACAL can manipulate and simplify equations, scalars, vectors, and matrices of single and multiple valued algebraic expressions containing numbers, variables, radicals, and algebraic differential, and holonomic functions.

It is written in Scheme, and has the GPL license.

Maxima
Maxima is a Macsyma (early computer algebra system) clone, fully GPL'led. It can be found in the GNU repositories, and is written in Common Lisp. Maxima is being maintained by Bill Schelter.
MockMMA
MockMMA is a Mathematica-style parser and pattern matcher, written in Lisp, with some additional mathematical functionality. The link mentioned here directs you to Richard Fateman's page, which should contain a link to MockMMA.

Information

Credits

  • This project was started by Ayal Pinkus.
  • John Lapeyre made some modifications to the make file, and improved some math code.
  • Juan Pablo reported many bugs, made many suggestions for improvements, and supplied improved code (yacas scripts and makefile code).
  • Doreen Pinkus designed this home page.
  • Igor Khavkine added 'Diverge' and 'Curl', and implemented threading for the derivative operator (the gradient). Fixed GMP code.
  • Win32 port thanks to James Gilbertson. Also improved error reporting. Added initial version of Karatsuba multiplication, and added some matrix functions to the math library.
  • Daniel Richard G. added autoconf/automake scripts, made Sun/Sgi compilation possible, created a rpm spec file, many many many changes to clean up the source distribution.
  • Ladislav Zejda supplied patches to make Yacas work on Dec Alpha's.
  • Fred Bacon fixed some compiler errors on the newer gcc compiles. Reported some important bugs.
  • Schneelocke reported an important bug in numeric calculations.
  • Serge Winitzki added factorials over rationals, TeXForm, did a major overhaul of the introduction manual, and initiated numerous improvements and test code for Yacas, and implemented yacas_client.
  • Jay Belanger reported some bugs, and improved some of the GnuPlot code. He also wrote the yacas.el file, which allows you to run yacas from within emacs. His most recent version can be found here
  • Gopal Narayanan maintains the Debian package for Yacas.
  • Vladimir Livshits set up the initial sourceforge CVS repository, and updated the Windows version source code.
  • Eugenia Loli Helped build the BeOS version of Yacas. It can be found here
  • John Fremlin Added some code for fast calculation of roots of a cubic polynomial.
  • Mark Arrasmith Helped greatly in setting up the fltk-based graphicaluser interface.
  • Robert V Schipper Ironed out a few bugs in Yacas.


  written by Ayal Pinkus, © 1999