EPFLSTILOBMarcel LeuteneggerAbout

MATLAB toolbox


MATLAB toolbox

Data types

Double class
Extended class
Single class


Flex99-12C correlator
Flex02-0xD correlator
Vector functions


C-MEX wrapper
FPU instructions


Error function
Hankel transform

General comments

MATLAB programming is one of my regular activities. My increasing need for computation performance made me finally revise if MATLAB is the right programming language for heavy number crunching.

Ok, it's easy to write the scripts. They do run quite fast if the problems are well vectorized and the argument dimensions carefully chosen. But when some simulations started to last for a week and more, I tried to boost some frequently used functions. Imagine my astonishment when I just finished writing my own exponential function and found it nearly twice as fast as the built-in one...

If you need performance, try out the library archives published in the download section. You may find it helpful to consult the programming hints.

By replacing most of the time-consuming elementary functions, I was able to double overall performance of my simulations. Please fasten your seat belts before installing the libraries.



Any warranty is strictly refused. Don't rely on any financial or technical support in case of malfunction or damage.

Comments are welcome. I will try to track reported problems and fix bugs.


Only the latest releases are listed here. For a complete history, please refer to the particular pages.

August 28, 2004

Linux port of the double class.

March 3, 2005

Service release of the vector functions.

March 6, 2005

Initial release of the extended precision vector functions.

May 2, 2005

Service release of the double class.

May 24, 2005

Service release of the extended class.

May 26, 2005

Initial release of the MEX-Builder.

October 25, 2005

Release 1.2 of the Flex99OEM-12C correlator interface.

December 28, 2005

Initial release of the single class.

May 28, 2006

Initial release of the Flex02-08D correlator interface.

July 19, 2006

Bug fixes: substituted CPUTIME by NOW for compatibility with MATLAB 7.x in correlator interfaces.

December 13, 2006

Initial release of the Hankel transforms.

April 10, 2007

Bug fix in FHT thanks to Mark W. Sprague.

June 28, 2007

Release of the double class under the GNU Lesser General Public License (LGPL) version 2.1.

January 14, 2008

Initial release of the error function of complex numbers.

May 12, 2008

Optimized routine for calculating the exponential according to Agner Fog, "Optimizing subroutines in assembly language," at Copenhagen University College of Engineering. Update of the double, single and extended classes.

July 19, 2008

Initial release of Flex02-01D interface.
Bug fix: file name template specification now compatible with MATLAB 7.x.

February 19, 2009

Release of the error function under the GNU Lesser General Public License (LGPL) version 2.1.

April 29, 2009

Update of Flex02-0xD/C interfaces.

July 29, 2009

Update of the discrete Hankel transform thanks to Nicolas Grisouard.

© 2011 École Polytechnique Fédérale de Lausanne