for Matlab 6.x or 7.x

Current Release

Inam Ur Rahman

Iddo Drori
Matthew Ahlert
Victoria Stodden
David Donoho

What is SymmLab?

SymmLab is a collection of Matlab functions that have been used by the authors and collaborators to represent data taking values in special manifolds called Symmetric Spaces. It includes about 100 Matlab files, datasets, and demonstration scripts.

What is New?

The current version (SymmLab090) is our initial release, and contains code for these manifolds

  • S1, Sn -- Sphere in Rn+1
  • SO(n) -- n´n Unitary matricies
  • PSD(n) -- n´n Symmetric Positive Definite matricies
  • PHP -- Poincare Upper Half Plane
  • Qu -- Quaternions
  • Grassmann(n,d) -- d-planes in Rn
  • SEn -- Rigid motion in Rn (n+1´n+1 matrices)
  • GAn -- General Affine Group in Rn (n+1´n+1 matrices)
The data values belong to these manifolds, and for this release, the data must either be observed at a sequence of `times' or on an n´n grid of `pixels'. The sequence shown above illustrates the case where data take values on a sphere and are observed at a sequence of equispaced SymmLab times.

The current version (SymmLab090) contains demonstration scripts which illustrate the following concepts

  • Multiscale representation, `wavelet coefficients'
  • Noise removal
  • Data Compression

It includes scripts to reproduce figures in recent papers by researchers from the Stanford Statistics Department and their collaborators:

indicates Acrobat file. Free reader here.
indicates compressed PostScript file. Free viewer here.

Philosophy -- why do it?

SymmLab follows the concept of reproducible research.

The idea is: An article about computational science in a scientific publication is not the scholarship itself, it is merely advertising of the scholarship. The actual scholarship is the complete software development environment and the complete set of instructions which generated the figures.

We make SymmLab available to make the full content of our scholarship available, enabling others to understand and reproduce our work.


How to Download?

We offer a uniform download format for the following platforms:

  • Macintosh
  • Unix/Linux
  • Windows

How to Install?

We provide detailed instructions for installation.

We recommend a system which has at least 70MB space reserved for the SymmLab files and a minimum of 256MB memory and which runs Matlab release 6.x or 7.x.

How to Register?

If you have been using SymmLab and have not registered, please do so.

By registering, you will get information about new releases and other information that we believe will serve your interests.

Who to Contact?

Email is the best way to contact us. Our email address is:


Precompiled MEX files -- how to run fast?

On most platforms, our installation procedure will automatically compile MEX files to accelerate certain key components of the SymmLab library. In case you do not have a Matlab MEX file compiler, we provide a library of precompiled executable MEX files for various platforms. The platforms we support include

  • Windows (NT, 95, 98)
  • MAC
  • UNIX (Linux, Sun Solaris, SGI)

If you find that your platform is not included here and you would like to help us to compile the MEX source files, please contact us by email.

SymmLab Documentations

We provide the following document for SymmLab:

  • About SymmLab gives a general overview of the SymmLab software  


Visitor number:
Modified: November 16, 2004