gradient(at:_:of:)

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