code: def logjacobian(self, **params):
          r
          return numpy.log(abs(transforms.compute_jacobian(
              params, self.sampling_transforms, inverse=True)))
docs: r"""Returns the log of the jacobian needed to transform pdfs in the
          ``variable_params`` parameter space to the ``sampling_params``
          parameter space.
  
          Let :math:`\mathbf{x}` be the set of variable parameters,
          :math:`\mathbf{y} = f(\mathbf{x})` the set of sampling parameters, and
          :math:`p_x(\mathbf{x})` a probability density function defined over
          :math:`\mathbf{x}`.
          The corresponding pdf in :math:`\mathbf{y}` is then:
  
          .. math::
  
              p_y(\mathbf{y}) =
                  p_x(\mathbf{x})\left|\mathrm{det}\,\mathbf{J}_{ij}\right|,
  
          where :math:`\mathbf{J}_{ij}` is the Jacobian of the inverse transform
          :math:`\mathbf{x} = g(\mathbf{y})`. This has elements:
  
          .. math::
  
              \mathbf{J}_{ij} = \frac{\partial g_i}{\partial{y_j}}
  
          This function returns
          :math:`\log \left|\mathrm{det}\,\mathbf{J}_{ij}\right|`.
  
  
          Parameters
          ----------
          \**params :
              The keyword arguments should specify values for all of the variable
              args and all of the sampling args.
  
          Returns
          -------
          float :
              The value of the jacobian.