Source: https://physics.weber.edu/schroeder/scicomp/PythonManual.pdf