new_contents: #
  # Transformation functions
  #
  # This file is part of PINTS (https://github.com/pints-team/pints/) which is
  # released under the BSD 3-clause license. See accompanying LICENSE.md for
  # copyright notice and full license details.
  #
  from __future__ import absolute_import, division
  from __future__ import print_function, unicode_literals
  import numpy as np
  from scipy.special import logit, expit
  
  
  class Transform(object):
      """
      Abstract base class for objects that provide some convenience parameter
      transformation from the model parameter space to a search space.
  
      If ``t`` is an instance of a :class:`Transform` class, you can apply
      the transformation from the model parameter space ``p`` to the search
      space ``x`` by using ``x = t.to_search(p)`` and the inverse by using
      ``p = t.to_model(x)``.
      """
      def log_jacobian(self, p):
          """
          Returns the logarithm of the absolute value of the Jacobian
          determinant for the parameter ``p`` in the model space.
  
          *This is an optional method; it is needed when transformation is
          performed on :class:`LogPDF`, but not necessary if it's used for
          :class:`ErrorMeasure`.*
          """
          raise NotImplementedError
  
      def n_parameters(self):
          """
          Returns the dimension of the parameter space this transformation is
          defined over.
          """
          raise NotImplementedError
  
      def to_model(self, x):
          """
          Returns the inverse of transformation from the search space ``x`` to
          the model parameter space ``p``.
          """
          raise NotImplementedError
  
      def to_search(self, p):
          """
          Returns the forward transformation from the model parameter space
          ``p`` to the search space ``x``.
          """
          raise NotImplementedError
  
subject: Add transformation base class