* small improvement to Arg(...) working on real numbers.
* improved 'make test', no need to install before test any more.
* VarList can now accept a second argument, a filter predicate.
* Pattern matcher now allows extended prototypes, like
PP(list_Contains("a")) <-- ... etcetera.
* c-style tokenizer using CTokenizer() (DefaultTokenizer() switches back
to the default tokenizer).
* Great speed-up of function Assoc.
* Christian Obrecht implemented the Rabin-Miller primality testing
algorithm, which greatly improves the speed of IsPrime.
* Orthogonal polynomials OrthoP, OrthoP,OrthoG,OrthoH,OrthoL,
OrthoT,OrthoU implemented by Serge Winitzki.
* various speedups, and a new memory manager, optimized for allocating
many small blocks (which is the case in Yacas).
* Changed the directory structure for the script files
* Greatly improved Simplify function.
* Added CurrentFile, CurrentLine functions
* Implemented backquote mechanism: `(...) will substitute every @a with
the evaluation of a (and if a is a function the function name is
replaced). The end result is evaluated. see substitute.cpp for more
details
many more... see http://www.xs4all.nl/~apinkus/changes.html for the complete
list.
changelog 1.0.41-1.0.43:
Added the YacasNotebook directory with the emacs shell to the repository.
We have support for BeOS! Thanks to Eugenia Loli.
Serious bugfix: the ^ operator wasn't working like it should. It was mapped to BitXor, and its precedence
was wrong.
Allowed CForm to accept if (predicate) body; and if (predicate) body else other; These routines need to be
written still, however, for them to also work in Yacas itself.
cleaned up some code.
Speedup of 40% of general Yacas execution.
Some improvements to the logic theorem prover so it can handle (a>b)-type epressions.
added support for annotating expressions, with GetExtraInfo and SetExtraInfo.
Initial checkin into sourceforge CVS. Thanks to Vladimir Livshits!
Fixed some windows compilation problems. ElfDll being explicitly mentioned in mathcommands3.cc, and
explicitly including elfdll.h.
added initial versions for the c-like &, | % and ^ operators, and if (...) ... else ... . This will probably make it
possible in the future to write code that is a lot more readable than If(..., ..., ...). The else clause binds to the
last if, just like in c. So this means you can now enter expressions like: if(3 < 3) a else if (3 > 3) b else c;
there are about 8 pages of changes since the last packaged version (1.0.29).
A complete list may be found at http://www.xs4all.nl/~apinkus/infoindex.html
the changes include a large number of bug fixes, several new features such as
- Implemented ContFrac, which makes a continued fraction expansion of a number.
- Implemented Decimal. Decimal calculates an infinite decimal representation
of a number.
- Implemented LagrangeInterpolant, a way to create a polynomial that goes
through certain points.
- Implemented Select, which can select certain elements from a list based on
a predicate test function.
- Half-integer factorials (sent in by Serge Winitzki)
- Added GetPrimeFactors.
- Implemented RandomIntegerVector, RandomPoly.
plus several others.
* added a directory colorcode with code to htmlize the scripts. it also color-highlights
the code. Try it out by typing './colorcode' in that directory, and then
'netscape scriptsmain.html'
* Pattern matching code optimized a little.
* SylvesterMatrix, code supplied by James Gilbertson.
* MatrixRow, MatrixColumn, and GenMatrix supplied by James Gilbertson.
* changed Intersection and Difference, so they handle lists with multiple identical
elements correctly.
* Fixed the D(x)x+y bug reported by Fred Bacon.
* Fixed the Gcd(x,x) bug reported by Scott.
* added Factorize({list}). Factorize(1 .. 4) should now return the same as 4! for instance.
* Added Content and PrimitivePart to the univariate polynomial code. See the manual for an
explanation of these functions.
Yacas (Yet Another Computer Algebra System) is a small and highly flexible
computer algebra language. The syntax uses a infix-operator grammar
parser. The distribution contains a small library of mathematical functions,
but its real strength is in the language in which you can easily write your
own symbolic manipulation algorithms. It supports arbitrary precision
arithmetic.
The current version is 1.0.28 (the first release was 1.0.0). 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 polynomials.