Source: https://www.irem.univ-mrs.fr/IMG/pdf/cardan.pdf