code: def grad_and_aux(fun, x):
      
      vjp, (ans, aux) = _make_vjp(lambda x: atuple(fun(x)), x)
      return vjp((vspace(ans).ones(), vspace(aux).zeros())), aux
docs: Builds a function that returns the gradient of the first output and the
      (unmodified) second output of a function that returns two outputs.