Algae News for February 2004

What's Happening

Thanks to Randall Skelton for some of the recent improvements. In particular, we now support FFTW for high-performance Fourier transforms.

What Needs Doing?

Naturally, there are many improvements I'd like to make:
  • We need better control of the run-time error messages we print, as well as a mechanism for identifying exceptions.
  • It seems like we could really use a high-level interface routine for eigenvalues.
  • The atan and atanh functions need improvement for complex arguments. They are based on simple formulas, but better algorithms are available that are faster, more accurate, and less prone to overflow.
  • In the old days, getting Readline to do context-based completion (as on variable names) was nearly impossible. This may have changed -- we ought to take a new look at it.
  • The printf and related functions should be given additional capabilities to accept array arguments.
  • I'm interested in exploring a better arrangement for the help system. Users should be able to tie in documentation for their own code.
  • With the builtin function, Algae has dynamic linking capability. To make this useful, though, we have to document the interface and reorganize the header files.
  • Wouldn't a GTK+ interface be nice?
  • We need to complete the fread and fwrite implementation and we'll probably want an fseek function as well.

Recent Releases

Below is a digest of recent Algae releases. A complete record is distributed with Algae in the NEWS file.

Version Date Type Description
4.3.6 2/22/04 patch Fixed label handling bug in "set" introduced in version 4.3.1. Also cleaned up and documented label handling in "complement", "intersection", and "union".
4.3.5 2/11/04 patch Add support for short int endian conversions in "fread".
4.3.4 12/16/03 patch Fixed disassemble bug involving "veil" statement. Use "enable-debug" instead of "with-debug" in configure.
4.3.3 12/9/03 patch Use dlmalloc in place of the C library's malloc, by default. Replaced code for "magic" with faster code from Octave.
4.3.2 11/29/03 patch Ouch! Fixed a nasty bug in "filter".
4.3.1 11/24/03 patch New functions added: "erf", "erfc", "gcd", "lcm", "primef", "primes", and "trapz". Several efficiency improvements, some pretty dramatic. Short ints supported in "fread" and "fwrite".
4.3.0 10/4/03 minor Enable linking to FFTW for high-performance Fourier transforms. Several functions now handle matrix arguments: "fft", "ifft", "max", "min", "imax", and "imin". New "circshift" function. Support for Mac OS X.
4.2.1 8/6/03 patch Added the "$digits" global variable.
4.2.0 8/5/03 minor New "veil" statement allows temporary changes to global variables.
4.1.4 8/2/03 patch Improved configuration for floating point exception handling, and fixed "select" for zero-length vectors.
4.1.3 5/16/03 patch Configuration improvements.
4.1.2 3/19/03 patch Minor installation improvements.
4.0.1 9/21/02 patch Restored optional linking to NPSOL.
4.0.0 9/15/02 major Added the try/catch mechanism for control of exception handling.
3.7.3 7/31/02 patch Added the "iram" (ARPACK) function for solving sparse eigenvalue problems.
3.7.2 5/12/02 patch Replaced "tril" and "triu" with improved builtin functions.
3.7.1 5/6/02 patch Fixed integer overflow problems in "band" and "cram".
3.7.0 4/24/02 minor Incorporated the SuperLU package for solving sparse linear systems.
3.6.2 11/1/01 patch Minor installation improvements.
3.6.1 10/26/01 patch Improved the logical operations to do a much better job at maintaining sparsity. New standard function "select".
3.6.0 10/11/01 minor Changes to matrix bandwidth minimization code, and new "equilibrate" function. Added other new functions, and fixed deficiencies in the "transform" function.
3.5.2 9/19/01 patch Fix errors involving hermitian symmetry.
3.5.1 9/14/01 patch Configuration accommodations for AIX, and fix for obscure matrix multiplication bug.
3.5.0 8/31/01 minor Added "short-circuit" logical operators && and ||. Use floating point exception support from glibc 2.2 on Linux. Numerous other improvements, and several minor bug fixes.
3.4.0 5/1/98 minor New assignment operators: *=, /=, @=, and %=.
3.3.6 4/1/98 patch Various configuration improvements.
3.3.5 3/3/98 patch Improved the "umin" function; now it can pass parameters to the objective function. Also improved configuration for HP-UX 10.
3.3.4 10/21/97 patch Fixed a bug introduced in version 3.3.3, involving the "provide" and "require" functions.
3.3.3 10/18/97 patch Standard user functions are now pre-compiled. This makes startup much faster.
3.3.2 10/5/97 patch New "-x" command line option causes algae not to read stdin by default when no file names are given on the command line.
3.3.1 9/25/97 patch New "-R" and "-n" command line options.
3.3.0 9/2/97 minor Better support for "site" files. The "src" and "require" functions now look in ~/algae and /usr/local/lib/algae/site/A (by default), unless overridden by the ALGAE_SRC_PATH environment variable.
3.2.9 8/4/97 patch Improvements in the "info" function.
3.2.8 7/28/97 patch Improved EOF handling in "fread", and a few minor bug fixes.
3.2.7 7/24/97 patch Minor bug fixes.
3.2.6 6/25/97 patch New "char" function and faster "get" and "put".
3.2.5 5/13/97 patch Fixed a serious bug in the "improved" sorting.
3.2.4 5/9/97 patch Previously, Algae had used a "heap sort" algorithm for sorting vectors. It turns out that it was extremely inefficient when the vector contained many duplicate elements. Now we use quicksort.
3.2.3 5/2/97 patch Algae now catches SIGQUIT and makes a clean exit.
3.2.2 4/25/97 patch This patch release fixed an installation problem that affected users lacking a Fortran compiler.
3.2.1 3/28/97 patch Added float (4-byte real number) capability to the fread and fwrite functions. A few minor bugs were also fixed.
3.2.0 2/21/97 minor This is the first release of Algae. Previously, it was called Alki.
3.0.0 5/9/96 major Among other things, a significant syntax change was adopted.

Algae Home SourceForge Logo