Version 1.0/2.0ce

sbosse@physik.uni-bremen.de

This document is an introduction to

- An interpreter, of course
*O*'*C*_{A}*ML*itself, - libraries written in
*O*'*C*_{A}*ML*, - external libraries written in Fortran and C.

- All
*O*'*C*_{A}*ML*functions and data types are supported, - support for different scientific data types: float, int, complex (all double precision),
- extensive matrix package,
- 2D and 3D plot package with graphical or postscript output,
- various generic and special mathematical functions, like Bessel or Gammafunctions,
- 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,
- online help system, easily extensible by user functions,
- easy to extend for people knowing basics about the
*O*'*C*_{A}*ML*C extension facilities,

**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

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

Currently, you have a terminal driven environement with online help. Plots are printed to an additional X11 window or to a postscript file.

- FreeBSD-4, only PC
- Linux (Slackware-7.0), only PC
- Distributed OS FSD-Amoeba 2001, only PC

- For the source code version:

- installed
*O*'*C*_{A}*ML*version 3.01 or 3.02, 3.0 is*currently*not working - GNU text utils (sed), gmake and gcc, a fortran compiler is not
required because
*PsiL*_{A}*B*comes with his own version of*f2c* - X11 headers and libraries
- about 50 MB free disk space
- a little bit free time to compile all this incredible stuff

- installed
- For the binary version:

- installed
*O*'*C*_{A}*ML*version 3.01 or 3.02, 3.0 is currently not working, - X11 binary version,
- a good pice of luck: due to some nasty
*O*'*C*_{A}*ML*version and distribution dependencies,*PsiL*_{A}*B*can fail to run. The only exit: compile this beast from the source.*PsiL*_{A}*B*2 propably doesen't suffer from this problem - at least 8 MB free memory

- installed

Steps to get a compiled

- Choose a place to unpack the source archive, unpack archive, for
example this way:

`tar -zxvf psilab-1.0-src.tgz`

- change to the source directory and choose one of the system Makefiles
closes to your operating system, and copy this to
`Makefile.sys`, for example

`cp Makefile.sys.freebsd Makefile.sys`

- Edit this system dependent Makefile, and change at least the
`TOPDIR`and the`INSTALLDIR`variables, for example:

`TOPDIR = /home/user/psilab-1.0`

`INSTALLDIR = /usr/local/psilab`

If your system doesen't provide a BSD compatible install script, change the`INSTALL`variable to:

`INSTALL = $(TOPDIR)/install.sh`

Don't forget to determine your*O*'*C*_{A}*ML*version and set the Makefile variable:

`CAMLVERSION = 3.01 or 3.02`

- Probably, some pathes or program names must be changed, too. For machine architectures different from i386, some more changes must be done. Some fortran libraries need machine dependent constants, provided in external fortran files. The system Makefile tells about the locations in the source tree.
- Now, start the compilation:

`gmake clean`

`gmake all`

`gmake install`

The last step installs the compiled distribution in the desired directory.

- The system dependent Makefile also conatins the configuration for the
built in
*O*'*C*_{A}*ML*distribution. - Some more hand made work must be done: first change to the
`ocamlsrc`directory and compile the*O*'*C*_{A}*ML*compiler system:

`gmake core`

`cp ocamlc boot`

`cp byterun/ocamlrun boot`

`gmake all`

`gmake install` - Now perform the steps described above and compile the
*PsiL*_{A}*B*system.

Available are this document you are currently reading, and the reference manual derived from the online help system.

You can edit the command line with the cursor keys and the backspace key. A return skips to the next line of your command, and not finishes the command. To mark the end of a command, like in the generic

In this first example you can see the most used

Note that

integer [ native system integer length]An Integer matrix can be created with the

float [double precision]

complex [double precision]

Don't forget the last unity operator

- : unit = ()

You can extract the value of a matrix element simply with:

Of course matrices with more than 1 dimension can be handled the same way:

The first index of this matrix determines the row number, the second the column number.

- : float = 13.45

Note: all matrix indices start with number 1!

leads to the following graphical output:

The

leads to this plot graphic:

This document was translated from L^{A}T_{E}X byH^{E}V^{E}A