Here are some of the features that set Algae apart from other numerical
- Algae is very fast. It's generally much faster than
Until recently, Algae was also dramatically faster than
MATLAB, but it looks like
The Mathworks has largely solved their performance problems.
- sparse arrays
- Algae's arrays may be stored in sparse form; only the non-zero
elements and their locations are stored. This type of storage is
required for practical analysis in many fields. In structural
dynamics, for example, a matrix with 200,000 rows and columns is not
considered large. (See example.)
- array labels
- In Algae, every vector and matrix may be given a set of labels for
each dimension. These labels persist in a consistent way across
operations, and may be used to specify particular elements. MATLAB
code that I've seen often has expressions like
the user has carefully tracked the size and order of his equations and
knows that the 127th element contains, for example, the nose gear
stroke rate. In Algae, the user can simply refer to
- Scalars, vectors, and matrices are distinct data types in Algae.
Some folks disagree, but I consider this a distinct advantage over
MATLAB's approach, which suffers from ambiguity and from having two
valid yet incompatible vector types (row and column).
- statistical profiling
- Algae offers a profiling capability that can show you, by file and
by line number, where your code spends its time. This is a very
powerful tool for performance improvement.