Source: https://www.hds.utc.fr/~tdenoeux/dokuwiki/_media/en/publi/fs98def.pdf