General information
- Download
yacas-latest.tar.gz the
complete source code distribution.
- The distribution
can also be found at Source
Forge. The Windows distribution can also be found here.
- Dan McMahill
made a
NetBSD distribution for Yacas.
- View
documentation on-line This documentation is included with the source
code distribution.
- View
licence on-line This license is included with the source code distribution.
- A selection
of calculations from the Wester benchmark.
- Some additional
example calculations that Yacas can currently
perform can be found here.
- mailing
list a mailing list for Yacas.
- EiC.
The readline.c file was used for the Linux console application.
- Superficie
a 3d graph plotter using OpenGL that looks quite promising! Superficie
sports some Yacas scripts to render parametric surface plots.
- texmacs
a nice looking mathematical document editor which supports yacas sessions.
- minilzo
A lovely little and fast compression library that Yacas uses internally,
for storing scripts in an archive.
Frequently Asked Questions (FAQ)
What is a computer algebra system?
A computer algebra system (CAS) is a program that
can manipulate mathematical expressions, potentially reducing the
time it takes to perform cumbersome but trivial calculations. It does
this symbolically, so a CAS can return a mathematical expression as
a resulting answer.
Why cannot
Yacas solve my homework/integrodifferential matrix operator constraint
equations/ [insert another problem]?
Yacas is developed by a small group of volunteers and does not yet perform many of the sophisticated tasks that a modern CAS can theoretically handle.
Ask the users' mailing list (see links below) if you have a specific problem that is covered in the manual and should be solvable by Yacas.
Yacas consists of a small kernel and a library of interpreted scripts in the easy-to-use Yacas language; the scripts contain all CAS-related functionality.
You are encouraged to contribute library code for solving a specific problem.
I want to use Yacas from inside my own application. What should I do?
Yacas can be used in several ways:
- as a command-line application that takes text from standard input and prints text to standard output;
- as a server listening on a port (also on remote hosts);
- as a dynamically linked (shared) library.
The first two options allow you to use the functionality of an installed Yacas application directly from another application without having to link to any Yacas code.
For information on embedding Yacas as a library, see the embed/ subdirectory of the source tree and the manuals.
Please note that Yacas is Free Software in the sense of the Free Software Foundation, distributed under the GNU General Public License (GPL). If you embed Yacas or link to its components and distribute the resulting application, you are required to license it under the GPL.
What platforms are supported?
Yacas is very portable and runs on many platforms and OSes, including Unix flavors (including GNU/Linux and derivatives), Mac OS X, EPOC32, Ipaq and probably other devices running embedded Linux, and 32-bit Microsoft Windows (TM). The most functional version is the GNU/Linux version (supporting e.g. an on-the-fly compilation of plugins).
Yacas gives an error message, a wrong answer, etc. What's wrong?
Most probably it is a bug in Yacas, especially if you expected a correct answer after reading the manuals. Please let us know by posting to the developer's list (see links below).
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.
We now have a 1024x768 screenshot of a Yacas session under GNU/Linux.
The state of Yacas as of the beginning of 2002 is documented in the paper: Ayal Z. Pinkus and Serge Winitzki, "YACAS: a do-it-yourself computer algebra system", Lecture Notes in Artificial Intelligence 2385, pp. 332 - 336 (Springer-Verlag, 2002).
Your feedback
is much appreciated: please email yacas-devel AT lists DOT sourceforge DOT net
(email obfuscated for obvious reasons).
Mailing
list
There is
a main mailing list
for yacas at yahoogroups.com. This is a relatively low-bandwidth mailing
list.
A developer list
is also available. This is where discussions take place relating to
possible improvements for Yacas.
Credits
Ayal Pinkus
- This project was started by Ayal Pinkus who remains the main author and the primary maintainer.
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 Web site for Yacas.
Igor Khavkine
- added 'Diverge' and 'Curl', and implemented threading for the
derivative operator (the gradient). Fixed GMP code.
James Gilbertson
- Win32
port, 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 (actually, he wrote large part of the manual
as it is), and initiated numerous
improvements and test code for Yacas, and implemented yacas_client.
Actually, Serge has been one of the larger contributors, and the
main force behind the improved documentation.
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. He also greatly improved the logic theorem prover code.
Eugenia Loli
- Helped build the BeOS version of Yacas. It can be found
here
Saverio Prinz
- built a fantastic Mac 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,
and fixed some bugs relating to limits regarding infinity.
Robert V Schipper
- Ironed out a few bugs in Yacas.
Gopal Narayanan
- Debian package maintainer. Made a man page for Yacas.
Christian Obrecht
- Made a much better Limit, and made Yacas behave better at infinity.
Jitse Niesen
- Reported some bugs, helped improve various parts of Yacas, and
greatly improved the manual for Yacas.
Pablo Di Napoli
- Fixed the configure script so Yacas compiles under cygwin.
Joris van der Hoeven
- Helped with texmacs support.
Alberto González Palomo
- Implemented a console-mode version of Yacas for AgendaVR. Changed the
directory structure for the script files, and implemented initial
support for OpenMath.
Jonathan Leto
- Helped improve the integration algorithm, and helped extend
the tests used for Yacas (finding numerous bugs).
Andrei Zorine
- Started the body of statistics code.
Daniel Rigby
- Brought a client-server structure to the EPOC32 version of Yacas.
Dirk Reusch
- Added some linear algebra functions, and fixed some predicate functions.
Mark Hatsell
- made the server code work on Windows.
Yannick Versley
- sent some patches regarding bugs relating
integration and differentiation.
Franz Hack
- Supplied a Delphi interface to the Yacas DLL.
Mike Pinna
- Applied some bug fixes.
Sebastian Ferraro
- Reported bugs and supplied improved code (determinants)
Roberto Colistete Junior
- Is maintaining a version of
Yacas for SymbianOS.
started by Ayal Pinkus, ©
1999
|