FLAME code-skeleton generator

The menu to your left will help you generate code for algorithms that resulted from the FLAME approach to deriving linear algebra algorithms.

The first section allows you to

  1. Indicate the name of the function to be generated.
    Ofcourse it is useful to pick a name that is related to the operation. For example, consider the operation
    B := L-1 B
    which is often referred to as a Triangular Solve with Multiple Right-hand sides (Trsm). Here B is an m × n matrix and L is lower triangular. We would suggest a name like
    where the llnn indicates that the matrix L is

    The above makes more sense to those who are familiar with the level-3 Basic Linear Algebra Subprograms (BLAS).

  2. Whether the algorithm is unblocked, blocked, or recursive.

  3. An integer that indicates the algorithmic variant for the given operation the code that is being coded.

In the second section, you need to indicate the number of operands for the function and some attributes of those operands:

Tag: The letter to be used for the variables.
Type: The type of the operand: matrix, vector, or scalar.
Direction: The direction in which the computation sweeps through the operand.
Input/Output: Whether an operand represents input, output, or both.
Note: For now, it is wise not to indicate that an operand is only an output variable.

The convention is that

Next, you pick the output language to be generated:

FLAME@lab Mscript for Matlab or Octave
FLAMEC Code for the C programming language using the FLAME infrastructure.
PLAPACK Code for the C programming language targeting distributed memory architectures using the Parallel Linear Algebra PACKage (PLAPACK) instructure.
FLaTeX: Source for generating an algorithm using LaTeX.

Finally, you can indicate your name and e-mail so that the header identifies you as the person who coded the algorithm.

This generator has been brought to you by

Tze Meng Low
Robert A. van de Geijn
Jonathan S. Monette

Please send comments to