Algae is a programming language for numerical analysis. Algae was developed because the developers needed a fast and versatile tool, capable of handling large systems. Algae has been applied to interesting problems in aerospace and related fields for more than a decade.
Here are some key features of "Algae":
· Algae is very fast. It's generally much faster than Octave, RLaB, and Scilab. 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.
· 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 states -- 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 states["nose_gear_rate"].
· 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.
What's New in This Release:
· Fixed label handling bug in "set" introduced in version 4.3.1.
· Also cleaned up and documented label handling in "complement", "intersection", and "union".