Ideas on future development are documented in "docs/todo.html".

Below Ayals short-list

TODAY:
- Have a look at the inprogress/ directory (can the contents be removed?
- When you run regress.yts, you see the following pass on screen:
    Problem occurred at regress.yts(343)
    Problem occurred at regress.yts(347)
    Problem occurred at lists.rep/code.ys(628)
    Problem occurred at regress.yts(541)
- Bug: Factor(0) returns 1

######################################################

Bugs:

- Standard mailing list at yahoogroups, I should discontinue it.

- Bug: N(gamma,50) creates a bus error in release build, and memory leaks in debug build

- Have Java version handle the same command line flags
- Search for defines I want to remove

- Coding standards: use 
	http://www.joelonsoftware.com/articles/Wrong.html
  and
	http://www.ibm.com/developerworks/linux/library/l-clear-code/?ca=dgr-FClnxw01linuxcodetips


- Document TeXFormMaxPrec()
- Document DefFileList()
- check that unnecessary scripts are not loaded unnecessarily (in debug mode?)
- Document FormulaMaxWidth()
- Document SetFormulaMaxWidth(width)
- Document the debugging facilities in the debug version, warnings on setting global variables etcetera.

- Global variables are still used in the wester test file
- Global variables are still used in the scripts that build the manuals
- Global variables are still used in the scripts that create the plugin stubs
- Global variables are still used in the scripts that compile/create for example libmath.cpp

- Is there not enough in common between the different files platfileio.h that we should perhaps consider merging them?

- We should perhaps only compile testnum if we are running 'make test'

- Should we perhaps get rid of proteus? I don't want to be maintaining that forever...

- Document the program codereviewer
- Expand on codereviewer, so that it checks all coding standards rules
- define the coding standards in the documentation

- There is a function "gamma" that should be "Gamma".

- When exception thrown within N(...) then reset all globals that were changed.

- For N, Verbose, etcetera, in stead of LocalSymbols guarding scope, perhaps a macro that generalizes the concept (with getters and setters, for a type of expandable singleton).

 ../manmake/wester-1994.ys should end with yts

- have the application work in a directory structure that is identical to the source tree. --rootdir should be more general (set it and you can find the documentation also, etcetera).

- Precision(n) should never be used independently, but always in combination with N(...) maybe?

- plotting functions are extremely verbose, this code needs to be reduced I feel

- other os-ish modules that I think are ugly, ShowPS ? Tries to write to /tmp/? 
- examples direcory in scripts/, needed?

- allow sending openmath expressions and receiving them from a socket.
  - allow parsing without having to require a ;
  - removing ] from output

- Remove MacroSet/MacroClear and friends in favor of macros? makes the whole system simpler, and easier to compile.

- Erf does not work for numbers larger than one but not too large.
-  http://www.causascientia.org/math_stat/Dists/Compendium.pdf

- remove TODOs in the source code
- document as of yet undocumented functions
- Try Yacas from some other applet, as a scripting language
- Try out MapReduce
- Alberto, and others, now finally make a sockets class for Yacas?
- allow for a custom REP loop in server mode (would actually be trivial when sockets are defined in Yacas language)
- Mention MultiGcd in the documentation where polynomial operations are explained.
- make sure there are no collisions (axiom link in links.html for example) ???0
- structure the Yacas todo.html file

- change all references to LISP in to YACAS, and Lisp in to Yacas

- On Mac OS X, SetHelpBrowser should be "open", on Windows it should be "start"
- univar.rep/Cyclotomic.ys is the only file to start with a capital (perhaps change to lower case?)

- some garbage (double defined functions) I'd like to remove from univar
- Taylor series expansion of Tan is slow, use other form for derivative?
- Solve: see if I can recreate HEQS?
- YacasInterpreter: also allow it to work from an applet?
- sockets from Yacas
- Look at natural parallization operators.
- Write test for Solve({mean==(A/(A+B)),variance==((A*B)/(((A+B)^2) * (A+B+1)))},{A,B})
- There are warnings about YacasBase not having a virtual destructor, problem?
- document the behavior of underscores in Yacas.
- Clebsch-Gordan coefficients:
  - Get Clebsch-Gordan code in to the main Yacas distribution.
  - Test code for Clebsch-Gordan
  - documentation for Clebsch-Gordan
- document *how* the random number generators work.
- make grapher, and notebookish capabilities of Java console?
- -pc flags should also withhold the In> and Out> printing. Document that you need to use --read-eval-print ""

- bug:
  In> Limit(x, Infinity) (2^x)^(1/x);
  Out> 1;
  In> Limit(x, -Infinity) (2^x)^(1/x);
  Segmentation fault

http://centaur.maths.qmul.ac.uk/Computer_Algebra/MathAlgs/mathalgs.pdf
http://www.adeptscience.co.uk/maplearticles/f1138.html


- restructure the documentation (there are a lot of unfinished parts written by Ayal).
- rewrite anumber, and document it this time.
- implement precision tracking the way Serge wants it, in the anumber version of BigNumber
- slowness of Taylor, due to its trivial implementation. Perhaps we should do something about this as soon as we have series calculus.
- Solve is way too simplistic.
- convert more scripts to compiled C++, for execution size and speed.
- (Is this still true?) MatchAtom still compares atoms by string representation! It should raise an error if you define a pattern with a float in it.

==========================================================


