def curvature(x, dfunc, d2func, *args, **kwargs):
    """
    Curvature of function:

        `f''/(1+f'^2)^3/2`

    Parameters
    ----------
    x : array_like
        Independent variable to evalute curvature
    dfunc : callable
        Function giving first derivative of function f: f', to be called `dfunc(x, *args, **kwargs)`
    d2func : callable
        Function giving second derivative of function f: f'', to be called `d2func(x, *args, **kwargs)`
    args : iterable
        Arguments passed to `dfunc` and `d2func`
    kwargs : dict
        Keyword arguments passed to `dfunc` and `d2func`

    Returns
    -------
    float or ndarray
        Curvature of function f at `x`
    """
    return ( d2func(x, *args, **kwargs) /
                 (1. + dfunc(x, *args, **kwargs)**2)**1.5 )