Source: http://www.davidfofi.net/uploads/2/3/5/8/2358523/1-calcvectp.pdf