add differentiable function