Yes, but in practice the difference is vast. You can apply automatic differentiation to (almost) <i>arbitrary code</i> with conditional branches, arbitrary inputs (by treating them as unknown constants wrt to the independent variables), recursion and for&#x2F;while loops with an unknown number of loops, etc. Trying to describe all that using piecewise or recursive functions and then symbolically differentiate it is either a nightmare or impossible. Hence, <i>automatic</i> differentiation.