Source: http://www.fil.univ-lille1.fr/~sedoglav/RSX/Introduction.pdf