Here is a pretty easy to understand explanation: http://klingon.cs.iupui.edu/~aharris...c30.html#@l130