gradient(at:of:)

func gradient<T, R>(at x: T, of f: (T) -> R) -> T.TangentVector where T : Differentiable, R : FloatingPoint, R : Differentiable, R == R.TangentVector