Source: http://tscheer.free.fr/papers/HabilScheer.pdf