'Returns a new `~astropy.modeling.Model` instance which performs the
inverse transform, if an analytic inverse is defined for this model.
Even on models that don\'t have an inverse defined, this property can be
set with a manually-defined inverse, such a pre-computed or
experimentally determined inverse (often given as a
`~astropy.modeling.polynomial.PolynomialModel`, but not by
requirement).
A custom inverse can be deleted with ``del model.inverse``.  In this
case the model\'s inverse is reset to its default, if a default exists
(otherwise the default is to raise `NotImplementedError`).
Note to authors of `~astropy.modeling.Model` subclasses:  To define an
inverse for a model simply override this property to return the
appropriate model representing the inverse.  The machinery that will
make the inverse manually-overridable is added automatically by the
base class.'

@property
def inverse(self):

    if (self._user_inverse is not None):
        return self._user_inverse
    elif (self._inverse is not None):
        return self._inverse()
    raise NotImplementedError(u'An    analytical    inverse    transform    has    not    been    implemented    for    this    model.')
