Source: http://www.cs.nott.ac.uk/~mvr/G64ICP/icp04-06.pdf