J_(F2 o F1) = J_F2 * J_F1.
v2 = J_{F2 o F1} * v0
v2 = (J_F2 * J_F1) * v0 [Chain rule]
v2 = J_F2 * (J_F1 * v0) [Associativity]
v2 = J_F2 * v1
F = F_N o .... o F_1
then we can efficiently compute the direction derivative J_F * v0 by _propagating_ vectors through the component functions,
v_N = J_FN * (J_F(N-1) * (... * (J_F2 * (J_F1 * v0)) ... ).
alpha_0 = (J_F)^T * alpha_1.
This defines a different directional derivative that is often more useful in practice.