Source: https://www2.ift.ulaval.ca/~chaib/IFT-6001/Slides/Rech-method.pdf