We could wait, but I don't understand why we should.

The code is there, and could already be useful as is. Moreover, what you propose regarding the convergence with "nabla" is far from clear to me.

IIUC, "nabla" computes the derivative of a function, *without any additional input*. The Ridders algorithm however is an approximating procedure where you must specify a tolerance, an initial "delta" and a maximum number of function evaluations (just like for the solvers and optimizers algorithms).

For CM design consistency's sake (and ease of use), this algorithm must be introduced in a form that relates to the existing codes in CM, not in a form that one expects will conform to a future requirement from another library.

Later, we can always create adapters that will bridge the CM API to the "nabla" API (e.g. possibly passing the additional parameters needed by the "derivative" method of "RiddersFirstDerivative" in the constructor of the adapter class).

Attached proposed implementation. OK to add?