Release of version 1.0.27 (16 Januari 2000)
- You can now define simplification rules using pattern matching.
- small compilation problems with the newest gcc (Fixed by
Fred Bacon).
- more numeric: Ln(2), Sin(2) and Sqrt(2) should only eval if N(...)
Release of version 1.0.26 (12 Januari 2000)
- added a small lisp interpreter to triage. triage is now ready
to be used as a graphing engine.
- many improvements to speed up the engine. It should now be almost
three times as fast. The most time is currently spent in the
predicate clauses of the rules (deciding which rule applies).
- Length will now also return a length of a string and array.
- Implemented StringMid and SetStringMid, which can manipulate strings.
- Min and Max now also working on lists.
- Gcd now working on list.
- Gcd, Div and Mod will now try to find out if an expression is
a polynomial.
- Implemented OpLeftPrecedence, OpRightPrecedence.
- PrettyForm, EvalFormula. These allow nice rendering of formulas
in ascii form.
- IsFreeOf will now also accept a list of variables.
- Speed improvements.
- made readline.cpp platform-independent. It is now in commandline.cc
and unixcommandline.cc
- enhanced simplification of rationals and complex numbers.
Release of version 1.0.25 (26 December 1999)
- added links to other relevant free software.
- implemented LispRead, which reads expressions in lisp syntax.
- implemented the Example() command, which generates a new
example each time you call it. This solves the problem (I hope)
of confronting a new user with a prompt and no indication as
to what can be typed in. Just keep typing Example(), and all
sorts of examples pop up.
- Implemented TraceRule. This allows you to selectively trace single
functions. It shows what the arguments evaluate to, and then
what the function evaluates to. Try it out with
TraceRule(x+y)2+3*5+4
- TrigSimp has now been changed to TrigSimpCombine, and is now
part of the regular distribution. Also, there was still a small
bug in TrigSimp.
- Added a section on debugging in the manual.
Release of version 1.0.24 (25 December 1999)
- implemented TraceExp.
- improved substitution rules for simple arithmetic.
- IsFreeOf can now handle extended expressions:
IsFreeOf(Cos(a),Cos(a)) will now return False.
- A new module: "inprogress/trigsimp". This
file defines a function TrigSimp that changes
Cos(...)*Sin(...) expressions into Cos(...)+Sin(...)
Release of version 1.0.23 (19 December 1999)
- changed the format for argument passing to Taylor
and inversetaylor. It is now
"Taylor(var,at,degree) function" and
"InverseTaylor(var,degree) function"
- Subst implemented. Subst(x,y)x+x should return y+y.
- Introduced the concept of a 'generic object'. Next to
atoms and lists, there can now be objects Yacas can deal with.
- implemented the first generic object: an array class. This
greatly speeds up random access to large lists (if treated
as an array). Array acces is O(1) whereas list access is O(n).
- updated the documentation to reflect the most recent additions:
Assoc, AssocIndices, Drop, Take, Partition, LeftPrecedence,
RightPrecedence, ToString, Secure, FindFile, Subst, IsGeneric,
GenericTypeName, ArrayCreate, ArraySize, ArrayGet, ArraySet,
ArrayCreateFromList, ListFromArray
Release of version 1.0.22 (13 December 1999)
- enabled logging through a dedicated singlethreaded
server. see launchserver for details.
- Added makefile code to autogenerate the manual. Code
supplied by Juan Pablo Romero. So 'make install'
will now also build the online manuals.
- Added a very preliminary interface to MySQL. This is
done by invoking the default mysql client, passing in
a file for stdin, and then reading the result and casting
it into a list that Yacas can read. tools/mysqlstubs does this.
You don't have to have mysql installed to build Yacas,
which is a nice thing.
- FindFile, which scans the default directories for a file.
- made a tools directory, /usr/local/share/yacas/tools. Yacas
can launch executables from there using SystemCall and
FindFile. This directory should contain some loose exes
to connect to other programs. For now the http servers and
the mysql stubs are there. In the future such things as
a stubs for superficie and for gnuplot should also be there.
- The documentation is now built when you type 'make', in stead
of when 'make install' is invoked.
Release of version 1.0.21 (11 December 1999)
- Removed warnings during compilation
- Server returns a slightly better page on error.
- Implemented a maximum time the server will take for
a calculation (default 30 secs)
- Implemented a configuration file scheme for the server.
- fixed printing bug, where a-(b-c) was printed as a-b-c.
- Implemented a 'Secure' keyword. This disallows reading from
and writing to files, as well as system calls, from Yacas.
Useful when used within the server.
- Added "Examples" button functionality to the forms.
Release of version 1.0.20 (5 December 1999)
- Improved error reporting due to James Gilbertson.
- a Windows executable is now on the net, winyacas.zip,
due to James Gilbertson.
- ?keyword will now give you help on that keyword. Try it
with '?Apply' or so.
- Slight improvements to the server code.
Release of version 1.0.19 (29 November 1999)
- Improved windows version.
Release of version 1.0.18 (28 November 1999)
- Improved server code
- implemented a simple database
- improved error reporting. Errors now show the file and
line the error occurred.
Release of version 1.0.17 (27 November 1999)
- removed the const from LispString (some compilers fell over it)
- improved the server to also serve html pages, and allow for
password authentication.
- Fixed online manual building. You can now type './mkmanual', and
then when in yacas, type '??', and help should pop up again.
Release of version 1.0.16 (22 November 1999)
- The : operator now also accepts strings. "a" : "b" should
now return "ab"
- The manual is now completely generated using Yacas as a
document processing language, much like LaTeX.
Release of version 1.0.15 (20 November 1999)
- Drop, Take, Partition incorporated in the distribution
(as supplied by Juan Pablo Romero).
- Assoc lists are now implemented.
- Fixes to make yacas work on a Dec Alpha.
- improvements to the autoconf/automake scripts
Release of version 1.0.14 (12 November 1999)
- %d numbering in server input/output
- DestructiveReplace, Replace
- change CanBeUni to support f(x)/const constructions.
Expand(Taylor(Sin(a*x),x,0,3)) will now work correctly.
- Expand a little on integration.
- Integrate standard analytic functions like Sin, Cos, Exp.
- partial integration: first step could be integrating
polynomial*function.
- Make a LispString derived class that can use a const string, copied,
and thus not freed.
- files IN the executable.
- allow loading from exe.
- a mechanism to put scripts in the executable (preliminary).
Release of version 1.0.13 (12 November 1999)
- moved to autoconf/automake scripts.
- many many many changes to clean up the source distribution,
thanks to Daniel Richard G.
Release of version 1.0.12rev1 (11 November 1999)
- Changes to allow compilation under Sun/SGI.
- Improved the www server. Check cgiserver02.
- added FromString command.
- slight change to license. It should now at least be
compatible with GPL licenses.
Release of version 1.0.12 (7 November 1999)
- There is now a mini www server in the server/ directory!
Read the readme file for its usage.
Release of version 1.0.11
- Added code to support Windows, supplied by James Gilbertson
- Added fix to support GMP again. Supplied by Igor Khavkine.
- Added Sum({list}) and Average({list}). Examples: Sum({1,2,3})
evaluates to 6, and Average({1,2,3}) evaluates to 2.
Release of version 1.0.10
- Fixed bug in BubbleSort
- Added 'Diverge', 'Curl' and 'FillList',
and threaded derivatives
as supplied by Igor Khavkine. Example: D({x,y,z})Sin(x*y).
Release of version 1.0.9
DOCUMENTATION
- IsInFix, IsPreFix, IsPostFix, OpPrecedence, GetPrecision
- BitAnd, BitOr, BitXor
- functional operators :, .., @, /@
- Find, Simplify, Conjugate, Rationalize
ENGINE
- additional debug code: count number of defined functions:
built-ins, RuleBases.
- binarysearch in some places, in stead of linear search.
- split mathenvironment into that plus commands.cpp/h
- Add support for access to some engine information:
- GetPrecision()
- IsInFix, IsPreFix, IsPostFix, OpPrecedence.
- BitAnd, BitOr, BitXor
MATH
- Added the functional operators, .., :, @ and /@, to the
standard loaded functions.
- implemented list[[{index}]]. So now you can do list[[2 .. 4]],
which will return a list with the elements 2, 3 and 4 of
the original list.
- Change syntax for Limit: Limit(var,value) function
Release of version 1.0.8
- Access to help from the console version, by typing ??. This uses
lynx.
- Experimented a little with a calculator approach. See fltkcalc
for the results.
- Home page redesigned.
Release of version 1.0.7
Another bug fix release. Rule base code has been cleaned up. A
precedence scheme for rules is now in place. This should avoid
bugs due to rules interacting in unforeseen ways. Speedups in
the code where lists were built: Concat replaced by DestructiveInsert.
Reverse changed into DestructiveReverse.
Release of version 1.0.6
Bug fix release. Implemented InverseTaylor. Extended manual some.
Release of version 1.0.5
Changed form of manual on home page. It now uses frames. Added
Polynomial support, preliminary symbolic integration. Several
bug fixes. Created a mailing list yacas@onelist.com
Release of version 1.0.4
Added just-in-time loading. Spreaded the rules database over many
small files, so application startup should be a lot faster. Added
support for threaded functions. Assorted bug fixes.
Release of version 1.0.3
Added MathNth (in place of Nth, which is now implemented in 'standard'
package). Added an fltk-based application (yacasnotepad).
Release of version 1.0.2
Implementation of a native arbitrary precision arithmetic module.
The source is now more platform-independent. Some bugs were fixed,
and new commands added.
Release of version 1.0.1
Improved math rules database. Implemented the most important linear
algebra algorithms. Added yaglviewer, a small interactive 3d viewer
based on OpenGL and glut. yaglviewer is basically a standalone
application, reading a very simple scripting language with commands
similar to opengl's, and then showing the result.
Release of version 1.0 (initial release).
This is the first fully working version of Yacas that is
released as free source.
The language specification has been finalized, so future releases
should be backward-compatible.
This distribution contains a small library with mathematical algorithms.