Does CppAD recognize when a function's differential information needs to be recalculated? Does it throw an exception? e.g. when the function being evaluated follows a different switch statement case? Thank you.