implicit differentiation