Source: https://polytech.univ-bpclermont.fr/IMG/pdf/c.2.2.5_syllabus_gc.pdf