Source: https://math.berkeley.edu/~peyam/Math1AFa10/Arccos.pdf