http://dat.etsit.upm.es/~luciano/blog/wp-content/uploads/2009/09/uppsats.pdf