Vincent Gripon's Homepage

Research and Teaching Blog

SAM Library for Matlab

Here is a very quick Matlab implementation of the neural network described in here.
You can download a version here. It should be pretty straight forward to use. An extended and optimized version is available here (credits to Stephen Larroque).

Big_float OCaml module

I coded a very fast (and not very good) implementation of "big floats" that allows to use arbitrary precision floating point numbers with OCaml.
If you need it, you can download a version here. It should be pretty straight forward to use.

Bitarray module

This little module for Ocaml allow the use of bit arrays, that is arrays of bits that do not use more space than required. I developped this little program because the classical boolean arrays of Ocaml use as much space as int arrays.
Please find the generated doc here and the files here.

Associative memory demo

Java applet

You must have java installed on your machine to use this little program. If not, you can use the one written in javascript instead (beneath). This correspond to an implementation of the associative memory described here.

Javascript version

This little software is not optimized and written in javascript. Please use reasonable values before launching the computation. Note that your browser must have javascript enabled for this demo to work.

Number of clusters c:
Amount of neurons per cluster l:
Number of clusters erased:
Number of iterations:
Number of learned messages M:
Number of tests:

Message retrieval error rate:
Network density:



Official page (french)

TaupIC stands for Taupe Informatique : le Concours and is an online programming contest intended for French top undergraduate students.

I co-created it and I have been co-organizing it since its creation in 2011.

SAM Library for OCaml

The Sam library for OCaml brings a library to use the model we proposed (see here) for associative memories.
You can freely download it here. The package is provided with an example which computes the points from the curve depicted Figure 13 in the article.
Please consult the OCamlDoc documentation available here for more information.


OOCaml is a pre-alpha of an idea I would like to develop in the coming years. It uses a pre-processing to transform the syntax of OCaml such that basic types are objects.

It allows some syntaxic sugar such as:

#print ("hello"^(3.5+1)*2);;
hello8 - : unit = ()
#for i = 0 to 3 do print (exp i); done;;
1.2.718281828467.3890560989320.0855369232- : unit = ()
#let rec sum list =
    if list#empty
    then 0
    else list#hd + (sum list#tl)
val sum :
  (< empty : bool; hd : < int : int; .. >; 
      tl : 'a; .. > as 'a) -> Oint.oint = <fun> 
# print (sum [1.;2.]);;
3- : unit = ()

Embryonic version available here.

You are the 1395750th visitor

Vincent Gripon's Homepage