Software
On this page, you will find libraries for the Objective Caml language, a strongly typed functional language with great abstraction and performance characteristics.
Lacaml
Lacaml is a binding to the famous
BLAS and
LAPACK libraries which offer
linear algebra routines. It is developed in collaboration with
Markus
Mottl and several other people. To use it you should be
familiar with BLAS and LAPACK. The following
quick reference
guide for the BLAS and
LAPACK
quick reference may be useful to you. For the precise
description of the functions, consult the man pages
online
or, if you installed them on your machine (if you use Linux, they
should be in the packages of your distribution), read them with
Emacs: M-x man (under Unix) ou M-x
woman (all systems; you must first set
(add-to-list 'woman-manpath "C:/path/to/lapack/manpages/blas/man")
(add-to-list 'woman-manpath "C:/path/to/lapack/manpages/man")
in your ~/.emacs).
Delimited overloading
Delimited
overloading (pa_do) is a syntax extension
(thanks to camlp4) to allow (an extensible) operator and
function overloading in OCaml. It also performs some
optimizations, for example for expressions involving complex
numbers.
OCaml-gnuplot
OCaml-gnuplot is a module which uses gnuplot to graph scientific data from OCaml.
This module is obsolete and only bugs will be corrected. It will be replaced by Archimedes (under development) which does not depend anymore on gnuplot.
Module FFTW 3
The Fftw3 module is a binding to the famous fast Fourier transform library FFTW.
The bindings to the old FFTW2 library are not longer developed.
OCaml Lego Mindstorm library
The Mindstorm module allows to control Lego® Mindstorm NXT bricks through the bluetooth protocol. It was used by three students in mathematics to program two robots: the first finds its way out of a maze and the second solves the Rubik's cube. You can read their interview (in French).
OCaml CSV
OCaml CSV is a module to read and write CSV (comma separated values) files. It understands Excel peculiarities (which do not conform to the standard).
Benchmark
Benchmark is a module to measure and compare running times of functions written in OCaml.
Rope library
The Rope module
implements the
"rope datastructure", an efficient immutable equivalent of
strings. This module is ready to replace String
for most applications.
OCamlDBI
OCamlDBI is a generic interface to databases inspired by Perl DBI.
OCaml-FreeTDS
The Freetds module offers a binding to the DB-lib API of FreeTDS as well as a deprecated binding to ct. It is recommended to use OCamlDBI (which uses this module as a driver) to benefit for higher level functions.
Lpd
The Lpd (Line Printer Deamon) library is a server for the LPD protocol completely written in OCaml (and therefore fully working on windows).
ANSITerminal
ANSITerminal is a module allowing to use the colors and cursor movements on ANSI terminals. Here is its interface.




