https://pypy.pythonprogramminghelp.com/stop-is-not-the-gradient-vector/