А в обратном методе библиотека вычисляет все Vi путем подстановки чисел до вычисления производных, а потом хранит их в памяти в вершинах графа (т.е. до вычисления всех df/dVi алгоритм вычислит V3=e^-1~0.37 и положит в кортеж для V3, вычислит V5=-4+e^-1=-3.63 и положит в кортеж для V5 и тд)? И если для вычисления dV4/dV1 нужно значение V2, то алгоритм заново пройдет по графу, дойдя до кортежа с V2 на первом месте и возьмет оттуда уже вычисленной значение? И я правильно понимаю, что этот метод - это просто обычное дифференцирование сложных функций из 10ого класса?