PsiLAB2: Scientific and Numeric Research Software Environment
What is PsiLAB
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 PsiLAB2 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
PsiLAB2 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
PsiLAB2 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.
PsiLAB3: Scientific, Machine Learning and Numeric Research Software Environment
-
Similar to PsiLab2, PsiLab3 provides a framework for large-scale numeric data processing.
-
In contrast to PsiLab2 based on OCaML, PsiLab3 uses JavaScript and a modified node.js platform pl3. All pl3 scripts are programmed in JavaScript.
- Extensive set of numerical and machine learning methods are provided:
- Vector and matrix modules supporting generic JS arrays and packed native typed arrays
- Linear Algebra
- Machine Learning
- Plotting package based again on PLPLOT
- FFT (1D/2D/3D), using FFTW library
- Bindings to native LAPACK/BLAS libraries