Source: https://www.engr.mun.ca/~millan/Eng6825/canonicals.pdf