add AbstractDifferentiableFunction
add NloptFunctionAdapter