Source: https://reseau-loops.github.io/presentations/7ieme_journee/02_LoOPS_Introduction_PI.pdf