code: def _make_explicit_ggnvp(f, g=lambda x: 1.0 / 2 * np.dot(x, x)):
      def ggnvp_maker(x):
          J = jacobian(f)(x)
          H = hessian(g)(f(x))
  
          def ggnvp(v):
              return np.dot(J.T, np.dot(H, np.dot(J, v)))
  
          return ggnvp
  
      return ggnvp_maker
  
imports: from __future__ import absolute_import
  from builtins import range
  import warnings
  from functools import partial
  import autograd.numpy
  import autograd.numpy.random
  from autograd.test_util import check_grads, check_equivalent
  from autograd.tracer import primitive, isbox
  from autograd import grad, elementwise_grad, jacobian, value_and_grad, hessian_tensor_product, hessian, make_hvp, tensor_jacobian_product, checkpoint, make_jvp, make_ggnvp, grad_and_aux
label_desc: Use image node_id 25 for calling a global function with example usage: _make_explicit_ggnvp(f, g) and returns: ggnvp_maker, ggnvp, np