Source: https://www.ift.ulaval.ca/fileadmin/ift/Nadia_Tawbi/PDF/IFT-8002/GuideIFT-3001.pdf