- Welcome
- About
- Reserach Profile
- Curriculum Vitae
- Publications
- Books
- Lectures
- Presentations
- Research
- Engineering
- Software

Dr. Stefan Bosse

Science & Education

PsiLAB has been developed for scientific research and data analysis. It is freely distributed in source code format under Gnu Public License, version 2. PsiLAB is written mainly in the functional language O'CaML developed at INRIA research laboratories. It's mainly made of three parts:

- An interpreter, of course O'CaML itself
- libraries written in O'CaML,
- external libraries written in Fortran and C.

Main features of PsiLAB are:

- All O'CaML functions and data types are supported,
- support for different data types: float, int, complex
- extensive matrix package
- 2D and 3D plot package with graphical or postscript output
- various generic and special mathematical functions
- linear algebra package (solving of linear equation systems and linear least square problems)
- Linear Regression
- non linear least square fit routines
- Fast Fourier Transformations
- some image processing functions
- on-line help system, easily extensible by user functions
- easy to extend for people knowing basics about the O'CaML C extension facilities

PsiLAB uses the following external libraries, mainly written in Fortran:

- LAPACK: Linear algebra and linear least square problems
- MINPACK: Non linear least square fits
- PLPLOT: 2D and 3D plot library with several output drivers (X11, PS, Xfig,...)
- FFTW: Fastest Fourier Transform in the West (and the East ?)
- AMOS: Several special functions: Bessel Polynomials and more ...
- SLATEC (partially implemented): More special functions (Gamma function,...)
- CamlImages (partially implemented): Support for various image formats

PsiLAB is not only written in O'CaML, it is CaML. That means: if you are familiar with this programming language, you can write PsiLAB programs. And you can do all things with PsiLAB you can do with the generic O'CaML development system:

- using modules to access data base servers
- creating new develop environments
- writing lexers and parsers (perhaps with mathematical background)
- more sophisticated image processing
- creating HTTP servers (with direct access to your computation results ?)
- and many more ...

The O'CaML interpreter system, which is in reality a pure compiler concept, was chosen because of the high computation speed of this system and the high portability. You have the advantages of an interpreter like language (from the user point of view), but with performance comparable with C/C++ programs. All functions will be translated by the O'CaML compiler into a system and machine independent Byte Code. This Byte Code will be then executed on a virtual machine. Currently, you have a terminal driven environment with on-line help. Plots are printed to an additional X11 window or to a postscript file.